|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Всем привет. подскажите плиз, кто как переносит большие куски данных в другие БД, в частности Postgres объем > 2 млн. строк. Усложняется тем что есть большие текстовые поля. из того что пробовал: 1. "insert into openquery" - очеееень долго работает. К слову так и не отработал всю таблицу. 2. Через приблуду MS SQL "Import export"- аналогично с первым вариантом 3. Выгрузка в csv : Код: sql 1.
потом загрузка из csv Код: plsql 1.
- работает быстро, НО спотыкается на таблицах с длинными текстами, то разделитель встречается в тексте, и это добавляет столбец, то перенос строки, то еще какие-то спец символы. + это нужно или запускать процедуры в разных БД для выгрузки/ загрузки - или командную строку юзать. 4. создать скрипт создания values, например как тут: https://stackoverflow.com/a/29811674 но на больших таблицах тоже виснет. Думаю нужно делить по кускам и загружать порционно. по крайней мере в VBA такое у меня проходит достаточно быстро. Поскольку таблиц много, и они растут - прописывать под каждую структуру - как-то лениво. Может у кого завалялся рабочий универсальный скрипт ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 11:18 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Yaroslav85, SSIS пакет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 11:58 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
komrad, с SSIS пока не работал плотно. Могу ошибаться А это не то же самое будет, что и MS SQL "Import export"? там же есть сохранить галочка как пакет SSIS. И этот Пакет потом открывается и в Visual Studio ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:01 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Yaroslav85 потом загрузка из csv Код: plsql 1.
- работает быстро, НО спотыкается на таблицах с длинными текстами, то разделитель встречается в тексте, и это добавляет столбец, то перенос строки, то еще какие-то спец символы. + это нужно или запускать процедуры в разных БД для выгрузки/ загрузки - или командную строку юзать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:52 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Yaroslav85 komrad, с SSIS пока не работал плотно. Могу ошибаться А это не то же самое будет, что и MS SQL "Import export"? там же есть сохранить галочка как пакет SSIS. И этот Пакет потом открывается и в Visual Studio в пакете можно добавить обработку некондиционных записей, выполнять преобразование данных, реализовать многопоточность и прочее ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 14:04 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
invm, Квотил, и реплейсил спецсимволы, но видимо не все перереплейсил, каждый раз что-то новое вылазит. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 09:34 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
komrad в пакете можно добавить обработку некондиционных записей, выполнять преобразование данных, реализовать многопоточность и прочее ну некондиционных записей не должно быть в принципе - данные же из другой БД. Значит там все правильно. Другое дело, что МS этот текст нормально хранит - без проблем, а постгрес почему-то его не всегда ест. Преобразование - в данном случае не нужно. многопоточность это интересно. На сколько можно ускорить стационарную передачу? Стоит ли этим заниматься или остановиться на CSV, только доработать реплейсы спецсимволов? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 09:41 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Yaroslav85 komrad в пакете можно добавить обработку некондиционных записей, выполнять преобразование данных, реализовать многопоточность и прочее ну некондиционных записей не должно быть в принципе - данные же из другой БД. Значит там все правильно. Другое дело, что МS этот текст нормально хранит - без проблем, а постгрес почему-то его не всегда ест. Преобразование - в данном случае не нужно. многопоточность это интересно.На сколько можно ускорить стационарную передачу? Стоит ли этим заниматься или остановиться на CSV, только доработать реплейсы спецсимволов? там всё, мягко выряжаясь, фигня написана. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:44 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Ролг Хупин там всё, мягко выряжаясь, фигня написана. Можно по подробнее? Фигня где именно, или в чем именно? У меня в посте - или у komrad, или еще где? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:31 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Ролг Хупин, Или это тексте жирным вы выделили - то что считаете фигней? По сути у меня вопрос не в преобразовании данных, а в том как сделать быструю передачу данных из одной БД в другую, без преобразования, трансформации или еще чего. т.е. есть пулл данных в базе MS SQL - мне нужно их поместить Postgres. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:42 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Попробовал сделать по примеру как тут: https://stackoverflow.com/a/29811674 скорость намного выше, чем в insert into openquery. Правда тулю не всю таблицу сразу, а порционно по 1000 строк. Наверное на этом варианте пока и остановлюсь. По скорости немного медленнее чем выгрузка в csv... Copy from, но можно сразу все запускать из MSa. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:55 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Yaroslav85 есть пулл данных в базе MS SQL - мне нужно их поместить Postgres. А сразу из MS SQL их использовать - совсем не вариант?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 14:01 |
|
ускорение "insert into openquery" из MS SQL в PostgresSQL
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Бьете по больному месту... К сожалению нельзя с точки зрения лицензий ( . так к Postgres у подвязан сайт - Postgres - бесплатный. а МS, если подключить - то нужна серверная лицензия - она дорогая. как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 14:05 |
|
|
start [/forum/topic.php?fid=46&fpage=57&tid=1685997]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
291ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 401ms |
0 / 0 |