Шаблоны для изменения схемы в базах данных документов

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

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

Такими изменениями могут быть

  • добавление новых полей
  • пересчет значений полей (разбивка брутто на нетто и НДС)
  • удаление полей
  • перемещение полей в встроенный документ

В моем последнем проекте, где мы использовали базу данных SQL, у нас были очень похожие проблемы что привело к значительному времени автономной работы (для продукта 24/7), когда изменения стали радикальными, поскольку базы данных SQL обычно выполняют БЛОКИРОВКУ таблицы, когда происходят изменения. Я хочу избежать такого сценария.

Другой связанный вопрос - как обрабатывать изменения схемы изнутри используемая среда языка программирования. Обычно изменения схемы происходят изменение определения класса (я буду использовать Mongoid OR-Mapper для MongoDB и Ruby). Как обращаться со старыми версиями документов, которые не больше соответствовать моему последнему определению класса.

5
задан PeeHaa 29 January 2012 в 12:52
поделиться