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

Migrazione da MongoDB a DynamoDB, parte 2

Il servizio di migrazione del database AWS (DMS) ha aggiunto il supporto per due database NoSQL nel 2017:MongoDB come database di origine e AWS DynamoDB come database di destinazione. In un tutorial in due articoli, stiamo migrando un database MongoDB a DynamoDB su DMS. Nel primo articolo, "Migrazione di MongoDB a DynamoDB, parte 1", abbiamo creato un set di repliche MongoDB e una tabella DynamoDB. In questo articolo di continuazione, discuteremo della creazione e dell'esecuzione di una migrazione DMS per migrare i dati.

Questo articolo ha le seguenti sezioni:

  • Creazione di una migrazione DMS
  • Eseguire la migrazione
  • Ripresa di una migrazione
  • Eliminazione di una migrazione
  • Conclusione

Creazione di una migrazione DMS

Successivamente, creeremo una migrazione DMS per migrare il database MongoDB su DynamoDB. Accedi come utente IAM (dvohra o altro) creato per DMS e seleziona DMS nella Console di gestione AWS. Fai clic su Crea migrazione nel dashboard DMS, come mostrato nella Figura 1.


Figura 1: Crea migrazione

Fare clic su Avanti nella pagina di benvenuto di DMS, come mostrato nella Figura 2.


Figura 2: Benvenuto>Avanti

Crea istanza di replica viene visualizzata la finestra di dialogo, come mostrato nella Figura 3, in cui configuriamo un'istanza di replica per avviare le connessioni tra i database di origine e di destinazione, trasferire i dati e memorizzare nella cache eventuali modifiche sul database di origine durante il caricamento iniziale.


Figura 3: Crea istanza di replica

Specifica il nome dell'istanza di replica in Nome campo, seleziona la Classe di istanza , seleziona un VPC e seleziona l'opzione per Multi-AZ deve essere creata un'istanza di replica. Descrizione , che di solito è facoltativo nelle impostazioni configurabili, è un campo obbligatorio. Le impostazioni predefinite sono fornite per tutti questi campi tranne il VPC. Le impostazioni dell'istanza di replica utilizzate sono mostrate nella Figura 4.


Figura 4: Impostazioni dell'istanza di replica

Seleziona l'opzione per rendere l'istanza di replica accessibile pubblicamente e fai clic su Avanzate per configurare i parametri avanzati, come mostrato nella Figura 5.


Figura 5: Impostazione dell'istanza di replica come accessibile pubblicamente

In Avanzate sezione, vengono fornite le impostazioni di default per tutti i campi (vedi Figura 6).


Figura 6: Impostazioni avanzate

Le impostazioni predefinite, ad eccezione della chiave master KMS, che deve essere impostata sulla chiave di crittografia (dms) creata prima di accedere come utente IAM (dvohra), sono adatte a qualsiasi istanza di replica, come mostrato nella Figura 7. Fare clic su Avanti.


Figura 7: Impostazioni avanzate>Avanti

Inizia la creazione dell'istanza di replica, come indicato dal messaggio mostrato nella Figura 8. Specificare gli endpoint del database successivamente durante la creazione dell'istanza di replica. Tuttavia, gli endpoint del database non possono essere testati finché non è stata creata l'istanza di replica.


Figura 8: Istanza di replica in fase di creazione

Per il Motore di origine , seleziona il mongodb database, come mostrato nella Figura 9.


Figura 9: Selezionando Source Engine come mongodb

Per il motore di destinazione , seleziona il dynamodb database, come mostrato nella Figura 10.


Figura 10: Selezionando Target Engine come dynamodb

L'identificatore dell'endpoint può essere mantenuto come predefinito sia per il database di origine che per quello di destinazione, ma è necessario specificare gli altri parametri di connessione. Per i Dettagli di connessione al database di origine , specifica il Nome server come IP privato (Figura 21 nel primo articolo, "Migrating MongoDB to DynamoDB, Part 1") dell'istanza CoreOS EC2 su cui il set di repliche MongoDB viene avviato utilizzando Docker e specificare Port come 27017 (vedi Figura 11). Seleziona "nessuno" per Modalità SSL e Modalità di autenticazione . Specifica Nome database come prova e seleziona Meccanismo di autenticazione come predefinito .


