Недавно поставщик объявил, что они обновляют свои процессы, и автоматизированный ежедневный дамп данных, который мы получаем от него, теперь будет поступать в формате MySQL. К сожалению, мы являемся магазином только для Microsoft, поэтому мы не можем напрямую импортировать эти файлы.
Итак, мой вопрос: как я могу взять файл дампа данных и импортировать его в экземпляр SQL Server 2005 для создания базы данных?
На заметку:
mysqldump
снова с другим параметром «совместимый».Я бы сделал что-то другое с третьей стороной. Я бы вытащил его из MySQL прямо в SQL Server с помощью SSIS и запланировал задачу внутри SQL-сервера. Импорт дампа MySQL в SQL Server будет проблематичным, так как DDL значительно различается между ядрами базы данных.
Если вы не можете получить доступ к стороннему поставщику напрямую, вы можете получить работающий экземпляр MySQL локально, а затем импортировать дамп mysql (используя mysqlimport в пакетном файле).
Вы должны уметь автоматизировать это достаточно легко с помощью планировщика задач и SSIS + Jobs в SQL Server 2005.
Если вы не хотите запускать экземпляр MySQL и скрипт для импорта и реэкспорта (в формате, удобном для MSSQL), вам придется написать парсер для перевода формата дампа MySQL в CSV или что-то полезное и простое.
Я думаю, вам лучше запустить экземпляр MySQL и менять местами данные. Вы даже можете использовать VBA для автоматизировать это через DSN как только данные находятся в MySQL.
Поскольку вы, вероятно, ведете бизнес, в котором ваше время чего-то стоит, рассмотрите коммерческое решение, например симметричные
в переполнение стека они указали на это решение: от mysql к mssql. Требуется загрузка экземпляра mysql.
Если ваши требования высечены в камне (я имею в виду ваш комментарий о «не требует ручного вмешательства»), то лучшим решением для вашей организации было бы заплатить кому-то за программирование этой логики для вас. Перенос данных между базами данных требует вмешательства, маленькие садовые гномы этого не сделают, пока вы спите. Кто-то должен будет запрограммировать его логику.
Написав все это, запуск mysql на сервере Windows - это прекрасно, и вам ничего не будет стоить, если вы запустите версию сообщества. Кстати, вы всегда можете потратить деньги, купив его в Oracle, если это требование руководства.
http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_xml
Дамп обычно содержит операторы SQL для создания таблицы, ее заполнения или и того, и другого. Однако mysqldump также может использоваться для создания файлов в формате CSV, другом тексте с разделителями или в формате XML.
Тогда я бы выбрал формат XML и преобразовал его везде, где это необходимо, с помощью XSLT.