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

Мигриране на MongoDB към DynamoDB, част 2

AWS Database Migration Service (DMS) добави поддръжка за две бази данни NoSQL през 2017 г.:MongoDB като изходна база данни и AWS DynamoDB като целева база данни. В урок от две статии, ние мигрираме база данни MongoDB към DynamoDB на DMS. В първата статия, „Мигриране на MongoDB към DynamoDB, част 1“, създадохме набор от реплики на MongoDB и таблица на DynamoDB. В тази статия-продължение ще обсъдим създаването и изпълнението на DMS миграция за мигриране на данни.

Тази статия има следните раздели:

  • Създаване на DMS миграция
  • Изпълнение на миграцията
  • Възобновяване на миграцията
  • Изтриване на миграция
  • Заключение

Създаване на DMS миграция

След това ще създадем DMS миграция за мигриране на базата данни MongoDB към DynamoDB. Влезте като потребител на IAM (dvohra или друг), създаден за DMS, и изберете DMS в конзолата за управление на AWS. Кликнете върху Създаване на миграция в таблото за управление на DMS, както е показано на фигура 1.


Фигура 1: Създаване на миграция

Щракнете върху Напред в страницата за приветствие на DMS, както е показано на Фигура 2.


Фигура 2: Добре дошли>Следващ

Създаване на копие за репликация се показва диалогов прозорец, както е показано на Фигура 3, в която конфигурираме копие за репликация, за да инициира връзките между изходната и целевата база данни, да прехвърли данните и да кешира всички промени в изходната база данни по време на първоначалното зареждане.


Фигура 3: Създайте копие за репликация

Посочете името на екземпляра на репликация в Име поле, изберете Клас на екземпляра , изберете VPC и изберете опцията за Много-AZ трябва да бъде създаден екземпляр за репликация. Описание , което обикновено не е задължително в конфигурируемите настройки, е задължително поле. Настройките по подразбиране са предоставени за всички тези полета, с изключение на VPC. Използваните настройки на екземпляра на репликация са показани на Фигура 4.


Фигура 4: Настройки на екземпляра на репликация

Изберете опцията, за да направите екземпляра на репликация Обществено достъпен и щракнете върху Разширени за да конфигурирате предварителни параметри, както е показано на фигура 5.


Фигура 5: Задаване на екземпляр на репликация като публично достъпен

В Разширени раздел, настройките по подразбиране са предоставени за всички полета (вижте фигура 6).


Фигура 6: Разширени настройки

Настройките по подразбиране, с изключение на главния ключ на KMS, който трябва да бъде зададен на ключа за криптиране (dms), създаден преди да влезете като IAM потребител (dvohra), са подходящи за всеки екземпляр на репликация, както е показано на фигура 7. Щракнете върху Напред.


Фигура 7: Разширени настройки>Напред

Репликационният екземпляр започва да се създава, както е посочено от съобщението, показано на Фигура 8. След това посочете крайните точки на базата данни, докато се създава екземплярът за репликация. Въпреки това крайните точки на базата данни не могат да бъдат тествани, докато не бъде създаден екземпляр на репликация.


Фигура 8: Създава се екземпляр на репликация

За Source engine , изберете mongodb база данни, както е показано на фигура 9.


Фигура 9: Избиране на Source Engine като mongodb

За Целевия двигател , изберете dynamodb база данни, както е показано на Фигура 10.


Фигура 10: Избиране на Target Engine като dynamodb

Идентификаторът на крайна точка може да се запази по подразбиране както за изходната, така и за целевата база данни, но трябва да бъдат посочени другите параметри на връзката. За Подробности за връзка с изходната база данни , посочете Име на сървъра като частен IP (Фигура 21 в първата статия, „Мигриране на MongoDB към DynamoDB, част 1“) на екземпляра на CoreOS EC2, на който се стартира наборът реплики на MongoDB с помощта на Docker и посочете Port като 27017 (виж Фигура 11). Изберете „няма“ за SSL режим и Режим на удостоверяване . Посочете Име на базата данни като тест и изберете Механизъм за удостоверяване като по подразбиране .


Фигура 11: Подробности за връзката с изходна база данни

За изходната база данни, mongodb , изберете Режим за метаданни като документ и изберете опцията _id като отделна колона , както е показано на Фигура 12. Изпълнение на теста Бутоните се използват за тестване на изходните и целевите връзки към базата данни и не се активират, докато не бъде създаден екземпляр за репликация.


Фигура 12: Други настройки за Source Engine

Копирайте Role ARN за dms-vpc-роля от IAM конзолата, както е показано на Фигура 13. Роля ARN трябва да се използва за дефиниране на целевата връзка с база данни за миграцията на DMS.


Фигура 13: Копиране на ролята ARN

Копирайте и поставете Role ARN в Service Access Role ARN поле, както е показано на фигура 14.


Фигура 14: Роля за достъп до услуги ARN

Когато екземплярът на репликация е създаден, се показва съобщение, указващо същото, както е показано на Фигура 15.


Фигура 15: Създаден екземпляр за репликация

За целевата база данни щракнете върху Изпълнение на тест за да тествате връзката. Ако се установи връзка, трябва да се покаже съобщението „Връзката е тествана успешно“ (вижте Фигура 16).


Фигура 16: Връзката с целевата база данни е тествана успешно

По същия начин щракнете върху Извършване на тест за изходната база данни и съобщението „Връзката е тествана успешно“ трябва да се покаже, ако се установи връзка, както е показано на Фигура 17.


Фигура 17: Връзката с изходна база данни е тествана успешно

Щракнете върху Напред в Крайни точки на базата данни , както е показано на Фигура 18.


Фигура 18: Крайни точки на базата данни>Следващи

След това конфигурирайте задача за мигриране в Създаване на задача страница. Една задача се състои от няколко настройки, включително име на задачата, описание на задачата, изходна крайна точка, целева крайна точка, екземпляр на репликация, тип миграция, настройки на задачата, съпоставяне на таблици и разширени настройки. Настройките по подразбиране за Име на задача и непроменяемите настройки за крайната точка на източника , Целева крайна точка , Екземпляр за репликация и Тип миграция са показани на Фигура 19.


Фигура 19: Създайте настройки на задача

Добавете подходящо описание и изберете Тип миграция от падащия списък, показан на фигура 20. Различните опции за тип миграция са Мигриране на съществуващи данни , Мигриране на съществуващи данни и копиране на текущи промени , и Само репликиране на промените в данните . За да мигрирате съществуващи данни от MongoDB към DynamoDB с разпоредбата за репликиране на текущи промени, изберете Мигриране на съществуващи данни и копиране на текущи промени . Веднъж създадена задача за мигриране има разпоредба, която да бъде променена впоследствие с изключение на Тип миграция настройка, която не може да се променя след създаването на задача за миграция. Затова изберете типа миграция, като приемем, че е постоянна настройка.


Фигура 20: Избиране на тип миграция

Изберете Настройки на задачата за Режим за подготовка на целева таблица , Спрете задачата след пълно зареждане , Включване на LOB колони в репликацията и Активиране на регистриране (вижте Фигура 21).


Фигура 21: Настройки на задачите

Щракнете върху Разширени настройки , както е показано на Фигура 22, за да конфигурирате разширени настройки, които включват Таблица за управление настройки и Настройка настройки. Разширените настройки по подразбиране могат да бъдат запазени.


Фигура 22: Разширени настройки

В Маппинги на таблици , конфигурирайте правилата за избор, както е показано на фигура 23. Поне едно правило за избор с Включване е необходимо действие. Изберете Име на схема (тест) в източника на DMS MongoDB. Името на схемата е същото като името на база данни на MongoDB, което е test . Посочете Името на таблицата е като „%“, който избира всички таблици. маса се нарича още колекция в MongoDB. Изберете Действие като Включи , което включва обектите, избрани от правило за избор. Действията за изключване се обработват след включване на действия.


Фигура 23: Картографиране на таблици

Изходните филтри за ограничаване на броя и типа записи, прехвърляни от източник към цел, също могат да бъдат конфигурирани. Кликнете върху Добавяне на правило за избор , както е показано на Фигура 24.


Фигура 24: Добавете правило за избор

Правила за трансформация могат да бъдат добавени, за да се правят главни/малки букви и да се добавят/премахват префикси/суфикси. Ако регистрирането е активирано, DMS създава роля за влизане в CloudWatch. Създаването на задача имплицитно предоставя разрешенията, необходими за достъп и влизане в CloudWatch. Кликнете върху Създаване на задача , както е показано на Фигура 25.


Фигура 25: Създайте задача

Започва да се създава задача за миграция (вижте фигура 26). Първоначално Състояние е „Създаване“. Състоянието трябва да се актуализира автоматично и също така е предоставена опцията за щракване върху бутона за опресняване, за да опреснявате състоянието периодично.


Фигура 26: Задачата за мигриране започва да се създава

Когато задачата бъде създадена, Състояние става Готов , както е показано на Фигура 27.


Фигура 27: Състояние на задачата Готово

IAM роля за достъп до CloudWatch и регистриране се създава автоматично, както е показано на фигура 28.


Фигура 28: Роля на IAM за регистрационни файлове на CloudWatch

Изпълнение на миграцията

За да стартирате задачата за мигриране, щракнете върху Старт/Възобновяване , както е показано на Фигура 29.


Фигура 29: Стартиране/възобновяване на задача

Състоянието на задачата става Начало , както е показано на Фигура 30.


Фигура 30: Стартиране на задача

Когато задачата завърши изпълнението, Таблиците се зареждат колоната изброява броя на заредените таблици като 1, Състояние става Спр. , Пълен % трябва да посочи 100 , както е показано на Фигура 31. Като Тип колоната показва, типът миграция е Пълно зареждане и текуща репликация .


Фигура 31: Пълно зареждане завършено

В допълнение към заредените таблици колона, Таблиците се зареждат , Маси на опашка , и Таблици с грешка също се изброяват, както е показано на Фигура 32.


Фигура 32: Зареждането на таблици, таблиците на опашка и таблиците с грешка са всички 0

В DynamoDB, wlslog таблицата изброява седем елемента, както е показано на фигура 33. Две други таблици, awsdms_apply_exceptions и awsdms_full_load_exceptions , също се създава автоматично. Таблицата awsdms_apply_exceptions предоставя подробности за изключението, включително името и описанието на грешката, оператора, който се изпълняваше, когато е възникнала грешката, името на задачата, собственика на таблицата, името на таблицата и времето на изключението. Таблицата awsdms_full_load_exceptions предоставя информация за изключенията, генерирани след пълно натоварване.


Фигура 33: Таблицата wlslog изброява седем елемента

Щракнете върху _id за показване на документа (_doc стойност на атрибута), както е показано на фигура 34.


Фигура 34: Документ за елемент, съхранен в DynamoDB

Филтърът DynamoDB може да се използва за филтриране на търсенето. Като пример потърсете конкретен _id като посочите _id като поле, като изберете String като тип поле, като изберете ‘=’ като оператор за филтриране и укажете _id търсенето, както е показано на Фигура 35. Щракнете върху Стартиране на търсене .


Фигура 35: Прилагане на филтър

Данните от реда на таблицата DynamoDB за _id указаното се изписва (вижте Фигура 36).


Фигура 36: Филтрирани данни за конкретен _id

След като задача за мигриране завърши мигрирането на база данни, състоянието на задачата става Спр. , но крайните точки за миграция все още са Активни , както е показано на Фигура 37.


Фигура 37: Крайни точки са активни дори след завършване на миграцията и спиране на задачата

Възобновяване на миграцията

Задача за мигриране, която е спряла, може да бъде рестартирана или възобновена. Следват някои от причините за възобновяване или рестартиране на задача:

  • Нов документ е добавен към съществуваща колекция (наричана още таблица ) в базата данни MongoDB източник на DMS
  • Нова колекция (таблица) е добавена в базата данни MongoDB
  • Миграцията трябва да се изпълни отново с различни правила за избор, които може да са необходими, като пример, ако трябва да се добави префикс на таблица с помощта на правило за трансформация.

