Существует ли хорошая платформа для обновлений "схемы" MongoDB в Scala? - PullRequest
6 голосов
/ 10 августа 2011

Какие есть варианты миграции / обновления схемы MongoDB?

У нас (моих коллег и меня) довольно большая (~ 100 миллионов записей) коллекция MongoDB. Эта коллекция отображается (ORM'd) в объект Scala lift-mongodb, который прошел ряд различных итераций. У нас есть все виды кода, который обрабатывает пропущенные поля, переименования, удаления, миграции и т. Д.

Столько всего, что «без схемы» может быть приятным и гибким, в этом случае это вызывает много беспорядка кода, поскольку наш объект продолжает развиваться. Продолжать движение по этому «гибкому объекту» просто невозможно.

Как вы, ребята, реализовали миграцию / обновление схемы в MongoDB с помощью Scala? Существует ли основа для этого? Я знаю, что Foursquare использует Scala с MongoDB и Rogue (их собственные запросы DSL) ... кто-нибудь знает, как они справляются со своими миграциями?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 24 августа 2011

Возможно, это может немного помочь, вот как Guardian.co.uk справляется с этим:

http://qconlondon.com/dl/qcon-london-2011/slides/MatthewWall_WhyIChoseMongoDBForGuardianCoUk.pdf

Обновления схемы

Это может быть смягчено с помощью:

  • Добавление ключа «версия» к каждому документу
  • Обновление версии каждый раз, когда приложение изменяет документ
  • Использование возможности MapReduce для принудительной миграции документов из более старых версий, еслитребуется
2 голосов
/ 20 января 2012

Я программирую миграцию данных MongoDB с моей собственной платформой Scala "Подмножество" . Это позволяет довольно легко определять поля документа, точно настраивать сериализацию данных (например, записывать «дату» в определенном формате и т. Д.), Создавать запросы и модификаторы обновлений в терминах определенных полей. Это "суть" дает хорошее представление

...