Figura 11: Dettagli di connessione al database di origine

Per il motore del database di origine, mongodb , seleziona Modalità metadati come documento e seleziona l'opzione _id come colonna separata , come mostrato nella Figura 12. Il test di esecuzione i pulsanti vengono utilizzati per testare le connessioni al database di origine e di destinazione e non vengono abilitati fino alla creazione dell'istanza di replica.


Figura 12: Altre impostazioni per il motore sorgente

Copia l'ARN del ruolo per il ruolo dms-vpc dalla console IAM, come mostrato nella Figura 13. Il ruolo ARN deve essere utilizzato per definire la connessione al database di destinazione per la migrazione DMS.


Figura 13: Copia dell'ARN del ruolo

Copia e incolla l'ARN del ruolo nell'ARN del ruolo di accesso al servizio campo, come mostrato nella Figura 14.


Figura 14: ARN del ruolo di accesso al servizio

Quando l'istanza di replica è stata creata, viene visualizzato un messaggio che indica lo stesso, come mostrato nella Figura 15.


Figura 15: Istanza di replica creata

Per il database di destinazione, fai clic su Esegui test per testare la connessione. Se viene stabilita una connessione, dovrebbe essere visualizzato il messaggio "Connessione verificata con successo" (vedere la Figura 16).


Figura 16: Connessione al database di destinazione testata con successo

Allo stesso modo, fai clic su Esegui test per il database di origine e il messaggio "Connessione verificata con successo" dovrebbe essere visualizzato se viene stabilita una connessione, come mostrato nella Figura 17.


Figura 17: Connessione al database di origine testata con successo

Fai clic su Avanti in endpoint del database , come mostrato nella Figura 18.


Figura 18: Endpoint database>Avanti

Quindi, configura un'attività di migrazione in Crea attività pagina. Un'attività è costituita da diverse impostazioni, tra cui il nome dell'attività, la descrizione dell'attività, l'endpoint di origine, l'endpoint di destinazione, l'istanza di replica, il tipo di migrazione, le impostazioni dell'attività, i mapping delle tabelle e le impostazioni avanzate. Le impostazioni predefinite per Nome attività e le impostazioni non modificabili per l'endpoint di origine , Destinazione all'endpoint , Istanza di replica e Tipo di migrazione sono mostrati nella Figura 19.


Figura 19: Crea impostazioni attività

Aggiungi una descrizione adeguata e seleziona un Tipo di migrazione dall'elenco a discesa mostrato nella Figura 20. Le diverse opzioni per Tipo di migrazione sono Migra i dati esistenti , Migra i dati esistenti e replica le modifiche in corso e Replica solo le modifiche ai dati . Per migrare i dati esistenti da MongoDB a DynamoDB con la possibilità di replicare le modifiche in corso, seleziona Migra i dati esistenti e replica le modifiche in corso . Un'attività di migrazione una volta creata ha la disposizione per essere modificata successivamente, ad eccezione del Tipo di migrazione impostazione, che non è modificabile dopo la creazione di un'attività di migrazione. Pertanto, scegli il tipo di migrazione presumendo che sia un'impostazione permanente.


Figura 20: Scelta del tipo di migrazione

Seleziona Impostazioni attività per Modalità preparazione tabella target , Interrompi l'attività al completamento del caricamento completo , Includi colonne LOB nella replica e Abilita la registrazione (vedi Figura 21).


Figura 21: Impostazioni attività

Fai clic su Impostazioni avanzate , come mostrato nella Figura 22, per configurare le impostazioni avanzate, che includono Tabella di controllo impostazioni e Regolazione impostazioni. Le impostazioni avanzate predefinite potrebbero essere mantenute.


Figura 22: Impostazioni avanzate

In Mappatura tabella , configura le regole di selezione, come mostrato nella Figura 23. Almeno una regola di selezione con Includi è necessaria un'azione. Seleziona un Nome schema (test) nel sorgente DMS MongoDB. Il nome dello schema è lo stesso del nome di un database MongoDB, che è test . Specifica Il nome della tabella è come '%', che seleziona tutte le tabelle. Una tabella è anche chiamata raccolta in MongoDB. Seleziona Azione come Includi , che include gli oggetti selezionati da una regola di selezione. Le azioni di esclusione vengono elaborate dopo le azioni di inclusione.


Figura 23: Mappature delle tabelle

È inoltre possibile configurare filtri di origine per limitare il numero e il tipo di record trasferiti dall'origine alla destinazione. Fai clic su Aggiungi regola di selezione , come mostrato nella Figura 24.


Figura 24: Aggiungi regola di selezione

È possibile aggiungere regole di trasformazione per creare trasformazioni maiuscole/minuscole e aggiungere/rimuovere prefisso/suffisso. Se la registrazione è stata abilitata, DMS crea un ruolo per accedere a CloudWatch. La creazione di un'attività concede implicitamente le autorizzazioni necessarie per accedere e accedere a CloudWatch. Fai clic su Crea attività , come mostrato nella Figura 25.


Figura 25: Crea attività

Viene avviata la creazione di un'attività di migrazione (vedere la Figura 26). Inizialmente, lo Stato è “Creare”. Lo stato dovrebbe essere aggiornato automaticamente e viene fornita anche l'opzione per fare clic sul pulsante di aggiornamento per aggiornare periodicamente lo stato.


Figura 26: Inizia la creazione dell'attività di migrazione

Quando viene creata un'attività, viene visualizzato lo Stato diventa Pronto , come mostrato nella Figura 27.


Figura 27: Stato attività Pronto

Un ruolo IAM per l'accesso e la registrazione di CloudWatch viene creato automaticamente, come mostrato nella Figura 28.


Figura 28: Ruolo IAM per CloudWatch Logs

Eseguire la migrazione

Per eseguire l'attività di migrazione, fai clic su Avvia/Riprendi , come mostrato nella Figura 29.


Figura 29: Avvia/Riprendi attività

Lo stato dell'attività diventa Inizio , come mostrato nella Figura 30.


Figura 30: Avvio attività

Al termine dell'esecuzione dell'attività, le Tabelle caricate colonna elenca il numero di tabelle caricate come 1, lo Stato diventa Interrotto , La % di completamento dovrebbe indicare 100 , come mostrato nella Figura 31. Come Tipo indica che il tipo di migrazione è Carico completo e replica in corso .


Figura 31: Pieno carico completato

Oltre alle Tabelle caricate colonna, il Caricamento tabelle , Tabelle in coda e Tabelle con errori vengono anche elencati, come mostrato nella Figura 32.


Figura 32: Tabelle in caricamento, Tabelle in coda e Tabelle con errori sono tutti 0

In DynamoDB, il wlslog la tabella elenca sette elementi, come mostrato nella Figura 33. Altre due tabelle, awsdms_apply_exception e awsdms_full_load_exception , vengono anche creati automaticamente. La tabella awsdms_apply_exceptions fornisce i dettagli dell'eccezione, inclusi il nome e la descrizione dell'errore, l'istruzione in esecuzione quando si è verificato l'errore, il nome dell'attività, il proprietario della tabella, il nome della tabella e l'ora dell'eccezione. La tabella awsdms_full_load_exceptions fornisce informazioni sulle eccezioni generate dopo un caricamento completo.


Figura 33: La tabella wlslog elenca sette elementi

Fai clic su un _id per visualizzare il documento (_doc valore dell'attributo), come mostrato nella Figura 34.


Figura 34: Documento per un elemento archiviato in DynamoDB

Il filtro DynamoDB può essere utilizzato per filtrare la ricerca. Ad esempio, cerca un _id specifico specificando _id come campo, selezionando Stringa come tipo di campo, selezionando '=' come operatore di filtro e specificando _id la ricerca, come mostrato nella Figura 35. Fare clic su Avvia ricerca .


Figura 35: Applicazione di un filtro

I dati della riga della tabella DynamoDB per _id specificato viene elencato (vedi Figura 36).


Figura 36: Dati filtrati per _id specifico

Dopo che un'attività di migrazione ha completato la migrazione di un database, lo stato dell'attività diventa Interrotto , ma gli Endpoint di migrazione sono ancora Attivi , come mostrato nella Figura 37.


Figura 37: Endpoint Attivi anche dopo il completamento della migrazione e l'interruzione dell'attività

Ripresa di una migrazione

Un'attività di migrazione interrotta può essere riavviata o ripresa. Di seguito sono riportati alcuni dei motivi per riprendere o riavviare un'attività:

  • Un nuovo documento è stato aggiunto a una raccolta esistente (chiamato anche tabella ) nel database MongoDB di origine DMS
  • Una nuova raccolta (tabella) è stata aggiunta nel database di MongoDB
  • La migrazione deve essere rieseguita con regole di selezione diverse, il che potrebbe essere necessario, ad esempio, se è necessario aggiungere un prefisso di tabella utilizzando una regola di trasformazione.

Ad esempio, aggiungi altri tre documenti al wlslog raccolta nella CLI Mongo.

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])

Come indica l'output nella Figura 38, i tre documenti vengono aggiunti.


Figura 38: Aggiunta di altri tre documenti

Fai clic su Avvia/Riprendi per riprendere un'attività interrotta, come mostrato nella Figura 39.


Figura 39: Avvia/Riprendi per l'attività interrotta

In Avvia attività finestra di dialogo, sono disponibili due opzioni:Avvia o Riavvia . L'Inizio l'opzione avvia l'attività e carica nuove tabelle o raccolte aggiunte all'origine DMS. L'Inizio l'opzione carica anche qualsiasi tabella che è stata caricata solo parzialmente in un'esecuzione precedente. L'Inizio l'opzione non carica i dati (nuovi o vecchi) in una tabella che è già stata caricata completamente nel database di destinazione. Il Riavvia l'opzione riavvia un'attività ed elimina i dati esistenti nel database di destinazione e riavvia il carico completo. In effetti, il Riavvia l'opzione carica i nuovi dati aggiunti alle tabelle esistenti oltre a caricare le nuove tabelle aggiunte nell'origine DMS. Poiché abbiamo aggiunto nuovi dati a una tabella esistente, dobbiamo selezionare Riavvia opzione e fai clic su Avvia attività , come mostrato nella Figura 40.


Figura 40: Riavvio dell'attività

L'attività si riavvia, elimina le tabelle esistenti nel database di destinazione e carica tutti i dati dal database di origine nel database di destinazione. Al termine del caricamento dei dati, lo stato dell'attività diventa Caricamento completato (vedi Figura 41).


Figura 41: Caricamento completo

Fare clic sul pulsante di aggiornamento in DynamoDB, come mostrato nella Figura 42.


Figura 42: Aggiornamento dei dati nella tabella wlslog

Il numero di elementi elencati è 10, come mostrato nella Figura 43, invece dei sette prima di riavviare l'attività. I tre nuovi elementi che abbiamo aggiunto portano a un totale di 10 elementi.


Figura 43: Elenco di 10 elementi dopo l'aggiunta di nuovi elementi e l'aggiornamento dei dati

I nuovi dati migrati sono distinti dai dati caricati nel 1 eseguito da un diverso prefisso; i dati caricati nell'esecuzione 1 hanno il prefisso 59401 nel _id e i dati caricati nella corsa 2 hanno il prefisso 59402 . Il Filtro L'opzione può essere utilizzata per elencare solo i nuovi dati, come mostrato nella Figura 44.


Figura 44: Filtraggio dei dati per elencare solo tre nuovi elementi

Lo stato dell'attività diventa nuovamente Interrotto dopo che i nuovi dati sono stati migrati, come mostrato nella Figura 45.


Figura 45: Lo stato diventa Arrestato dopo il completamento del caricamento completo

Eliminazione di una migrazione

Per eliminare una migrazione, seleziona la migrazione e fai clic su Elimina (vedi Figura 46).


Figura 46: Elimina

In Elimina attività finestra di dialogo, fai clic su Elimina , come mostrato nella Figura 47.


Figura 47: Elimina la verifica dell'attività

Lo stato dell'attività diventa Eliminazione in corso , come mostrato nella Figura 48, prima che l'attività venga eliminata.


Figura 48: Eliminazione attività

L'eliminazione di un'attività non elimina gli endpoint DMS utilizzati; questo significa che potrebbe essere creata una nuova attività.

Conclusione

In due articoli abbiamo discusso della migrazione di un database MongoDB alle tabelle DynamoDB utilizzando AWS Database Migration Service.