powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ускорение "insert into openquery" из MS SQL в PostgresSQL
13 сообщений из 13, страница 1 из 1
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39968496
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
подскажите плиз, кто как переносит большие куски данных в другие БД, в частности Postgres
объем > 2 млн. строк. Усложняется тем что есть большие текстовые поля.
из того что пробовал:
1. "insert into openquery" - очеееень долго работает. К слову так и не отработал всю таблицу.
2. Через приблуду MS SQL "Import export"- аналогично с первым вариантом
3. Выгрузка в csv :
Код: sql
1.
"xp_cmdshell 'bcp..." "


потом загрузка из csv
Код: plsql
1.
Copy from ....


- работает быстро, НО спотыкается на таблицах с длинными текстами, то разделитель встречается в тексте, и это добавляет столбец, то перенос строки, то еще какие-то спец символы. + это нужно или запускать процедуры в разных БД для выгрузки/ загрузки - или командную строку юзать.
4. создать скрипт создания values, например как тут:
https://stackoverflow.com/a/29811674
но на больших таблицах тоже виснет. Думаю нужно делить по кускам и загружать порционно. по крайней мере в VBA такое у меня проходит достаточно быстро.

Поскольку таблиц много, и они растут - прописывать под каждую структуру - как-то лениво. Может у кого завалялся рабочий универсальный скрипт ?
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39968502
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yaroslav85,

SSIS пакет?
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39968535
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,
с SSIS пока не работал плотно. Могу ошибаться

А это не то же самое будет, что и MS SQL "Import export"?
там же есть сохранить галочка как пакет SSIS.
И этот Пакет потом открывается и в Visual Studio
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39968546
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yaroslav85
потом загрузка из csv
Код: plsql
1.
Copy from ....



- работает быстро, НО спотыкается на таблицах с длинными текстами, то разделитель встречается в тексте, и это добавляет столбец, то перенос строки, то еще какие-то спец символы. + это нужно или запускать процедуры в разных БД для выгрузки/ загрузки - или командную строку юзать.
Нужно квотить кавычками такие значения.
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39968556
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yaroslav85
komrad,
с SSIS пока не работал плотно. Могу ошибаться

А это не то же самое будет, что и MS SQL "Import export"?
там же есть сохранить галочка как пакет SSIS.
И этот Пакет потом открывается и в Visual Studio

в пакете можно добавить обработку некондиционных записей, выполнять преобразование данных, реализовать многопоточность и прочее
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969211
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,
Квотил, и реплейсил спецсимволы, но видимо не все перереплейсил, каждый раз что-то новое вылазит.
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969218
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad

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


ну некондиционных записей не должно быть в принципе - данные же из другой БД. Значит там все правильно. Другое дело, что МS этот текст нормально хранит - без проблем, а постгрес почему-то его не всегда ест.
Преобразование - в данном случае не нужно.
многопоточность это интересно. На сколько можно ускорить стационарную передачу? Стоит ли этим заниматься или остановиться на CSV, только доработать реплейсы спецсимволов?
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969273
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yaroslav85
komrad

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


ну некондиционных записей не должно быть в принципе - данные же из другой БД. Значит там все правильно. Другое дело, что МS этот текст нормально хранит - без проблем, а постгрес почему-то его не всегда ест.
Преобразование - в данном случае не нужно.


многопоточность это интересно.На сколько можно ускорить стационарную передачу? Стоит ли этим заниматься или остановиться на CSV, только доработать реплейсы спецсимволов?


там всё, мягко выряжаясь, фигня написана.
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969305
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин

там всё, мягко выряжаясь, фигня написана.

Можно по подробнее? Фигня где именно, или в чем именно?
У меня в посте - или у komrad, или еще где?
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969316
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,
Или это тексте жирным вы выделили - то что считаете фигней?
По сути у меня вопрос не в преобразовании данных, а в том как сделать быструю передачу данных из одной БД в другую, без преобразования, трансформации или еще чего.
т.е. есть пулл данных в базе MS SQL - мне нужно их поместить Postgres.
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969321
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал сделать по примеру как тут:
https://stackoverflow.com/a/29811674
скорость намного выше, чем в insert into openquery.
Правда тулю не всю таблицу сразу, а порционно по 1000 строк.

Наверное на этом варианте пока и остановлюсь. По скорости немного медленнее чем выгрузка в csv... Copy from, но можно сразу все запускать из MSa.
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969325
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yaroslav85
есть пулл данных в базе MS SQL - мне нужно их поместить Postgres.

А сразу из MS SQL их использовать - совсем не вариант?..
...
Рейтинг: 0 / 0
ускорение "insert into openquery" из MS SQL в PostgresSQL
    #39969328
Yaroslav85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Бьете по больному месту... К сожалению нельзя с точки зрения лицензий ( .
так к Postgres у подвязан сайт - Postgres - бесплатный.
а МS, если подключить - то нужна серверная лицензия - она дорогая.
как-то так
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ускорение "insert into openquery" из MS SQL в PostgresSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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