MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Има ли инструменти за миграция на схеми за NoSQL бази данни?

Тъй като база данни nosql може да съдържа огромни количества данни, вие не можете да я мигрирате в обичайния смисъл на rdbms. Всъщност не можете да го направите за rdbms, веднага щом вашите данни преминат някакъв праг на размера. Непрактично е да прекъснете сайта си за един ден, за да добавите поле към съществуваща таблица, и така с rdbms в крайна сметка правите грозни корекции като добавяне на нови таблици само за полето и правене на обединения, за да стигнете до данните. В света на nosql можете да направите няколко неща.

  • Както предложиха други, можете да напишете кода си така, че да обработва различни „версии“ ​​на възможната схема. това обикновено е по-просто, отколкото изглежда. Много видове промени в схемата са тривиални за кодиране. например, ако искате да добавите ново поле към схемата, просто го добавяте към всички нови записи и то ще бъде празно за всички стари записи (няма да получите грешки „полето не съществува“ или нещо подобно;). ако имате нужда от стойност „по подразбиране“ за полето в старите записи, това е твърде тривиално направено в код.
  • Друга опция и всъщност единствената разумна опция занапред с нетривиални промени в схемата като преименуване на полета и структурни промени е да се съхранява schema_version във ВСЕКИ запис и да има код за мигриране на данни от всяка версия към следващата на ПРОЧЕТЕТЕ . т.е. ако текущата ви версия на схема е 10 и четете запис от базата данни с версия 7, тогава вашият db слой трябва да извика migrate_8, migrate_9 и migrate_10. По този начин данните, до които се осъществява достъп, ще бъдат постепенно мигрирани към новата версия. и ако не е достъпен, тогава кой го интересува коя версия е;)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Накарайте Spark, Python и MongoDB да работят заедно

  2. Как да добавите документ към масив от поддокументи - Java/MongoDB

  3. Препоръчителен начин за изтриване на обект в MongoDB въз основа на маршрут

  4. Фатална грешка:Клас 'MongoDB\Driver\Manager' не е намерен

  5. Не може да се използва Mongodb distinct в Nodejs