Назад | Перейти на главную страницу

Эффективный способ импорта большого количества данных в SQL Server 2008 из MySQL

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

Вот что я сделал:

  1. Создал сценарии через PHP для сброса базы данных MySQL в несколько файлов, совместимых с SQL Server 2008 - я имею в виду, что для каждой таблицы есть файл. В каждом файле есть операторы CREATE TABLE и INSERT. Он также содержит операторы GO каждую 200-ю вставку, чтобы я мог импортировать с помощью sqlcmd (если есть лучшая утилита, укажите мне на нее!)
  2. Скопированные файлы на SQL Server
  3. Использование утилиты командной строки sqlcmd для импорта - но это невероятно медленно !!!

Размер пакета 200 был выбран произвольно - если он должен быть больше, меньше или у меня должен быть только один оператор GO в конце файла, дайте мне знать.

Общий размер файлов составляет около 1 ГБ.

В идеале я хотел бы иметь возможность выполнить импорт менее чем за час, чтобы веб-сервер, зависящий от базы данных, не отключался слишком долго.

Любые предложения о том, как я могу это ускорить, были бы замечательными!

В Management Studio, графическом интерфейсе для SQL Server, пробовали ли вы щелкнуть правой кнопкой мыши новую базу данных (или создать ее) и выбрать Импорт / Экспорт - Импорт? Это будет использовать часть SQL Server, называемую SSIS, которая является компетентным инструментом ETL (извлечение, преобразование, загрузка).

Вам понадобится установленный драйвер ODBC для mysql, но импорт данных должен быть относительно простым - вы сможете преобразовать данные, если вам это нужно, в процессе.

В качестве альтернативы пробовали ли вы инструмент Microsoft Migration для импорта данных из MySQL в SQL Server? Все поставщики предоставляют эти инструменты, чтобы помочь переключиться с одной БД на другую!

http://www.microsoft.com/download/en/details.aspx?id=1495

Загрузка данных в SQL Server, вероятно, будет происходить быстрее, если использовать: BULK INSERT http://msdn.microsoft.com/en-us/library/ms188365.aspx или BCP http://msdn.microsoft.com/en-us/library/ms162802.aspx

Файлы форматирования могут быть проблемой в зависимости от того, насколько близко ваши необработанные файлы соответствуют структуре таблицы. Иногда может быть проще BULK INSERT или BCP в промежуточную таблицу, а затем переместить данные в нужные места после их загрузки.