Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Соединение с PostgreSql 9.2  [new]
Константин Евтеев
Member

Откуда:
Сообщений: 171
Возникла задача соединить MS SQL SERVER 2008 c postgesql 9.2 , объемы данных необходимые для передачи около 100 тыс записей. Кто-нибудь сталкивался с данной задачей?
Оба сервера установлены на MS Windows Server 2008.
Пробовал создать link server для ms sql server на odbc драйверах, при больших объемах рвет соединение, а маленькими порциями работает очень медленно.

В обратную сторону
пробовал установить dbi link(http://pgfoundry.org/projects/dbi-link) - выдает ошибки, если быть точнее информационные сообщения ms sql server трактует как ошибки.
ODBC Foreign Data wrapper on windows https://github.com/ZhengYang/odbc_fdw подходит только для postgre 9.1, а нужно 9.2, также не уверен по поводу объемов и скорости.

Кто-нибудь сталкивался с данным вопросом, заранее благодарен за помощь.
31 мар 13, 16:37    [14118659]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37224
SSIS
31 мар 13, 16:39    [14118664]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Константин Евтеев
Member

Откуда:
Сообщений: 171
SSIS позволит разово перенести данные через odbc драйвер(причем очень медленно и маленькими порциями), а мне необходимо постоянное взаимодействие.
1 апр 13, 11:02    [14120286]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Константин Евтеев
SSIS позволит разово перенести данные через odbc драйвер(причем очень медленно и маленькими порциями), а мне необходимо постоянное взаимодействие.


Что значит постоянное? Раз в минуту переливать 100 000 записей из MS SQL в PostgreSql?
1 апр 13, 11:26    [14120486]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37224
Константин Евтеев
SSIS позволит разово перенести данные через odbc драйвер(причем очень медленно и маленькими порциями), а мне необходимо постоянное взаимодействие.
Переносите все данные на сторону MSSQL и взаимодейтсуйте постоянно сколько влезет.
1 апр 13, 12:28    [14120943]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Константин Евтеев
Member

Откуда:
Сообщений: 171
Извиняюсь не так выразился.
Итак.
1 Вариант создание link server на MS SQL, т.е. dsn, odbc driver postgresql большие объемы передавать не получается, а маленькими очень медленно, скорость не устраивают
2 Вариант SSIS необходим ole db provider, например pgnp, он платный, скорость работы пока не купишь не проверишь.
Вы 2-й вариант имели в виду или что-то еще?
1 апр 13, 14:57    [14121793]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Выгружайте данные из postgresql в текстовый файл. Загружайте файл через BULK INSERT или bcp
1 апр 13, 15:34    [14122027]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Константин Евтеев
Member

Откуда:
Сообщений: 171
Решил реализовывать с помощью csv - BCP со стороны MS SQL SERVER и psql \copy со стороны postgresql, буду очень благодарен, если поделитесь наработками.
2 апр 13, 10:13    [14124772]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Константин Евтеев
буду очень благодарен, если поделитесь наработками

А какие там наработки, если структура файла полностью соответствует структуре таблицы ?
Простая команда с парой обязательных параметров
2 апр 13, 10:36    [14124941]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Константин Евтеев,

А примеры из документации по MS SQL в части bcp не помогли?
2 апр 13, 10:38    [14124956]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Константин Евтеев
Member

Откуда:
Сообщений: 171
Вот такая команда bcp "dbo.statisticsrookeehistory_account" out "d:\2.csv" -S 192.168.7.24 -d "RookeeHistory" -U user -P password -C RAW -T -c -t "\
t" -r "\n"

Но если в таблице nvarchar
при вызове в Postgre
COPY advert FROM 'd:/advertbcp.csv' ;

ОШИБКА: неверная последовательность байт для кодировки "UTF8": 0xe1 0xe0 0xed
CONTEXT: COPY advert, строка 1

Сообщение было отредактировано: 2 апр 13, 14:25
2 апр 13, 11:01    [14125128]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Glory
Member

Откуда:
Сообщений: 104751
Константин Евтеев
при вызове в Postgre
COPY advert FROM 'd:/advertbcp.csv' ;

ОШИБКА: неверная последовательность байт для кодировки "UTF8": 0xe1 0xe0 0xed
CONTEXT: COPY advert, строка 1

наверное надо узнать, как в Postgre правильно экспортировать/импортировать Unicode
2 апр 13, 11:31    [14125373]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Константин Евтеев
Вот такая команда bcp "dbo.statisticsrookeehistory_account" out "d:\2.csv" -S 192.168.7.24 -d "RookeeHistory" -U kevteev -P ТутНекийПароль -C RAW -T -c -t "\
t" -r "\n"

Вы бы не светили ваши пароли на форуме, а то мало ли что...
2 апр 13, 14:16    [14126590]     Ответить | Цитировать Сообщить модератору
 Re: Соединение с PostgreSql 9.2  [new]
Константин Евтеев
Member

Откуда:
Сообщений: 171
Всем спасибо за участие
Преобразование файла BCP
Решено в powershell(get-content c:\temp\tablename.csv) -replace '\x00','' | set-content c:\temp\tablename.csv
в postgres set client_encoding to 'win';
а потом copy:)
2 апр 13, 17:54    [14127901]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить