Лучший способ записи в MongoDB из источника базы данных SQL? - PullRequest
0 голосов
/ 29 июня 2011

Я пытаюсь перенести базу данных MySQL в базу данных MongoDB, просматривая строки, получая данные и вставляя правильную информацию MongoDB из соответствующей строки MySQL. Мне было интересно, как лучше всего получить доступ к сырому файлу .SQL (в Ruby), чтобы я мог поместить его в хэш.

1 Ответ

0 голосов
/ 29 июня 2011

Таким образом, существует несколько общих стратегий для перехода с SQL на MongoDB.

  1. Дамп базы данных SQL в CSV, используйте mongoimport на CSV для загрузки в MongoDB.
  2. Используйте существующие драйверы и напишите сценарий, который проходит через базу данных SQL и вставляет ее в MongoDB.

Метод # 1 работает для базовых наборов данных, но может иметь некоторые проблемы с двоичными данными,Обычно я советую против # 1, если вы не можете подтвердить, что он работает правильно.

Обычно предлагается метод # 2 .

Процесс будет отличаться в зависимости от языка, но должен быть довольнолегко.Просто запросите все ваши данные из MySQL, преобразуйте эти данные в формат, который вы хотите для MongoDB, а затем выполните вставку.

Есть несколько преимуществ сделать это следующим образом:

  1. Легко отслеживать прогресс .Если у вас много данных, вы можете следить за ходом журнала сценариев.
  2. Легко перезапустить .Вполне возможно, что вам придется повторно запускать части этих «дампов».Желательно иметь повторяемый скрипт.
  3. Проверяет ваш код .В конечном итоге вам нужно будет вставить новые элементы в MongoDB после переключения.Это отличный способ проверить работоспособность вашего объекта.
  4. Изменения схемы . очень маловероятно, что ваша схема MongoDB будет точно такой же, как ваша схема MySQL.На самом деле вы, вероятно, не хотите, чтобы это было похоже на вашу схему MySQL.Возможно, вы будете объединять и объединять данные в новые структуры данных.Вы захотите собрать все вместе сразу.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...