powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / PostgreSQL [закрыт для гостей] / Кто чем делает миграцию данных из MSSQL в Postres?, Поиск: Искать сообщения, созданные автором: Дед-Папыхтет  
21 сообщений из 21, страница 1 из 1
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?  
    #336235
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Ну я вижу 3 пути указал выше...
Ну рисовать микросервис для разовой загрузки глупо это как из пушки по воробьям... Как по мне самое простое 3 вариант - через файлы перегнать, но... в банке безопасники запрещают - типа не секурно и вообще нильзя - не объясним по чему, если сам не понимаешь, мы не виноваты что не понимаешь очевидного...
можно конечно SSIS попробовать... чота бл попробовал - не видит дефалтово постгрес, создал даже ODBC DSN - тоже сука не видит ))) может какой ему драйвер специальный нужен?
В общем пока ябуся с павершелом... загрузил в переменную resultset из запроса... и в таблицу построчно вставляю... Но чота блин 80 тыс строк меж мс-мс внутри сервера простая таблица - 0.1 сек переливается, в докер постгрес с помощью повершела - 3 минуты )))))))
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336267
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Помощник Менеджера  27.03.2023, 18:07
[игнорируется]
Копал бы в сторону штатных конекторов, желательно со стороны постгриса
Всмысле, в постгрес заебенить dblink (linked server) на mssql? и скриптом заливать?
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336277
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Помощник Менеджера  27.03.2023, 18:20
[игнорируется]
Кстати, вроде айтиклоб тут, он вроде спец по этой хуйне, вытащи его сюда, мож подскажет как кошернее тянуть данные с мсскл
Да я бл всяко уже пытаюсь )))) балкинсерт из мс в мс без файлов - быстро должно быть, но суко какой то скачаный драйвер одбц постгрес не поддерживает. этих драйверов дохера какие то платные какие то бесплатные... пробовать и эксперементировать можно год ))) а сделать надо ну за несколько дней )
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336297
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Помощник Менеджера  27.03.2023, 18:29
[игнорируется]
Дед-Папыхтет  27.03.2023, 18:22
[игнорируется]
Помощник Менеджера  27.03.2023, 18:20
[игнорируется]
Кстати, вроде айтиклоб тут, он вроде спец по этой хуйне, вытащи его сюда, мож подскажет как кошернее тянуть данные с мсскл
Да я бл всяко уже пытаюсь )))) балкинсерт из мс в мс без файлов - быстро должно быть, но суко какой то скачаный драйвер одбц постгрес не поддерживает. этих драйверов дохера какие то платные какие то бесплатные... пробовать и эксперементировать можно год ))) а сделать надо ну за несколько дней )
А штатные какие то инструменты есть?
МС игнорит постгрес ?
Раньше к мсскл помнится целый кит шел довеском с хуевой тучей разных инструментов
У мс скл есть штатный SSIS - Integration Services, облегченный с клиентом в винде есть "мастер импорт-экспорт"
1.JPG
2.JPG
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336300
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
еще есть утилита bcp.exe - bulk copy program с командной строки можно выгрузить из бд в цсв... но безопасники не разрешают )))) вроде как самое простое.

Еще мысль была в мсскл сформировать запросом
не

select id, name from tbl

а

select 'insert tbl (id, name) values ('+id+','''+name+''')' from tbl - такую пердь на источнике...
и сохранить результат в файл )))
но когда десять млн строк... чота я сомневаюсь что постгрес сможет такой скрипт отработать ))))))))))

ну это еще хуже чем в цсв выгружать
...
Изменено: 27.03.2023, 18:38 - Дед-Папыхтет
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336305
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Я пока так заебенил... мс с дев контура, постгрес в докере локально - так тестю
Спойлер
Код: PowerShell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
cls
$src_server = "server-mssql"
$src_port = 1433
$src_db = "db1"
$src_uid = "user1"
$src_pwd = "password1"

$trg_server = "localhost"
$trg_port = 5442
$trg_db = "dbtest"
$trg_uid = "dbuser"
$trg_pwd = "password2"

$src_conn = New-Object System.Data.Odbc.OdbcConnection
$src_conn.ConnectionString = "Driver={SQL Server};Server=$src_server;Port=$src_port;Database=$src_db;Uid=$src_uid;Pwd=$src_pwd"
$src_conn.Open()

$trg_conn = New-Object System.Data.Odbc.OdbcConnection
$trg_conn.ConnectionString = "Driver={PostgreSQL UNICODE};Server=$trg_server;Port=$trg_port;Database=$trg_db;Uid=$trg_uid;Pwd=$trg_pwd;"

$SQL = "select distinct id from dbo.guide"
$src_da = New-Object System.Data.Odbc.OdbcDataAdapter($sql, $src_conn)
$src_dt = New-Object System.Data.DataTable
$count = $src_da.Fill($src_dt)
Write-Host "dbo.guide readed" $count "rows"

$d1 = (GET-DATE)
Write-Host "Start insert assets.assets - $d1"

$trg_conn.Open()
$sql = "insert into assets.assets (id) values (?)"
$command = New-Object System.Data.Odbc.OdbcCommand($sql, $trg_conn)
$command.Parameters.Add("id", [int]) | Out-Null
$command.Transaction = $trg_conn.BeginTransaction()

$loaded = 0

$src_dt | foreach {
    $command.Parameters["id"].Value = $_.id
    try {
        $command.ExecuteNonQuery() | Out-Null
        $loaded += 1
    } catch {}
}
$command.Transaction.Commit()
$d2 = (GET-DATE)
$duration = (New-Timespam –Start $d1 –End $d2)
Write-Host "Finish insert assets.assets - $d2"
$duration
Write-Host "dbo.guide writed" $count "rows"

$trg_conn.Close()
$src_conn.Close()
$trg_conn.Dispose()
$src_conn.Dispose()
но бл чота никуя не быстро...
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336335
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Горбатый ёж  27.03.2023, 19:06
[игнорируется]
Дед-Папыхтет [игнорируется] 

Со стороны посгреса забирать ро линку будет проще, как мне кажется.
Но на одном проекте из оракла данные пентахой тащили, но там 16 тер было.
Ну... сегодня 100тыс - 1 млн строк десяток таблиц... А вот завтра может быть и история сделок... то есть лучше сразу как то быстрое решение искать на перспективу... ну может действительно пентахо качну ща
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #336364
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Кусь [игнорируется] , Артефакт [игнорируется] 
Ну это да - это линкованый сервер, в терминах постгри - дблинк. Да это норм по идее, я уже писал безы скорее всего не пропустят...
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337210
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
megabyte  28.03.2023, 23:01
[игнорируется]
Дед-Папыхтет  27.03.2023, 18:22
[игнорируется]
Помощник Менеджера  27.03.2023, 18:20
[игнорируется]
Кстати, вроде айтиклоб тут, он вроде спец по этой хуйне, вытащи его сюда, мож подскажет как кошернее тянуть данные с мсскл
Да я бл всяко уже пытаюсь )))) балкинсерт из мс в мс без файлов - быстро должно быть, но суко какой то скачаный драйвер одбц постгрес не поддерживает. этих драйверов дохера какие то платные какие то бесплатные... пробовать и эксперементировать можно год ))) а сделать надо ну за несколько дней )
Плохо искал. На прошлой работе какой-то odbc драйвер нашли. Правда мы только из Postgresql в MSSQL данные перегоняли.

Могу у разрабов спросить, что на текущем месте практикуется. Так то миграций у нас много сейчас с MSSQL на Postgresql.
Спроси, если не сложно
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337671
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
megabyte  29.03.2023, 11:38
[игнорируется]
Дед-Папыхтет  28.03.2023, 23:03
[игнорируется]
megabyte  28.03.2023, 23:01
[игнорируется]
Дед-Папыхтет  27.03.2023, 18:22
[игнорируется]
Помощник Менеджера  27.03.2023, 18:20
[игнорируется]
...
Да я бл всяко уже пытаюсь )))) балкинсерт из мс в мс без файлов - быстро должно быть, но суко какой то скачаный драйвер одбц постгрес не поддерживает. этих драйверов дохера какие то платные какие то бесплатные... пробовать и эксперементировать можно год ))) а сделать надо ну за несколько дней )
Плохо искал. На прошлой работе какой-то odbc драйвер нашли. Правда мы только из Postgresql в MSSQL данные перегоняли.

Могу у разрабов спросить, что на текущем месте практикуется. Так то миграций у нас много сейчас с MSSQL на Postgresql.
Спроси, если не сложно
Спросил у нач. отдела разработки. Сказал: informatica, либо convert to csv + copy.
Спросил у одного разраба: informatica, но были проблемы с текстовыми полями.
Понятно. Информатика платный продукт у нас его нет. Ну я пока рисую в аналоге от Майкрософт - SSIS. Хоть это не целевое на перспективу не опенсорс, но миграция с мсскл - ссис у нас уже есть
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337704
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
anonymous  29.03.2023, 14:59
[игнорируется]
тебе просто данные перенести из таблиц или ты хочешь всю базу мигрировать?
Пока 8 справочников, но в последствии и другие таблицы - думаю подобные задачи будут перманентно возникать. Цель уйти от мсскл на микросервисную архитектуру. в общем частями
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337709
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
anonymous  29.03.2023, 15:07
[игнорируется]
из платных могу посоветовать EMS Data Pump for PostgreSQL, если интересно могу рассказать, там есть свои + и -

бесплатно, то базу можно мигрировать используя комбинацию tds_fdw + sqlserver2pgsql

для начала
sudo yum install tds_fdw_14

CREATE EXTENSION tds_fdw;

CREATE SERVER mssql FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql', database ‘database', msg_handler 'notice');

CREATE USER MAPPING FOR postgres SERVER mssql OPTIONS (username ‘user', password 'password');

CREATE DATABASE new_db;
CREATE SCHEMA new_schema;

IMPORT FOREIGN SCHEMA dbo FROM SERVER mssql INTO new_schema OPTIONS (import_default 'true');

экспортируем структуру БД MSSQL через генерацию скрипта
даем пожевать ее perl sqlserver2pgsql.pl -f tables.sql -b tables-before.sql -a tables-after.sql -u tables-unsure.sql

на выходе получаем скрипты для постгри
tables-before.sql – файл создания таблиц
tables-after.sql – файл установки ограничений
tables-unsure.sql – файл значений по умолчанию

далее хуячим курсором
DO $$
DECLARE
rec RECORD;
cur CURSOR FOR
SELECT foreign_table_name FROM information_schema.foreign_tables;
BEGIN
OPEN cur;
LOOP
FETCH cur INTO rec;
EXIT WHEN NOT FOUND;
EXECUTE ('insert into public.'||lower(rec.foreign_table_name)||' select * from '||'public."'||rec.foreign_table_name||'"'||';');
END LOOP;
CLOSE cur;
END $$;

на тестовом стенде проверял 300 гигов льет часа за 3 на сервере типа 4 ядра и 15 гигов ОЗУ
за скрипт спасибо большое )))) хоть йобли меньше будет если разрешат с дблинк делать
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337715
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
anonymous  29.03.2023, 15:10
[игнорируется]
Дед-Папыхтет  29.03.2023, 15:10
[игнорируется]
anonymous  29.03.2023, 14:59
[игнорируется]
тебе просто данные перенести из таблиц или ты хочешь всю базу мигрировать?
Пока 8 справочников, но в последствии и другие таблицы - думаю подобные задачи будут перманентно возникать. Цель уйти от мсскл на микросервисную архитектуру. в общем частями
тогда юзай внешние таблицы, по мне так тебе оптимально будет
Пока проблема в чем в банке бюрократия и безопасность блюдёт что бы неразрешенные технологии не использовались.
1. несогласованный софт - типа пентахо или платная информатика - согласование через 7 кругов ада может длится полгода выступить на куче встреч и куче разных уровней начальникам доказать необходимость использования этого, далее проверка безов что это безопасно и банк не рискует ))))
2. уже безы запретили выгружать файлы и загружать - типа с мсскл в цсв выгрузить и в постгрес загрузить, всей истории не знаю да и насрать честно говоря, но что бы такое протолкнуть куча нервов своих, твоих руководителей и т.п. безопасники упёртые что пиздец.
3. дблинк или же линкед сервер по той же самой причине запретили.

Выход, или что то свое писать на джава, скрипт баш павершел или что уже куплено и разрешено использовать. Ну раз мсскл у нас куплен, хоть мы и отказываемся, с мсскл идет ссис - вот им пока и пользуюсь. хотя... когда не будет мсскл не будет ссис и я бы наверное перелез сразу на пентаху... но пентаха пока не разрешена ))))))))))))))))) и не согласована
...
Изменено: 29.03.2023, 15:16 - Дед-Папыхтет
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337719
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Хотя вот... чобы не сделать экспорт импорт в цсв или хмл?... вроде самое простое...
да и дблинк тоже прост, но видимо эксперты сказали что это не безопасно и всё - пиздарики
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337720
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
локально я всяко могу сделать на стенде тестовом или девелоперском или локально... а на прод хуй пустят
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337729
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
anonymous  29.03.2023, 15:20
[игнорируется]
Дед-Папыхтет  29.03.2023, 15:18
[игнорируется]
Хотя вот... чобы не сделать экспорт импорт в цсв или хмл?... вроде самое простое...
да и дблинк тоже прост, но видимо эксперты сказали что это не безопасно и всё - пиздарики
в чем небезопасность db линка? по ssl соединитесь и гоните прямым потоком
дайте пользователю права в MSSQL только на select из базы, а на постгре, только insert
Да!

Но... когда то видимо давным давно что бе не ебаца с правами давали учетки сервиса права сисадмина, щас в банке дают права владельца бд на БД, ладно хоть не на сервер. И видимо такие права и не безопасны ))))
Я просто предполагаю, что руководящие лица принимающие решения не знают что можно права давать на отдельно взятые таблицы, может даже и знают, но не хотят связываться - сказано так делать - так и делаем.
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337733
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
на эту тему вспомнился мем:
В конторе прорвало канализацию. Срочно собрали членов правления АО. Типа оперативный штаб. После проверки все ли собрались, председательствующий спросил: а в чём причина аварии - мы мало проводим совещаний или они неэффективны?
ну очень похоже на совещания когда начальники отделов-департаментов собираются
...
Рейтинг: 1 / 0
Нравится: megabyte
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337827
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Красивенько получилось ))))
етл.JPG
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337831
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
PaNik  29.03.2023, 18:25
[игнорируется]
Дед-Папыхтет  29.03.2023, 18:22
[игнорируется]
Красивенько получилось ))))
етл.JPG
нет ли втут ДСП?
Штааа?
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #337913
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
anonymous  29.03.2023, 20:58
[игнорируется]
Дед-Папыхтет  29.03.2023, 18:22
[игнорируется]
Красивенько получилось ))))
етл.JPG
и чем это отличается от прямого линка? - ничем))
нуууу это не прямой линк это как приложение тащит с источника и хуячит в приемник, если требуется преобразования делает...
у всяких подобных ЕТЛ программ есть неоспоримые преимущества.

1. визуальность мышкатыкание - для многих это минус, меня раздражало сильно писать не код а хуярить всё мышкой, но аналитикам такая визуальность по душе сильно.
2. очень легко параллелить процессы - прямоугольник куда не заходит стрелка независим от других подобных. Стрелка обозначает - порядок выполнения. Часто когда нужно загрузить несколько таблиц - их в таком пакете стартуешь не по порядку а одновременно. Ну на мой взгляд здесь проще, нежели в джаве городит потомки тредов и всяко извращаться.
3. быстрота переливки больших объемов - bulk insert поддержка - пакетная переливка.

Вообще SSIS, Pentahoo, Informatika примерно одна хуйня и назначение - переливка данных из источников в приемники... ну как бы специализированное средство...

Не факт что безопасники такое пропустят, если не пропустят ну перепишу скриптом...
...
Рейтинг: 0 / 0
PostgreSQL / Кто чем делает миграцию данных из MSSQL в Postres?
    #338076
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  30.03.2023, 00:09
[игнорируется]
anonymous  29.03.2023, 23:52
[игнорируется]
Кусь  29.03.2023, 23:40
[игнорируется]
тоже любили коней?
Наверное, медленно переносили данные между базами
Вбивали руками со скриншотов )
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PostgreSQL [закрыт для гостей] / Кто чем делает миграцию данных из MSSQL в Postres?, Поиск: Искать сообщения, созданные автором: Дед-Папыхтет  
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol
Читали форум (2): Анонимы (2)
Пользователи онлайн (34): Анонимы (22), serg_tmb, Горбатый ёж, Vaska Balboa, anonymous, Yandex Bot, Bing Bot 3 мин., Redd 6 мин., Просто Трёп 6 мин., ElenaG 6 мин., unique 7 мин., Шоколадный01 7 мин., Дед-Папыхтет 8 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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