Като пример добавете още три документа към wlslog колекция в Mongo CLI.

doc8 = {"timestamp":"Apr 8, 2014 7:06:23 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000360",
   "msg":"Server in RUNNING mode"}
doc9 = {"timestamp":"Apr 8, 2014 7:06:24 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000365",
   "msg":"Server Stopping"}
doc10 = {"timestamp":"Apr 8, 2014 7:06:25 PM PDT",
   "category":"Notice","type":"WebLogicServer",
   "servername":"AdminServer","code":"BEA-000361",
   "msg":"Server Resumed"}
db.wlslog.insert([doc8,doc9,doc10])

Както показва изходът на фигура 38, трите документа се добавят.


Фигура 38: Добавяне на още три документа

Кликнете върху Старт/Възобновяване за да възобновите спряна задача, както е показано на Фигура 39.


Фигура 39: Стартиране/възобновяване за спряна задача

В Стартиране на задача диалогов прозорец са предоставени две опции:Старт или Рестартиране . Старт опцията стартира задачата и зарежда нови таблици или колекции, добавени към източника на DMS. Старт опцията също зарежда всяка таблица, която е била само частично заредена при предишно изпълнение. Старт опцията не зарежда данни (нови или стари) в таблица, която вече е напълно заредена в целевата база данни. Рестартиране опцията рестартира задача и изтрива съществуващите данни в целевата база данни и рестартира пълното натоварване. Всъщност Рестартиране опция зарежда нови данни, добавени към съществуващи таблици, в допълнение към зареждането на всички нови таблици, които са добавени в източника на DMS. Тъй като добавихме нови данни към съществуваща таблица, трябва да изберем Рестартиране опция и щракнете върху Стартиране на задача , както е показано на Фигура 40.


Фигура 40: Рестартиране на задача

Задачата се рестартира, изтрива съществуващи таблици/и в целевата база данни и зарежда всички данни от изходната база данни, за да се насочи към базата данни. Когато зареждането на данни приключи, състоянието на задачата става Зареждането завърши (вижте Фигура 41).


Фигура 41: Зареждането завърши

Щракнете върху бутона за опресняване в DynamoDB, както е показано на Фигура 42.


Фигура 42: Обновяване на данните в таблицата wlslog

Броят на изброените елементи е 10, както е показано на фигура 43, вместо седемте преди рестартиране на задачата. Трите нови елемента, които добавихме, правят артикулите общо 10.


Фигура 43: Изброяване на 10 артикула след добавяне на нови елементи и опресняване на данните

Новите мигрирани данни се различават от данните, заредени в 1 изпълнение с различен префикс; данните, заредени в 1 изпълнение, имат префикс 59401 в _id и данните, заредени в изпълнение 2, имат префикса 59402 . Филтърът опцията може да се използва за изброяване само на новите данни, както е показано на Фигура 44.


Фигура 44: Филтриране на данни за изброяване само на три нови елемента

Състоянието на задачата отново става Спряна след мигриране на новите данни, както е показано на Фигура 45.


Фигура 45: Състоянието става спряно след пълно зареждане

Изтриване на миграция

За да изтриете миграция, изберете миграцията и щракнете върху Изтриване (вижте Фигура 46).


Фигура 46: Изтриване

В Изтриване на задача диалогов прозорец, щракнете върху Изтриване , както е показано на Фигура 47.


Фигура 47: Изтриване на проверка на задача

Състоянието на задачата става Изтриване , както е показано на Фигура 48, преди задачата да бъде изтрита.


Фигура 48: Изтриване на задача

Изтриването на задача не изтрива използваните крайни точки на DMS; това означава, че може да бъде създадена нова задача.

Заключение

В две статии обсъдихме мигрирането на база данни MongoDB към таблици DynamoDB с помощта на услугата за мигриране на база данни на AWS.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Услугата MongoDB не работи във Fedora

  2. MongoDB използва ли повторно изтрито пространство?

  3. Как мога да добавя уникален идентификатор от две колони към mongodb в приложение за метеор?

  4. MongoDB връща True, ако документът съществува

  5. Вземете имена на всички ключове в колекцията