powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Миграция дынных
18 сообщений из 18, страница 1 из 1
Миграция дынных
    #40099056
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Подскажите как можно произвести выгрузку таблицы из mssql для импорта в другую БД (Postgresql)
Учитывая что в таблице помимо прочих данных (число, строка,...) хранятся файлы.
...
Рейтинг: 0 / 0
Миграция дынных
    #40099059
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в каком виде они там хранятся?

Если в бинарном, и речь идет о перезагрузке именно через файлы экспорта - импорта, а не прямой вставке на прилинкованный сервер - то можно выгрузить csv, например. А хранящиеся файлы - в виде строк base64.
Там, правда проблемы будут, если размер каждого файла под гигабайт, но тут тады ой.
...
Рейтинг: 0 / 0
Миграция дынных
    #40099067
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,
DataType (SystemType) - IMAGE
Размер каждого из файлов не велик, возможно до 3 Мб.
Все суммарно дадут порядка 14 Гб (точнее не все, а отобранные для выгрузки)

Соответственно файл должен помимо своего имени иметь и уникальный идентификатор, того к какой записи он принадлежал.
Может идентификатор это имя папки, в которой будут лежать эти вложения.
...
Рейтинг: 0 / 0
Миграция дынных
    #40099082
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, тогда вообще не проблема.
Пишете запрос, который возвращает два столбца - ID и FILE.
ID - синтезируете как хотите, FILE - вот так:
https://olontsev.ru/2013/06/convert-to-base64-and-back/
И потом вытаскиваете через SSIS в файл.

Но, наверняка это можно напрямую сделать, опять же используя SSIS.
См. тут:
https://docs.microsoft.com/ru-ru/sql/integration-services/import-export-data/connect-to-a-postgresql-data-source-sql-server-import-and-export-wizard?view=sql-server-ver15
...
Рейтинг: 0 / 0
Миграция дынных
    #40099172
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,
Есть пара особенностей.
1) вложения, хранящиеся в БД (MSSQL на Windows) в поле 'DATA', в зависимости от размера файла могут хранится в нескольких строках таблицы. Строки, соответственно, отличаются значением в ячейках DATA и SEGMENT (принимает значения 0, 1, 2, 3,...).

2) Конечная БД PostgreSQL на CenOS, но это не важно, потому что импорт данных будет производится через приложение (использующее эту БД).

3) Для одного и того же ID могут быть "вложены" файлы с одним и тем же именем. Поэтому при сохранении на диск вложений в папку по имени ID могут возникнуть проблемы. (но такой вариант сохранения кажется наиболее удобным)

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

ID - уникальный идентификатор записи связанный с вложением (т.е. повторяется для всех сегментов одного вложения и для разных вложений к этой же записи)
FILENAME - имя вложенного файла.
DATA - сам файл.
SEGMENT - порядковый номер сегмента, на которые разбит файл в базе.
UID - уникальный идентификатор вложения. (повторяется для каждого сегмента одного вложения)
...
Рейтинг: 0 / 0
Миграция дынных
    #40099178
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSSQL - management studio 2008 r2
...
Рейтинг: 0 / 0
Миграция дынных
    #40100608
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удалось сделать выгрузку файлов на диск (через приложение использующее данную БД).
Но к сожалению имена созданных(выгруженных) папок/файлов имеют не верную кодировку (1251), касается русских символов в именах, вручную переводил имя файла/папки в utf-8 и все становилось правильным.
...
Рейтинг: 0 / 0
Миграция дынных
    #40100789
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALARMus,

в Постгресе разве нет средств импорта?
...
Рейтинг: 0 / 0
Миграция дынных
    #40100831
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов, подкол засчитан.
psql - это тамошнее всё. читаем про copy from и пишем портянки кода.
Если вы не наши какой-то функционал в postgresql или что-то вас не устраивает, то вы всегда можете дописать всё самостоятельно, благо субд поставляется в исходниках (с) знакомый любитель postgresql :)
...
Рейтинг: 0 / 0
Миграция дынных
    #40100891
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
ALARMus,

в Постгресе разве нет средств импорта?


Понятия не имею.
Мы у себя не использовали Постгрес.
А теперь волна импортозамещения выдвигает свои требования.

И на самом деле постгрес на стороне подрядчика, который требует от нас выгрузку данных из нашей текущей системы (mssql), чтобы вгрузить в постгрес.
...
Рейтинг: 0 / 0
Миграция дынных
    #40100980
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Миграция дынных
    #40100997
Фотография ALARMus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
ALARMus,
попробуйте экспорт через Postgres OLE DB Provider и средства SSIS....


Спасибо за ответ.
Я выгрузку то сделал, средствами приложения, единственно русские символы (в именах файлов и папок) сохранились не в той кодировке (1251 вместо utf-8)
...
Рейтинг: 0 / 0
Миграция дынных
    #40101093
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALARMus
И на самом деле постгрес на стороне подрядчика, который требует от нас выгрузку данных из нашей текущей системы (mssql), чтобы вгрузить в постгрес.

