PostgreSql и COPY FROM file

10 отговора 388 прегледа
#1

PostgreSql и COPY FROM file

Може ли някой да подпре с едно рамо Значи какъв е проблема.... извършвам наливане на голяма бройка(милиони) записи от ASCII файл в PostgreSql база с помоща на COPY FROM file ... до тук добре ... но проблема е, че ако по някое време се попадне на запис, който неотговаря на изискваната структурата процеса на копиране се скапва и на всичкото отгоре не запазва вече налятите записи (поне не и като достъпни) ... пр други бази като MySql, Oracle .... това е решено доста интелегентно .... Дайте някаква идея как мога да преодолея този проблем, т.е. да си налива всички записи като игнорира невалидните ...

10x предварително, дори и за отделеното внимание

Отговор
в отговор на PgSql #2

Re: PostgreSql и COPY FROM file

не ми се е случвало и затова нямам готово решение, но май не може да излъжеш copy-то ;-(

идват ми два варианта на ум - не много кефещи ;-)

1. Премахваш грешните редове и ползваш copy без проблем
2. Правиш си примерно php скрипт и с него ги пълниш

(първият ми се вижда по-добър, ако нямаш много грешни редова, вторият - ако имаш много грешни редове)

Отговор
в отговор на phpGuru #3

Re: PostgreSql и COPY FROM file

Проблема е, че със скрипт зареждането на данните тече часове, а тези файлове са периодични и немога да знам какви грешни записи биха могли да се появят, а все пак говоря за милиони записи и някак си не идва да преравям файла за да гледам дали всичко е наред .... немога да открия някой тул на постгреса(ако въобще има такъв) като mysql_import в MySql примерно....

Отговор
в отговор на PgSql #4

Re: PostgreSql и COPY FROM file

със скрипт няма да е толкова бавно ако го правиш в транзакция и накрая я commit-неш и махнеш индексите (ако има такива) - после може да си ги сложиш

Отговор
в отговор на phpGuru #5

Re: PostgreSql и COPY FROM file

И на мен ми се струва, че със скрипт би трябвало да е доста бавно, но би ли дал пример на такъв скрипт.Аз също се боря с нещо подобно, но съм далеч от вашия опит доколкото виждам

Отговор
в отговор на PgSql #6

Re: PostgreSql и COPY FROM file

направи се на истинско българче и ползвай нещо оттук (примерно импорт-а)
[линк]

Отговор
в отговор на Recurit #7

Re: PostgreSql и COPY FROM file

мда,
пробвай с тва дето AcidMemory предлага, ако не става тогава да мислим за скриптче ;-)

Отговор
в отговор на phpGuru #8

Re: PostgreSql и COPY FROM file

и тва може да пробваш

[линк]

Отговор
в отговор на PgSql #9

Re: PostgreSql и COPY FROM file

Една безумна идея и от мен ако не си се оправил досега :-)))

1. Наливаш в го в MySQL без да се притесняваш за грешките
2. От MySQL-а експортваш чистите записи
3. Наливаш хубавия фаил в PG-то :-))))

Много е смешно ама докато намериш вярното решение ще ти помогне

root@localhost#cd /pub
root@localhost#more beer
Отговор
в отговор на PgSql #10

Re: PostgreSql и COPY FROM file

10x на всички ..., ще изпробвам и двата тула, който сте ми поснали и се надявам, че някой от тях ще ми свърши работа ... вече почти се бях предал и решил да минавам към MySql-a, a ситуацията е такава, че това няма да е най-правилния избор ...

Отговор
в отговор на PgSql #11

Re: PostgreSql и COPY FROM file

В такава ситуация бих написал едно perl скриптче което проверява записите и маха грешните и после copy

Отговор