MySQL к данным передачи SQL Server

<%-- not rendered to browser --%>
5
задан marc_s 2 December 2009 в 20:19
поделиться

6 ответов

См. по этой ссылке . Идея состоит в том, чтобы добавить вашу базу данных MySQL в качестве связанного сервера в SQL Server через драйвер MySQL ODBC. Затем вы можете выполнять любые операции с базой данных MySQL через SSMS, включая копирование данных в SQL Server.

Поздравляем с продвижением в мире СУБД!

10
ответ дан 18 December 2019 в 11:57
поделиться

Службы SSIS предназначены для таких задач. Первый шаг - вручную обозначить, где каждый фрагмент данных будет помещен в новую структуру. Итак, в вашей старой таблице было четыре поля, в вашей новой структуре поля 1 и 2 переходят в таблицу a, а поля 3 и 4 переходят в таблицу b, но вам также необходимо иметь автоматически сгенерированный идентификатор из таблицы a. Делайте заметки относительно того, где типы данных изменились, и вам может потребоваться внести корректировки, или где у вас есть требуемые поля, где данные не требовались раньше и т. Д.

Обычно я создаю промежуточные таблицы. Поместите данные в денормализованной форме в одну промежуточную таблицу, а затем перейдите к нормализованным промежуточным таблицам, выполните там очистку и добавьте новые идентификаторы, как только они появятся в промежуточных таблицах. Одна вещь, которую вам нужно сделать, если вы переходите от денормализованной базы данных к нормализованной, - это то, что вам нужно будет удалить дубликаты из родительских таблиц, прежде чем вставлять их в фактические производственные таблицы. Вам также может потребоваться очистка данных, поскольку в новой структуре могут быть требуемые поля, которые не требовались в старых проблемах с преобразованием данных из-за перехода к более качественным типам данных (например, если вы сохранили даты в старой базе данных в полях varchar, но правильно перейти к datetime в новой базе данных, у вас могут быть записи, у которых нет действительных дат.

Еще одна проблема, о которой вам нужно подумать, - это то, как вы будете преобразовывать идентификаторы старых записей в новые.

Это непростая задача, но она выполнима, если вы не торопитесь и систематически работаете. Сейчас не время пробовать ярлыки.

Это непростая задача, но выполнимая, если вы не торопитесь и будете работать методично. Сейчас не время пробовать ярлыки.

Это непростая задача, но выполнимая, если вы не торопитесь и будете работать методично. Сейчас не время пробовать ярлыки.

5
ответ дан 18 December 2019 в 11:57
поделиться

Вам нужен инструмент ETL (извлечение, преобразование, загрузка).

http://en.wikipedia.org/wiki/Extract,_transform,_load#Tools

0
ответ дан 18 December 2019 в 11:57
поделиться

Я действительно не знаю, насколько далеко у вас может уйти инструмент 'ETL' в зависимости от исходного и нового дизайна базы данных. За свою карьеру мне приходилось делать больше, чем несколько миграций данных, и обычно нам всегда приходилось разрабатывать специальную утилиту, которая обновляла бы новую базу данных записями из старой базы данных, и да, мы закодировали ее полностью со всеми обновлениями / вставками. утверждения, которые преобразовали бы данные.

Я не делаю ' Я не знаю, сколько таблиц в вашей базе данных, но если их не слишком много, вы можете подумать о том, чтобы перейти в режим grunt root. В конце концов, это одна из техник, которая гарантированно работает.

0
ответ дан 18 December 2019 в 11:57
поделиться

Я сделал это в другом направлении, и SSIS работает нормально, хотя мне, возможно, пришлось использовать задачу сценария, чтобы справиться с небольшой странностью типов данных. SSIS выполняет ETL .

0
ответ дан 18 December 2019 в 11:57
поделиться

Если вы войдете в свою базу данных в SSMS и щелкните правой кнопкой мыши, в разделе задач должна быть опция «Импорт данных». Вы можете попробовать это использовать. По сути, это просто мастер, который создает для вас пакет SSIS, который затем может либо запускаться для вас автоматически, либо который вы можете сохранить и затем изменить по мере необходимости.

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

Я уверен, что SSIS может обрабатывать любые преобразования, которые вам нужно сделать, чтобы изменить его из старый формат в новый. Альтернативой может быть простой импорт таблиц в MS SQL как есть в промежуточные таблицы, а затем использование кода SQL для преобразования данных в таблицы 3NF. Это' Все дело в том, что вам удобнее всего. Если вы пойдете вторым путем, то можно будет использовать процесс импорта, о котором я упоминал выше в SSMS. Он даже создаст для вас целевые таблицы. Просто убедитесь, что вы дали им уникальные имена, возможно, поставив перед ними префикс «STG_» или что-то в этом роде.

Давуд упомянул связанные серверы. Это определенно другой путь, по которому вы можете пойти (и получил мой голос). Лично я предпочитаю сначала скопировать таблицы в MS SQL, поскольку связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

тогда можно использовать процесс импорта, о котором я упоминал выше в SSMS. Он даже создаст для вас целевые таблицы. Просто убедитесь, что вы дали им уникальные имена, возможно, поставив перед ними префикс «STG_» или что-то в этом роде.

Давуд упомянул связанные серверы. Это определенно другой путь, по которому вы можете пойти (и получил мой голос). Лично я предпочитаю сначала скопировать таблицы в MS SQL, поскольку связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

тогда можно использовать процесс импорта, о котором я упоминал выше в SSMS. Он даже создаст для вас целевые таблицы. Просто убедитесь, что вы дали им уникальные имена, возможно, поставив перед ними префикс «STG_» или что-то в этом роде.

Давуд упомянул связанные серверы. Это определенно другой путь, по которому вы можете пойти (и получил мой голос). Лично я предпочитаю сначала скопировать таблицы в MS SQL, так как связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

Просто убедитесь, что вы дали им уникальные имена, возможно, поставив перед ними префикс «STG_» или что-то в этом роде.

Давуд упомянул связанные серверы. Это определенно другой путь, по которому вы можете пойти (и получил мой голос). Лично я предпочитаю сначала скопировать таблицы в MS SQL, поскольку связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

Просто убедитесь, что вы дали им уникальные имена, возможно, поставив перед ними префикс «STG_» или что-то в этом роде.

Давуд упомянул связанные серверы. Это определенно другой путь, по которому вы можете пойти (и получил мой голос). Лично я предпочитаю сначала скопировать таблицы в MS SQL, поскольку связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

Я предпочитаю сначала скопировать таблицы в MS SQL, поскольку связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

Я предпочитаю сначала скопировать таблицы в MS SQL, поскольку связанные серверы иногда могут иметь странные особенности, особенно когда речь идет о типах данных, которые не сопоставляются между разными поставщиками. Наличие всех таблиц в MS SQL также, вероятно, будет немного быстрее и сэкономит время, если вам придется повторно запускать или исправлять части данных. Как я уже сказал, метод связанного сервера, вероятно, тоже подойдет.

0
ответ дан 18 December 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: