sql >> Database teknologi >  >> NoSQL >> MongoDB

Migrering af MongoDB til DynamoDB, del 2

AWS Database Migration Service (DMS) tilføjede understøttelse af to NoSQL-databaser i 2017:MongoDB som kildedatabase og AWS DynamoDB som måldatabase. I en tutorial med to artikler migrerer vi en MongoDB-database til DynamoDB på DMS. I den første artikel, "Migrering af MongoDB til DynamoDB, del 1", oprettede vi et MongoDB replikasæt og DynamoDB-tabel. I denne fortsættelsesartikel vil vi diskutere oprettelse og afvikling af en DMS-migrering for at migrere data.

Denne artikel har følgende sektioner:

  • Oprettelse af en DMS-migrering
  • Kørsel af migreringen
  • Genoptagelse af en migrering
  • Sletning af en migrering
  • Konklusion

Oprettelse af en DMS-migrering

Dernæst skal vi oprette en DMS-migrering for at migrere MongoDB-databasen til DynamoDB. Log ind som IAM-brugeren (dvohra eller andet) oprettet til DMS og vælg DMS i AWS Management Console. Klik på Opret migration i DMS Dashboard, som vist i figur 1.


Figur 1: Opret migrering

Klik på Næste på DMS-velkomstsiden, som vist i figur 2.


Figur 2: Velkommen>Næste

Opret replikeringsforekomst dialogboksen vises, som vist i figur 3, hvor vi konfigurerer en replikeringsinstans til at starte forbindelserne mellem kilde- og måldatabaserne, overføre data og cache eventuelle ændringer på kildedatabasen under den første indlæsning.


Figur 3: Opret replikeringsinstans

Angiv navnet på replikeringsforekomsten i Navn feltet skal du vælge Forekomstklassen , vælg en VPC , og vælg muligheden for, om en Multi-AZ replikeringsinstans skal oprettes. Beskrivelse , som normalt er valgfrit i konfigurerbare indstillinger, er et obligatorisk felt. Standardindstillingerne findes for alle disse felter undtagen VPC. De anvendte replikeringsinstansindstillinger er vist i figur 4.


Figur 4: Indstillinger for replikeringsinstanser

Vælg muligheden for at gøre replikeringsforekomsten offentligt tilgængelig og klik på Avanceret for at konfigurere avancerede parametre, som vist i figur 5.


Figur 5: Indstilling af replikeringsinstans som offentligt tilgængelig

I Avanceret sektion, er standardindstillingerne tilvejebragt for alle felterne (se figur 6).


Figur 6: Avancerede indstillinger

Standardindstillingerne, undtagen KMS-hovednøglen, som skal indstilles til den krypteringsnøgle (dms), der oprettes, før du logger på som IAM-bruger (dvohra), er egnede til enhver replikeringsinstans, som vist i figur 7. Klik på Næste.


Figur 7: Avancerede indstillinger>Næste

Replikeringsforekomsten begynder at blive oprettet, som angivet af meddelelsen vist i figur 8. Angiv derefter databaseslutpunkterne, mens replikeringsforekomsten oprettes. Databasens slutpunkter kan dog ikke testes, før replikeringsforekomsten er blevet oprettet.


Figur 8: Replikeringsforekomst bliver oprettet

Til Kildemotoren , vælg mongodb database, som vist i figur 9.


Figur 9: Valg af kildemotor som mongodb

Til Target Engine , vælg dynamodb database, som vist i figur 10.


Figur 10: Valg af Target Engine som dynamodb

Endpoint Identifier kan beholdes som standard for både kilde- og måldatabaserne, men de andre forbindelsesparametre skal specificeres. For Kildedatabaseforbindelsesoplysningerne , angiv Servernavnet som den private IP (figur 21 i første artikel, "Migrering af MongoDB til DynamoDB, del 1") af CoreOS EC2-instansen, hvor MongoDB-repliksættet startes ved hjælp af Docker, og angiv Port som 27017 (se figur 11). Vælg "ingen" for SSL-tilstand og Godkendelsestilstand . Angiv Databasenavn som test og vælg Godkendelsesmekanisme som standard .


Figur 11: Oplysninger om kildedatabaseforbindelse

For kildedatabasemotoren, mongodb , vælg Metadatatilstand som dokument og vælg muligheden _id som en separat kolonne , som vist i figur 12. Kørstesten knapper bruges til at teste kilde- og måldatabaseforbindelserne og er ikke aktiveret, før replikeringsforekomsten er blevet oprettet.


Figur 12: Andre indstillinger for kildemotoren

Kopiér Role ARN for dms-vpc-rollen fra IAM-konsollen, som vist i figur 13. Rolle ARN skal bruges til at definere måldatabaseforbindelsen for DMS-migreringen.


Figur 13: Kopiering af rolle ARN

Kopiér og indsæt rolle-ARN'et i Serviceadgangsrolle-ARN felt, som vist i figur 14.


Figur 14: Tjenesteadgangsrolle ARN

Når replikeringsforekomsten er blevet oprettet, vises en meddelelse, der angiver det samme, som vist i figur 15.


Figur 15: Replikeringsforekomst oprettet

Klik på Kør test for måldatabasen for at teste forbindelsen. Hvis en forbindelse etableres, skulle meddelelsen "Forbindelse testet vellykket" blive vist (se figur 16).


Figur 16: Måldatabaseforbindelse testet med succes

På samme måde skal du klikke på Kør test for kildedatabasen, og meddelelsen "Forbindelse testet med succes" skulle blive vist, hvis en forbindelse etableres, som vist i figur 17.


Figur 17: Kildedatabaseforbindelse testet med succes

Klik på Næste i Databaseslutpunkter , som vist i figur 18.


Figur 18: Databaseendepunkter>Næste

Konfigurer derefter en migreringsopgave i Opret opgave side. En opgave består af flere indstillinger, herunder opgavenavn, opgavebeskrivelse, kildeslutpunkt, målslutpunkt, replikeringsinstans, migreringstype, opgaveindstillinger, tabeltilknytninger og avancerede indstillinger. Standardindstillingerne for Opgavenavn og de ikke-modificerbare indstillinger for Kildeslutpunktet , Målslutpunkt , replikeringsinstans og Migreringstype er vist i figur 19.


Figur 19: Opret opgaveindstillinger

Tilføj en passende beskrivelse, og vælg en migreringstype fra rullelisten vist i figur 20. De forskellige muligheder for migreringstype er Migrer eksisterende data , Migrer eksisterende data og repliker løbende ændringer , og Repliker kun dataændringer . For at migrere eksisterende data fra MongoDB til DynamoDB med bestemmelsen om at replikere igangværende ændringer skal du vælge Migrer eksisterende data og replikere igangværende ændringer . Når en migreringsopgave er oprettet, har den bestemmelse, der skal ændres efterfølgende, bortset fra Migreringstypen indstilling, som ikke kan ændres, efter at en migreringsopgave er blevet oprettet. Vælg derfor migreringstypen ved at antage, at det er en permanent indstilling.


Figur 20: Valg af migreringstype

Vælg Opgaveindstillinger til Tilberedningstilstand for målbord , Stop opgaven efter fuld indlæsning , Inkluder LOB-kolonner i replikering , og Aktiver logning (se figur 21).


Figur 21: Opgaveindstillinger

Klik på Avancerede indstillinger , som vist i figur 22, for at konfigurere avancerede indstillinger, som omfatter Kontroltabel indstillinger og Tuning indstillinger. De avancerede standardindstillinger kan bevares.


Figur 22: Avancerede indstillinger

I Tabelkortlægninger , konfigurer udvælgelsesregler som vist i figur 23. Mindst én udvælgelsesregel med en Inkluder handling er påkrævet. Vælg et Skemanavn (test) i DMS-kilden MongoDB. Skemanavnet er det samme som et MongoDB-databasenavn, som er test . Angiv Tabelnavnet er som '%', som vælger alle tabeller. Et bord kaldes også en samling i MongoDB. Vælg Handling som Medtag , som inkluderer de objekter, der er valgt af en udvælgelsesregel. Ekskluder handlinger behandles efter Inkluder handlinger.


Figur 23: Tabelkortlægninger

Kildefiltre til at begrænse antallet og typen af ​​poster, der overføres fra kilde til mål, kan også konfigureres. Klik på Tilføj valgregel , som vist i figur 24.


Figur 24: Tilføj valgregel

Transformationsregler kan tilføjes for at lave store/små bogstaver og tilføje/fjerne præfiks/suffikstransformationer. Hvis logning er blevet aktiveret, opretter DMS en rolle til at logge på CloudWatch. Oprettelse af en opgave giver implicit de nødvendige tilladelser for at få adgang til og logge på CloudWatch. Klik på Opret opgave , som vist i figur 25.


Figur 25: Opret opgave

En migreringsopgave begynder at blive oprettet (se figur 26). Indledningsvis vises Status er "Opretter". Status bør opdateres automatisk, og muligheden for at klikke på opdateringsknappen for at opdatere status med jævne mellemrum er også tilgængelig.


Figur 26: Migreringsopgaven begynder at blive oprettet

Når en opgave bliver oprettet, vises Status bliver Klar , som vist i figur 27.


Figur 27: Opgavestatus klar

En IAM-rolle for CloudWatch-adgang og logning oprettes automatisk, som vist i figur 28.


Figur 28: IAM-rolle for CloudWatch-logfiler

Kørsel af migreringen

Klik på Start/Genoptag for at køre migreringsopgaven , som vist i figur 29.


Figur 29: Start/Genoptag opgave

Opgavestatus bliver Starter , som vist i figur 30.


Figur 30: Opgavestart

Når opgaven er færdig med at køre, er tabellerne indlæst kolonnen viser antallet af tabeller indlæst som 1, Status bliver Stoppet , Den Fuldstændige % skal angive 100 , som vist i figur 31. Som Type kolonne angiver, er migreringstypen Fuld belastning og løbende replikering .


Figur 31: Fuld belastning fuldført

Ud over de indlæste tabeller kolonnen, Tabeller indlæses , Borde i kø , og Tabeller fejlede også blive opført, som vist i figur 32.


Figur 32: Tabeller indlæses, tabeller i kø og tabeller med fejl er alle 0

I DynamoDB er wlslog tabel viser syv elementer, som vist i figur 33. To andre tabeller, awsdms_apply_exceptions og awsdms_full_load_exceptions , også oprettes automatisk. Tabellen awsdms_apply_exceptions giver undtagelsesdetaljer, herunder fejlnavnet og beskrivelsen, den sætning, der kørte, da fejlen opstod, navnet på opgaven, tabelejeren, tabelnavnet og tidspunktet for undtagelsen. Tabellen awsdms_full_load_exceptions giver oplysninger om de undtagelser, der genereres efter en fuld load.


Figur 33: wlslog-tabellen viser syv elementer

Klik på et _id for at vise dokumentet (_doc attributværdi), som vist i figur 34.


Figur 34: Dokument for en vare gemt i DynamoDB

DynamoDB-filteret kan bruges til at filtrere søgningen. Som et eksempel, søg efter et specifikt _id ved at angive _id som felt ved at vælge String som felttype ved at vælge '=' som filteroperator og angive _id søgningen efter, som vist i figur 35. Klik på Start søgning .


Figur 35: Anvendelse af et filter

DynamoDB-tabelrækkedataene for _id specificeret bliver opført (se figur 36).


Figur 36: Filtrerede data for specifik _id

Når en migreringsopgave har fuldført migreringen af ​​en database, bliver opgavestatus Stoppet , men migreringsendepunkterne er stadig aktive , som vist i figur 37.


Figur 37: Endpoints Aktive, selv efter at migreringen er fuldført, og opgaven er stoppet

Genoptagelse af en migrering

En migreringsopgave, der er stoppet, kan genstartes eller genoptages. Følgende er nogle af grundene til at genoptage eller genstarte en opgave:

  • Et nyt dokument er blevet føjet til en eksisterende samling (også kaldet tabel ) i DMS-kildedatabasen MongoDB
  • En ny samling (tabel) er blevet tilføjet i MongoDB-databasen
  • Migreringen skal køres igen med forskellige udvælgelsesregler, hvilket f.eks. kan være nødvendigt, hvis et tabelpræfiks skal tilføjes ved hjælp af en transformationsregel.

Som et eksempel kan du tilføje yderligere tre dokumenter til wlslog samling i 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])

Som outputtet i figur 38 indikerer, bliver de tre dokumenter tilføjet.


Figur 38: Tilføjer yderligere tre dokumenter

Klik på Start/Genoptag for at genoptage en stoppet opgave, som vist i figur 39.


Figur 39: Start/Genoptag for stoppet opgave

I Start opgave dialog, er der to muligheder:Start eller Genstart . Start mulighed starter opgaven og indlæser nye tabeller eller samlinger tilføjet til DMS-kilden. Start option indlæser også enhver tabel, der kun var delvist indlæst i en tidligere kørsel. Start option indlæser ikke data (nye eller gamle) i en tabel, der allerede er blevet indlæst fuldstændigt i måldatabasen. Genstart option genstarter en opgave og sletter eksisterende data i måldatabasen og genstarter den fulde belastning. Faktisk er Genstart option indlæser nye data tilføjet til eksisterende tabeller ud over at indlæse alle nye tabeller, der tilføjes i DMS-kilden. Fordi vi har tilføjet nye data til en eksisterende tabel, skal vi vælge Genstart og klik på Start opgave , som vist i figur 40.


Figur 40: Genstarter opgave

Opgaven genstarter, sletter eksisterende tabeller i måldatabasen og indlæser alle data fra kildedatabasen for at målrette databasen. Når dataindlæsningen er fuldført, bliver opgavestatus Indlæsning fuldført (se figur 41).


Figur 41: Indlæsning fuldført

Klik på opdateringsknappen i DynamoDB, som vist i figur 42.


Figur 42: Opdaterer data i wlslog-tabel

Antallet af elementer, der er anført, er 10, som vist i figur 43, i stedet for de syv, før opgaven genstartes. De tre nye varer, vi tilføjede, gør, at varerne er i alt 10.


Figur 43: Viser 10 elementer efter tilføjelse af nye elementer og opdateret data

De nye data, der migreres, adskilles fra de data, der er indlæst i 1 kørslen med et andet præfiks; dataene indlæst i 1 kørsel har præfikset 59401 i _id og dataene indlæst i 2 kørslen har præfikset 59402 . Filtret mulighed kan bruges til kun at liste de nye data, som vist i figur 44.


Figur 44: Filtrering af data for kun at vise tre nye elementer

Opgavestatus bliver igen Stoppet efter at de nye data er blevet migreret, som vist i figur 45.


Figur 45: Status bliver stoppet efter fuld belastning er fuldført

Sletning af en migrering

For at slette en migrering skal du vælge migreringen og klikke på Slet (se figur 46).


Figur 46: Slet

I Slet opgave dialogboks skal du klikke på Slet , som vist i figur 47.


Figur 47: Slet opgavebekræftelse

Opgavestatus bliver Sletter , som vist i figur 48, før opgaven bliver slettet.


Figur 48: Opgavesletning

Sletning af en opgave sletter ikke de DMS-endepunkter, der bruges; det betyder, at en ny opgave kan oprettes.

Konklusion

I to artikler diskuterede vi migrering af en MongoDB-database til DynamoDB-tabeller ved at bruge AWS Database Migration Service.


  1. Apache HBase-replikeringsoversigt

  2. MongoDB konverterer dato til streng

  3. Importer data til MongoDB fra JSON-fil ved hjælp af Java

  4. MongoDB $strcasecmp