:: Не фоксом единым
Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
[attachment 36406 perenos.prg]
Думаю, перед многими уже стояла такая задача или вскоре встанет.
Передо мной встает в полный рост.
Припоминаю, когда-то Володя Журавлев писал программу на фоксе
для перекачки данных из DBF в MSSQL.
Может, кто-то уже писал программу по перекачке данных из MSSQL в POSTGRESQL?
Володину программку прилагаю на всякий случай.



Исправлено 1 раз(а). Последнее : tata, 21.09.22 14:15
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
PaulWist

Сообщений: 14636
Дата регистрации: 01.04.2004
Вопрос в чём?


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
В автоматизации процесса.
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
PaulWist

Сообщений: 14636
Дата регистрации: 01.04.2004
Есть 4 пути

1. Сделать линк от MSSQL в PG, и со стороны MSSQL загружать данные.

2. Сделать линк от PG в MSSQL, и со стороны PG загружать данные.

3. Использовать фокс, создать соединение с PG и MSSQL, забирать данные из MSSQL и класть в PG.

4. Использовать массовую загрузку из промежуточных файлов (фактически аналог 3).


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
А поподробнее?
Что значит "сделать линк"?
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
sphinx

Сообщений: 31302
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Гугли dblink, лучше читать в документации. И примеры там есть. Лучше п.2 - в какую систему надо, та пусть и выкачивает себе данные.


------------------
"Veni, vidi, vici!"(с)




Исправлено 1 раз(а). Последнее : sphinx, 21.09.22 19:02
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
Владимир Максимов

Сообщений: 14103
Откуда: Москва
Дата регистрации: 02.09.2000
В приложении Microsoft SQL Server Management Studio существует инструмент для загрузки данных в таблицы. Из любого источника, к которому можно подключиться по ADO

Необходимо выбрать нужную базу данных и по правой клавише меню выбрать пункт «Import Data». Там достаточно легко разобраться дальше
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
PaulWist

Сообщений: 14636
Дата регистрации: 01.04.2004
Обращение к PG из MSSQL

1. Настройте драйверы ODBC для PostgreSQL
guidesure.net.

2. Настройте связанный сервер между SQL Server и PostgreSQL с помощью драйверов ODBC
guidesure.net

3. Далее используя OPENQUERY

guidesure.net

4. Нюансы при миграции схемы в PostgreSql
assets.ctfassets.net


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 22.09.22 08:41
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
PaulWist

Сообщений: 14636
Дата регистрации: 01.04.2004
Скрипт, табличка д.б. под 6Г (6 млн записей), делаться будет долго.

create table test (id bigint identity primary key, nInt bigint, Name1 char(200), Name2 char(200), Name3 char(200), Name4 char(200), Name5 char(200))
go
insert into test (nInt)
select row_number() over(order by 1/0)
from
master.dbo.spt_values a cross join
master.dbo.spt_values b

Минут 40 будет создаваться.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 22.09.22 21:15
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
PaulWist

Минут 40 будет создаваться.

6512704 - за пару минут локально.
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
Владимир Максимов
В приложении Microsoft SQL Server Management Studio существует инструмент для загрузки данных в таблицы. Из любого источника, к которому можно подключиться по ADO
Необходимо выбрать нужную базу данных и по правой клавише меню выбрать пункт «Import Data». Там достаточно легко разобраться дальше
Так. Качаем не в MS SQL, а из него.
В PostgreSQL есть импорт данных по правой кнопке, но только в формате csv.
А я хочу из таблицы MS SQL качнуть в PG SQL.
Эксперименты совместно с PaulWist привели к необходимости перекачивать данные кусочками.
Хотелось бы найти способ качать большие таблицы полностью.
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
Владимир Максимов

Сообщений: 14103
Откуда: Москва
Дата регистрации: 02.09.2000
tata
Владимир Максимов
В приложении Microsoft SQL Server Management Studio существует инструмент для загрузки данных в таблицы. Из любого источника, к которому можно подключиться по ADO
Необходимо выбрать нужную базу данных и по правой клавише меню выбрать пункт «Import Data». Там достаточно легко разобраться дальше
Так. Качаем не в MS SQL, а из него.

Там же, кроме пункта "Import Data" есть еще пункт "Export Data" ;)

Суть та же самая. Это Wizard. Где по шагам последовательно указываешь откуда берешь данные, куда надо положить, и, если необходимо, простейшие преобразования типов.

Собственно, это все то, что предлагает Паша. Только он предлагает это делать в "ручном" режиме, а это готовый инструмент. Правда, только для простых преобразований типов и данных. По сути, из таблицы в таблицу

