Опыт работы с PostgreSQL Java / JDBC Copy API для массовых вставок - PullRequest
1 голос
/ 17 января 2011

С версией 8.4 PostgreSQL наконец-то интегрировал проприетарный API в свой драйвер JDBC , который позволяет вставлять и выбирать потоки на основе потока. Так называемый Copy API предоставляет доступ к командам COPY TO / COPY FROM SQL, которые считывают текстовые данные из потока / считывателя за раз в одну таблицу или записывают текстовые данные в поток / записывающее устройство из одной таблицы. Ограничения и триггеры рассматриваются для операций вставки. Основные преобразования (разделитель, цитата, нулевые значения и т. Д.) Доступны. Выигрыш в производительности весьма впечатляющий, что, вероятно, связано с меньшим количеством экземпляров объектов и гораздо более простым протоколом между клиентским и серверным бэкэндом.

Кто-нибудь сталкивался с этим API, хорошим или плохим. Готово ли производство? Есть ли подводные камни, о которых нужно знать? Кстати, тот факт, что это проприетарный API, для меня не проблема.

1 Ответ

1 голос
/ 18 января 2011

COPY API присутствует в библиотеке PostgreSQL C не менее 6 лет.Это очень стабильно.

См .: http://www.postgresql.org/docs/9.0/interactive/libpq-copy.html и http://www.postgresql.org/docs/9.0/interactive/sql-copy.html

Реализация JDBC должна иметь те же свойства, но я ее не использовал.

PS.Я думаю, что есть недоразумение, когда вы называете это "частной".Как спецификация протокола, так и исходный код сервера / клиента / драйвера бесплатны (как и в случае свободы).

...