SQL -> Проблемы с производительностью экспорта MongoDB - PullRequest
1 голос
/ 21 августа 2010

Я пытаюсь настроить автоматизированный процесс для регулярного преобразования и экспорта большой базы данных MS SQL 2008 в MongoDB.

Нет соответствия 1-1 между таблицами в SQL и коллекциями в MongoDB -- например, таблица адресов в SQL преобразуется в массив, встроенный в записи каждого клиента в Mongo и т. д.

Сейчас у меня есть 3 этапа:

  1. Экспортировать всесоответствующие части базы данных в XML с использованием запроса FOR XML.
  2. Преобразование XML в дружественный к моноимпорте JSON с использованием XSLT
  3. Импорт в монго с использованием mongoimport

узкое место сейчас, кажется, # 2.Преобразование XML-> JSON для 3 миллионов записей о клиентах (каждая с демографической информацией и встроенными адресами и массивами заказов) занимает много времени с помощью libxslt.

Кажется, трудно поверить, что еще не существует какого-то заранее подготовленного способа сделать это, но я не могу найти нигде.

Вопросы:

A) Есть ли какие-либо ранее существующие утилиты, которые я мог бы использовать для этого?
B) Если нет, могу ли я ускорить процесс?
C) Я неправильно подхожу ко всей проблеме?

1 Ответ

0 голосов
/ 22 августа 2010

Другой подход состоит в том, чтобы просмотреть каждую таблицу и добавить информацию в монго на основе записи к записи, и пусть Монго сделает денормализацию! Например, чтобы добавить каждый телефонный номер, просто просмотрите таблицу телефонных номеров и выполните «$ addToSet» для каждого телефонного номера в записи.

Вы также можете делать это параллельно и делать таблицы отдельно. Это может ускорить процесс, но может «фрагментировать» базу данных Монго.

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

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