Обсуждение: 转发: Copy cmd error

Поиск
Список
Период
Сортировка

转发: Copy cmd error

От
Дата:
hi, after reading the source of pgloader,i have a idea,use perl to create the flat file, and, when error,reject the row,seek the next line,continue to copy.

thanks everyone.

qinghuamail-postgresqlfans@yahoo.com 写道:
日期: Mon, 27 Aug 2007 16:18:35 +0800 (CST)
发件人: <qinghuamail-postgresqlfans@yahoo.com>
主题: [ADMIN] Copy cmd error
收件人: postgresql-admin <pgsql-admin@postgresql.org>

hi,all

I use COPY cmd to import large data to database,but I have a question,

when occured the first error, It always stopped, I need it to be continue,and reject the error rows to a file, how to do this?

thanks!




雅虎邮箱,以安全著称,是值得信赖的邮箱专家!

Re: {Spam}转发: [ADMIN] Copy cmd error

От
Dimitri Fontaine
Дата:
Hi,

Le mardi 28 août 2007, qinghuamail-postgresqlfans@yahoo.com a écrit :
> hi, after reading the source of pgloader,i have a idea,use perl to create
> the flat file, and, when error,reject the row,seek the next line,continue
> to copy.

That's pretty much what pgloader already does for you: if COPY errors out,
pgloader split the data in two groups and try to COPY again each of them,
until the dichotomy isolates the one row causing COPY the error.
Then the given row is appended to the configured reject_data file.

See those options for details:
  http://pgloader.projects.postgresql.org/

copy_every

When issuing COPY PostgreSQL commands, pgloader will not make a single big
COPY attempt, but copy copy_every lines at a time.
This parameter is optionnal and defaults to 10000.

reject_log
 In case of errors processing input data, a human readable log per rejected
input data line is produced into the reject_log file.

 reject_data
 In case of errors processing input data, the rejected input line is appended
to the reject_data file.

Maybe this feature should be better highlighted from the DESCRIPTION section
of the manpage (which is also the website).

Regards,
--
dim

Вложения