Но если внешняя база недоступна, то можно сделать выгрузку, например, в Excel
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
PaulWist

Сообщений: 14636
Дата регистрации: 01.04.2004
Владимир.

Тут проблема в другом.

Из MSSQL в PG линк создаётся, данные переносятся, проблема получается, когда надо передать табличку в 5-6Г, MSDTC (координатор распределённых транзакций) по тихому падает, более того он так же тихо останавливает службу сервера MSSQL. Найдено то кол-во записей/Мб/страниц данных при котором экспорт получается стабильным, НО это на стенде, что будет на проде - неизвестно, да и задача не одноразовая, должна работать по шедулеру.

Проблема тянется уже лет 15. Пост c sql.ru от 2012г murcode.ru

Вроде есть возможность используя openquery() обойти данную фичу murcode.ru , но пока эксперименты не привели к результату. "Курим" хелп/форумы дальше. [sm128]


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 28.09.22 08:33
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
Владимир Максимов

Сообщений: 14103
Откуда: Москва
Дата регистрации: 02.09.2000
Ну, в исходной постановке ничего такого не было. Просто просили инструмент. По постановке вопроса - именно под разовую загрузку "всего и сразу"

Если же задача сводится к синхронизации (репликации) баз данных, то, по-моему, на этот счет есть куча разных приемов. От "дилетантских" доп.полей с признаком изменения/архивирования, то "промышленных" триггеров на репликацию в MS SQL.

Т.е. вполне себе стандартная задача. Изначально копируем все, что есть. А потом по шедулеру уже только изменения, которые накопились с последней загрузки. Вариантов реализации этой стратегии довольно много... И ограничение под 6ГБ уже не кажутся важными. "За раз" копируется существенно меньше данных. Ну, разве что, первоначальная загрузка. Но там можно отдельно это все сделать. Как ты в примере и предлагаешь, копировать кусками по N записей.

И, кстати, инструменты MS SQL "Import Data" и "Export Data" вполне себе могут в качестве источника данных использовать запрос, а в целевой таблице делать обновление/замену.
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
PaulWist

Сообщений: 14636
Дата регистрации: 01.04.2004
Владимир Максимов
Ну, в исходной постановке ничего такого не было. Просто просили инструмент. По постановке вопроса - именно под разовую загрузку "всего и сразу"

Да, забыл про такую фичу.

Сегодня проверить не могу, "стенд" недоступен.

Если Import/Export не упадёт, то пойдёт как рабочий инструмент.

Владимир Максимов
Если же задача сводится к синхронизации (репликации) баз данных, то, по-моему, на этот счет есть куча разных приемов. От "дилетантских" доп.полей с признаком изменения/архивирования, то "промышленных" триггеров на репликацию в MS SQL.

Нее, в триггере MSSQL нельзя использовать разнородные источники данных. (может в 2017-19 изменилось)

Владимир Максимов
Т.е. вполне себе стандартная задача. Изначально копируем все, что есть. А потом по шедулеру уже только изменения, которые накопились с последней загрузки. Вариантов реализации этой стратегии довольно много... И ограничение под 6ГБ уже не кажутся важными. "За раз" копируется существенно меньше данных. Ну, разве что, первоначальная загрузка. Но там можно отдельно это все сделать. Как ты в примере и предлагаешь, копировать кусками по N записей.

Отличное предложение, сам использовал, ... склероз уже


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
Мой коллега использует вот этот инструмент:
github.com
Качает таблицы only.
Связалась также с автором приведенной тут статьи Станиславом Флусовым.
Он посоветовал инструмент aws scheme conversion tools,
он умеет автоматически конвертить процедуры.
AWS здоровенный, качался целый день.
Еще не пробовала.
Пишу для информации.
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
sphinx

Сообщений: 31302
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
tata
Мой коллега использует вот этот инструмент:
github.com
...
Еще не пробовала.

Прошла неделя. Есть результаты?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Из MS SQL перекачать данные в PostgreSQL
tata
Автор

Сообщений: 3469
Откуда: Йошкар-Ола
Дата регистрации: 23.10.2005
Что касается AWS, то у меня очень большие процедуры со сложной логикой, автоматически сконвертировать таких монстров не получится.
Мне начальник не разрешил на это даже время тратить.
А вот этот инструмент работает, таблицы качает.
sqlserver2pgsql



Исправлено 1 раз(а). Последнее : tata, 24.10.22 14:04
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 1 (Гостей: 1)

© 2000-2024 Fox Club 
Яндекс.Метрика