Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по COPY FROM / 11 сообщений из 11, страница 1 из 1
29.09.2008, 12:35
    #35564963
Antoxa1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
Можно ли организовать условие добавления???
В общем проблема следующего плана, есть файл периодически в нем встречаются строки которые не надо добавлять, они не соответсвуют основной структуре файла(типа пояснения что ли:-) ), начинаются на '#', как мне объяснить PSQL что эти строки надо пропускать?
Удалять вручную нереально, файлы весом по 300-700 мб.
...
Рейтинг: 0 / 0
29.09.2008, 12:55
    #35565030
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
пропустите входные данные через pipe с grep -v ^#


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
29.09.2008, 13:07
    #35565071
Antoxa1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
А можно подробнее, я признаться не понял о чем речь :-(
...
Рейтинг: 0 / 0
29.09.2008, 13:40
    #35565185
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
Код: plaintext
$ grep -v ^# my_input_file | psql -c '\copy my_tbl from stdin'


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
29.09.2008, 14:01
    #35565251
Antoxa1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
Я так понимаю что в самом запросе условие поставить нельзя?
...
Рейтинг: 0 / 0
29.09.2008, 14:31
    #35565334
girla
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
Unix-way: зачем перегружать функционал тем, с чем уже отлично справляется другая программа.
...
Рейтинг: 0 / 0
29.09.2008, 17:42
    #35565975
Sishnikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
Попробуй это ловить тригерром...
...
Рейтинг: 0 / 0
29.09.2008, 18:15
    #35566070
Степан H.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
триггером пользоваться не еффективно..

Возможно оффтоп, но если я не ошибаюсь,
периодчески возникают проблемы с загрузкой трафика из ng_ipacct
#Archimetric overflow ...
???
если да, то переходите на ng_flow, там такого нет ))
...
Рейтинг: 0 / 0
30.09.2008, 10:20
    #35566859
Antoxa1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
До триггера дело даже не доходит, вылетает сообщение, что мол количество столбцов не соответсвует, строки которые начинаются на # что то вроде пояснения в одну строку, без разделителей :-(
И что такое ng_flow? Признаться мне это не о чем не говорит :-(
а по поводу grep, нужно же учитывать, что сервер может быть на Win развернут!
...
Рейтинг: 0 / 0
30.09.2008, 13:30
    #35567486
Степан H.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
Antoxa1982До триггера дело даже не доходит ...

.... не доходит, потому что данные заливаются в готовую структуру,
и ваш символ # явно не вяжется с типом поля который идет первым.
попробуйте в таблице в которую вы заливаете данные добавить поле varchar и заливать туда явно

Код: plaintext
 COPY rec_temp_tbl (name_rec) FROM '/usr/local/etc/myfile.txt';

а потом триггером BEFORE INSERT парсить name_rec и раскидывать данные по другим полям

Однако этод метод никуда не годится на больших объемах, т.к. сам метод COPY теряет приемущество. Возможно использовать такой подход, когда данные которые надо парсить невозможно привести к готовому виду другими штатнымы средствами, али сам парсинг имеет сложный механизм.

Однако в Вашем случае я б прислушался к совету Ёш и сделал
Код: plaintext
grep -v ^#

ИМХО.
...
Рейтинг: 0 / 0
30.09.2008, 16:11
    #35567956
Antoxa1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по COPY FROM
О чем вы говорите, полей 25 штук, разделены табуляцией
а стоки с '#' просто пара слов описания. Что то типа:

#gfkjfjgdjfgdlfk
#kfsfgdmkg gkmfdgk fdmgkdf
#vgvfldv glfdgdfl
221 -> 567667 -> 6767 -> 678 -> 67678 ...
221 -> 567667 -> 6767 -> 678 -> 67678 ...
221 -> 567667 -> 6767 -> 678 -> 67678 ...
....
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по COPY FROM / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]