В этом случае есть неплохой вариант сделать копию БД, вырезать из неё ненужное и бекап слить подрядчику, чтобы сам развлекался. MSSQL Developer Edition с полным комплектом софта качается подрядчиком бесплатно.
Если бекап не проканывает, то из студии generate scripts с опцией схема и данные. Ну и пусть файлик будет 50+ Гиг, зато хорошо заархивируется и можно будет переправить страждущим. Соответственно, с вашей стороны пули вылетели...

А кодировки postgre кушает любые, в том числе и win1251, надо базу создать с такой кодировкой и грузить в неё данные.
Хотя не совсем понятно, что такое "русские символы (в именах файлов и папок) сохранились не в той кодировке (1251 вместо utf-8)"?
Выгрузку под linux что ли делаете из базы на диск? Тогда если софтина путается в кодировках, то либо её править, либо искать другие средства.
...
Рейтинг: 0 / 0
Миграция дынных
    #40101217
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
ALARMus
И на самом деле постгрес на стороне подрядчика, который требует от нас выгрузку данных из нашей текущей системы (mssql), чтобы вгрузить в постгрес.

В этом случае есть неплохой вариант сделать копию БД, вырезать из неё ненужное и бекап слить подрядчику, чтобы сам развлекался . MSSQL Developer Edition с полным комплектом софта качается подрядчиком бесплатно.
Если бекап не проканывает, то из студии generate scripts с опцией схема и данные. Ну и пусть файлик будет 50+ Гиг, зато хорошо заархивируется и можно будет переправить страждущим. Соответственно, с вашей стороны пули вылетели...

А кодировки postgre кушает любые, в том числе и win1251, надо базу создать с такой кодировкой и грузить в неё данные.
Хотя не совсем понятно, что такое "русские символы (в именах файлов и папок) сохранились не в той кодировке (1251 вместо utf-8)"?
Выгрузку под linux что ли делаете из базы на диск? Тогда если софтина путается в кодировках, то либо её править, либо искать другие средства.


Т.е. с самого начала темы ни слова о версии SQL Server, зачем-то написано "MSSQL - management studio 2008 r2", но мы категорично уверены, что гад-подрядчик "чтобы сам развлекался. MSSQL Developer Edition с полным комплектом софта качается подрядчиком бесплатно ." - эх, хорошо же как.....
...
Рейтинг: 0 / 0
Миграция дынных
    #40101226
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
Т.е. с самого начала темы ни слова о версии SQL Server, зачем-то написано "MSSQL - management studio 2008 r2", но мы категорично уверены, что гад-подрядчик "чтобы сам развлекался. MSSQL Developer Edition с полным комплектом софта качается подрядчиком бесплатно ." - эх, хорошо же как.....

а Вы - тот самый ленивый подрядчик, которому надо всё готовенькое? :)
тут, канешна, как договорились и кто на что подписался. я просто варианты накидал...
и вот не пофигу какая версия mssql, ssms 2008 работает с органиченным набором версий, но все их бекапы так или иначе догоняются до актуальной, в худшем случае в пару шагов. вопрос в компетенциях подрядчика...
...
Рейтинг: 0 / 0
Миграция дынных
    #40101230
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
Ролг Хупин
Т.е. с самого начала темы ни слова о версии SQL Server, зачем-то написано "MSSQL - management studio 2008 r2", но мы категорично уверены, что гад-подрядчик "чтобы сам развлекался. MSSQL Developer Edition с полным комплектом софта качается подрядчиком бесплатно ." - эх, хорошо же как.....

а Вы - тот самый ленивый подрядчик, которому надо всё готовенькое? :)
тут, канешна, как договорились и кто на что подписался. я просто варианты накидал...
и вот не пофигу какая версия mssql , ssms 2008 работает с органиченным набором версий, но все их бекапы так или иначе догоняются до актуальной, в худшем случае в пару шагов. вопрос в компетенциях подрядчика...


Правильно, не читайте вопросы, сразу отвечайте что-то персональное, и вот это круто "и вот не пофигу какая версия mssql" - извините, не мог даже предположить, что-то я лишнего хватонул.
Ну и туда же про "MSSQL Developer Edition с полным комплектом софта качается подрядчиком бесплатно "
Продолжайте, читаю с интересом
...
Рейтинг: 0 / 0
Миграция дынных
    #40101286
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чорт, я это что ли пропустил?
авторКонечная БД PostgreSQL на CenOS, но это не важно, потому что импорт данных будет производится через приложение (использующее эту БД).
Тогда удаляйте всю мою писанину, был пьян.
...
Рейтинг: 0 / 0
Миграция дынных
    #40101511
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
Чорт, я это что ли пропустил?
авторКонечная БД PostgreSQL на CenOS, но это не важно, потому что импорт данных будет производится через приложение (использующее эту БД).

Тогда удаляйте всю мою писанину, был пьян.

нет, уж , миграция дынных будет теперь продолжаться!
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Миграция дынных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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