Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ускорение "insert into openquery" из MS SQL в PostgresSQL / 13 сообщений из 13, страница 1 из 1
12.06.2020, 11:18
    #39968496
Yaroslav85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ускорение "insert into openquery" из MS SQL в PostgresSQL
Всем привет.
подскажите плиз, кто как переносит большие куски данных в другие БД, в частности 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
12.06.2020, 11:58
    #39968502
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ускорение "insert into openquery" из MS SQL в PostgresSQL
Yaroslav85,

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

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



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

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

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

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


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

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


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


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


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

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

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

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

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


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