Преобразование файла MySQL .DMP в файл .SQL для MS Sql Server 2005 - PullRequest
0 голосов
/ 19 декабря 2008

Я на первом месте в проекте, который должен будет многократно импортировать данные из файлов MySQL * .dmp в существующую базу данных Sql Server. Я ищу руководство в виде существующего инструмента, структуры или, за исключением уже существующих решений, предложений о том, как действовать.

Моя первая мысль - прочитать файл dmp в виде текста и выполнить его поиск / замену для преобразования соглашений MySQL в SQl Server, но это звучит грязно, сложно и подвержено ошибкам, так как непредвиденные элементы попадают в исходный файл ,

Кроме того, эти dmp-файлы являются накопительными. Где я могу найти ресурсы для расчета дельты таблиц как в данных, так и в схемах?

Спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 19 декабря 2008

Я думаю, вам следует загрузить все эти данные в новую установку MySQL, а затем использовать службы интеграции SQL Server для импорта этих данных в SQL Server.

Также для переноса структуры БД вы можете взглянуть на этот документ: Документы SQL Server: переход с MySQL, Oracle, Sybase или Microsoft Access на Microsoft SQL Server

1 голос
/ 19 декабря 2008

Мой предпочтительный подход для преобразования структуры базы данных из одного механизма базы данных в другой заключается в создании простого приложения для этой цели, особенно если оно должно быть динамическим (структура меняется со временем) и повторяться. Это возможно в вашей ситуации?

В частности, напишите приложение / скрипт для обхода структуры исходной базы данных (в данном случае MySQL) и сгенерируйте эквивалентный DDL для целевой базы данных (в данном случае SQL Server). Затем DDL может быть либо сохранен как сценарий для последующего выполнения, либо он может быть выполнен в режиме реального времени, если у вас есть возможность подключения к обеим базам данных одновременно.

За много лет я делал это много раз. По сути, это упражнение в генерации кода в общем случае, поэтому оно может выиграть от использования механизма шаблонов (StringTemplate).

Я нашел это полезным для случаев, когда я обновлял базу данных (Oracle 6-7), а также для переключения продуктов (например, Access to SQL Server).

Вы можете также рассмотреть возможность использования ANSI SQL вместо этого, что будет работать для большинства баз данных, за исключением случаев, когда вы используете пользовательские функции базы данных (которые должны быть сведены к минимуму).

С наилучшими пожеланиями.

РЕДАКТИРОВАТЬ: Я бы НЕ рекомендовал пытаться преобразовать реальные файлы сценариев с помощью какого-либо анализа текста и переписать. Я обнаружил, что он подвержен ошибкам, чрезвычайно сложен, отнимает много времени и, в конечном счете, проваливается с определенными видами необходимых преобразований. Пусть движки баз данных сделают эту работу за вас, как я предложил выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...