Usługa migracji bazy danych AWS (DMS) dodała w 2017 roku obsługę dwóch baz danych NoSQL:MongoDB jako źródłowej bazy danych i AWS DynamoDB jako docelowej bazy danych. W samouczku składającym się z dwóch artykułów migrujemy bazę danych MongoDB do DynamoDB w systemie DMS. W pierwszym artykule „Migracja MongoDB do DynamoDB, część 1” stworzyliśmy zestaw replik MongoDB i tabelę DynamoDB. W tym artykule kontynuacyjnym omówimy tworzenie i uruchamianie migracji DMS w celu migracji danych.
Ten artykuł ma następujące sekcje:
- Tworzenie migracji DMS
- Przeprowadzanie migracji
- Wznawianie migracji
- Usuwanie migracji
- Wniosek
Tworzenie migracji DMS
Następnie stworzymy migrację DMS do migracji bazy danych MongoDB do DynamoDB. Zaloguj się jako użytkownik IAM (dvohra lub inny) utworzony dla DMS i wybierz DMS w AWS Management Console. Kliknij Utwórz migrację w panelu DMS, jak pokazano na rysunku 1.
Rysunek 1: Utwórz migrację
Kliknij Dalej na stronie powitalnej DMS, jak pokazano na rysunku 2.
Rysunek 2: Witamy>Dalej
Utwórz instancję replikacji zostanie wyświetlone okno dialogowe, jak pokazano na rysunku 3, w którym konfigurujemy instancję replikacji do inicjowania połączeń między źródłową i docelową bazą danych, przesyłania danych i buforowania wszelkich zmian w źródłowej bazie danych podczas początkowego ładowania.
Rysunek 3: Utwórz instancję replikacji
Określ nazwę instancji replikacji w polu Nazwa wybierz klasę instancji , wybierz VPC i wybierz opcję, czy Multi-AZ ma zostać utworzona instancja replikacji. Opis , które zwykle jest opcjonalne w konfigurowalnych ustawieniach, jest polem wymaganym. Dla wszystkich tych pól dostępne są ustawienia domyślne z wyjątkiem VPC. Użyte ustawienia instancji replikacji pokazano na rysunku 4.
Rysunek 4: Ustawienia instancji replikacji
Wybierz opcję, aby instancja replikacji była dostępna publicznie i kliknij Zaawansowane aby skonfigurować zaawansowane parametry, jak pokazano na rysunku 5.
Rysunek 5: Ustawianie instancji replikacji jako publicznie dostępnej
W Zaawansowanym sekcji, ustawienia domyślne są dostępne dla wszystkich pól (patrz Rysunek 6).
Rysunek 6: Ustawienia zaawansowane
Ustawienia domyślne, z wyjątkiem klucza głównego KMS, który musi być ustawiony na klucz szyfrowania (dms) utworzony przed zalogowaniem się jako użytkownik IAM (dvohra), są odpowiednie dla każdej instancji replikacji, jak pokazano na rysunku 7. Kliknij Dalej.
Rysunek 7: Ustawienia zaawansowane>Dalej
Rozpocznie się tworzenie instancji replikacji, jak wskazuje komunikat przedstawiony na rysunku 8. Następnie określ punkty końcowe bazy danych podczas tworzenia instancji replikacji. Punktów końcowych bazy danych nie można jednak przetestować, dopóki nie zostanie utworzona instancja replikacji.
Rysunek 8: Tworzę instancję replikacji
Dla silnika źródłowego , wybierz mongodb bazy danych, jak pokazano na rysunku 9.
Rysunek 9: Wybór silnika źródłowego jako mongodb
Dla wyszukiwarki docelowej , wybierz dynamodb bazy danych, jak pokazano na rysunku 10.
Rysunek 10: Wybór silnika docelowego jako dynamodb
Identyfikator punktu końcowego mogą być zachowane jako domyślne zarówno dla źródłowej, jak i docelowej bazy danych, ale należy określić inne parametry połączenia. Aby uzyskać Szczegóły połączenia ze źródłową bazą danych , określ Nazwę serwera jako prywatny adres IP (Rysunek 21 w pierwszym artykule, „Migracja MongoDB do DynamoDB, część 1”) instancji CoreOS EC2, na której zestaw replik MongoDB jest uruchamiany przy użyciu Dockera i określ Port jako 27017 (patrz rysunek 11). Wybierz „brak” dla tryb SSL i tryb uwierzytelniania . Określ Nazwę bazy danych jako test i wybierz Mechanizm uwierzytelniania jako domyślnie .
Rysunek 11: Szczegóły połączenia źródłowej bazy danych
Dla źródłowego silnika bazy danych, mongodb , wybierz Tryb metadanych jako dokument i wybierz opcję _id jako oddzielną kolumnę , jak pokazano na rysunku 12. Uruchom test Przyciski służą do testowania połączeń źródłowej i docelowej bazy danych i nie są włączone, dopóki nie zostanie utworzona instancja replikacji.
Rysunek 12: Inne ustawienia silnika źródłowego
Skopiuj Role ARN dla roli dms-vpc z Konsoli IAM, jak pokazano na Rysunku 13. Rola ARN ma być używana do definiowania połączenia z docelową bazą danych dla migracji DMS.
Rysunek 13: Kopiowanie roli ARN
Skopiuj i wklej rolę ARN w Roli dostępu do usługi ARN jak pokazano na rysunku 14.
Rysunek 14: Rola dostępu do usługi ARN
Po utworzeniu instancji replikacji zostanie wyświetlony komunikat wskazujący to samo, jak pokazano na rysunku 15.
Rysunek 15: Utworzono instancję replikacji
W przypadku docelowej bazy danych kliknij Uruchom test aby przetestować połączenie. Jeśli połączenie zostanie nawiązane, powinien zostać wyświetlony komunikat „Połączenie przetestowane pomyślnie” (patrz Rysunek 16).
Rysunek 16: Pomyślnie przetestowano docelowe połączenie z bazą danych
Podobnie kliknij Uruchom test dla źródłowej bazy danych, a komunikat „Połączenie przetestowane pomyślnie” powinien zostać wyświetlony, jeśli połączenie zostanie nawiązane, jak pokazano na rysunku 17.
Rysunek 17: Pomyślnie przetestowano połączenie z bazą danych
Kliknij Dalej w Punktach końcowych bazy danych , jak pokazano na rysunku 18.
Rysunek 18: Punkty końcowe bazy danych>Dalej
Następnie skonfiguruj zadanie migracji w Utwórz zadanie strona. Zadanie składa się z kilku ustawień, takich jak nazwa zadania, opis zadania, źródłowy punkt końcowy, docelowy punkt końcowy, instancja replikacji, typ migracji, ustawienia zadania, mapowania tabel i ustawienia zaawansowane. Domyślne ustawienia Nazwy zadania oraz niemodyfikowalne ustawienia dla źródłowego punktu końcowego , Docelowy punkt końcowy , Instancja replikacji i Typ migracji pokazano na rysunku 19.
Rysunek 19: Utwórz ustawienia zadania
Dodaj odpowiedni opis i wybierz Typ migracji z listy rozwijanej pokazanej na rysunku 20. Różne opcje typu migracji to Przenieś istniejące dane , Przeprowadź migrację istniejących danych i replikuj bieżące zmiany i Tylko replikuj zmiany danych . Aby przeprowadzić migrację istniejących danych z MongoDB do DynamoDB z możliwością replikowania bieżących zmian, wybierz Przenieś istniejące dane i replikuj bieżące zmiany . Raz utworzone zadanie migracji ma możliwość późniejszej modyfikacji, z wyjątkiem Typu migracji ustawienie, którego nie można modyfikować po utworzeniu zadania migracji. Dlatego wybierz typ migracji, zakładając, że jest to ustawienie stałe.
Rysunek 20: Wybór typu migracji
Wybierz Ustawienia zadań dla Trybu przygotowania tabeli docelowej , Zatrzymaj zadanie po zakończeniu pełnego ładowania , Uwzględnij kolumny LOB w replikacji i Włącz rejestrowanie (patrz Rysunek 21).
Rysunek 21: Ustawienia zadań
Kliknij Ustawienia zaawansowane , jak pokazano na rysunku 22, aby skonfigurować ustawienia zaawansowane, w tym tabela kontrolna ustawienia i dostrajanie ustawienia. Domyślne ustawienia zaawansowane mogą zostać zachowane.
Rysunek 22: Ustawienia zaawansowane
W mapowaniu tabel , skonfiguruj reguły wyboru, jak pokazano na rysunku 23. Co najmniej jedna reguła wyboru z Uwzględnij wymagane jest działanie. Wybierz Nazwę schematu (test) w źródle DMS MongoDB. Nazwa schematu jest taka sama jak nazwa bazy danych MongoDB, czyli test . Określ Nazwa tabeli jest taka jak „%”, który wybiera wszystkie tabele. stół nazywana jest także kolekcją w MongoDB. Wybierz Działanie jako Uwzględnij , który obejmuje obiekty wybrane przez regułę wyboru. Wyklucz działania są przetwarzane po dołączeniu działań.
Rysunek 23: Mapowania tabel
Można również skonfigurować filtry źródłowe ograniczające liczbę i typ rekordów przesyłanych ze źródła do celu. Kliknij Dodaj regułę wyboru , jak pokazano na rysunku 24.
Rysunek 24: Dodaj regułę wyboru
Reguły transformacji mogą być dodawane w celu tworzenia wielkich/małych liter oraz dodawania/usuwania przekształceń prefiksu/sufiksu. Jeśli logowanie zostało włączone, DMS tworzy rolę do logowania do CloudWatch. Utworzenie zadania niejawnie przyznaje uprawnienia wymagane do dostępu i logowania do CloudWatch. Kliknij Utwórz zadanie , jak pokazano na rysunku 25.
Rysunek 25: Utwórz zadanie
Rozpocznie się tworzenie zadania migracji (patrz Rysunek 26). Początkowo Stan to „Tworzenie”. Status powinien być aktualizowany automatycznie i dostępna jest również opcja kliknięcia przycisku odświeżania w celu okresowego odświeżania statusu.
Rysunek 26: Rozpoczyna się tworzenie zadania migracji
Po utworzeniu zadania Status staje się Gotowy , jak pokazano na rysunku 27.
Rysunek 27: Stan zadania gotowy
Rola uprawnień dostępu i logowania do CloudWatch jest tworzona automatycznie, jak pokazano na rysunku 28.
Rysunek 28: Rola uprawnień dla dzienników CloudWatch
Przeprowadzanie migracji
Aby uruchomić zadanie migracji, kliknij Rozpocznij/Wznów , jak pokazano na rysunku 29.
Rysunek 29: Rozpocznij/Wznów zadanie
Status zadania zmieni się na Rozpoczyna się , jak pokazano na rysunku 30.
Rysunek 30: Rozpoczęcie zadania
Po zakończeniu zadania Tabele załadowane kolumna zawiera liczbę załadowanych tabel jako 1, Stan zostaje zatrzymany , Pełny % powinien wskazywać 100 , jak pokazano na rysunku 31. Jako Typ wskazuje kolumna, typ migracji to Pełne obciążenie i bieżąca replikacja .
Rysunek 31: Zakończono pełne ładowanie
Oprócz załadowanych tabel kolumna Wczytywanie tabel , Stoły w kolejce i Błędy w tabelach również zostanie wyświetlony na liście, jak pokazano na rysunku 32.
Rysunek 32: Ładowanie tabel, tabele w kolejce i tabele z błędami to 0
W DynamoDB wlslog tabela zawiera siedem pozycji, jak pokazano na rysunku 33. Dwie inne tabele, awsdms_apply_exceptions i awsdms_full_load_exceptions , również są tworzone automatycznie. Tabela awsdms_apply_exceptions zawiera szczegóły wyjątku, w tym nazwę i opis błędu, instrukcję uruchomioną w momencie wystąpienia błędu, nazwę zadania, właściciela tabeli, nazwę tabeli i godzinę wyjątku. Tabela awsdms_full_load_exceptions zawiera informacje o wyjątkach generowanych po pełnym załadowaniu.
Rysunek 33: Tabela wlslog zawiera siedem pozycji
Kliknij _id aby wyświetlić dokument (_doc wartość atrybutu), jak pokazano na rysunku 34.
Rysunek 34: Dokument dla pozycji przechowywanej w DynamoDB
Filtr DynamoDB może służyć do filtrowania wyszukiwania. Jako przykład wyszukaj konkretny _id określając _id jako pole, wybierając Ciąg jako typ pola, wybierając „=” jako operator filtru i określając _id wyszukiwanie, jak pokazano na rysunku 35. Kliknij Rozpocznij wyszukiwanie .
Rysunek 35: Stosowanie filtra
Dane wiersza tabeli DynamoDB dla _id określony zostanie wyświetlony na liście (patrz Rysunek 36).
Rysunek 36: Przefiltrowane dane dla określonego _id
Gdy zadanie migracji zakończy migrację bazy danych, status zadania zmieni się na Zatrzymane , ale punkty końcowe migracji są nadal aktywne , jak pokazano na rysunku 37.
Rysunek 37: Punkty końcowe aktywne nawet po zakończeniu migracji i zatrzymaniu zadania
Wznawianie migracji
Zatrzymane zadanie migracji można zrestartować lub wznowić. Oto niektóre z powodów wznowienia lub ponownego uruchomienia zadania:
- Nowy dokument został dodany do istniejącej kolekcji (zwany także stołem ) w źródłowej bazie danych DMS MongoDB
- Nowa kolekcja (tabela) została dodana do bazy danych MongoDB
- Migracja musi zostać ponownie uruchomiona z różnymi regułami wyboru, co może być konieczne, na przykład, jeśli przedrostek tabeli musi zostać dodany przy użyciu reguły transformacji.
Jako przykład dodaj jeszcze trzy dokumenty do wlslog kolekcja w 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])
Jak wynika z danych wyjściowych na Rysunku 38, trzy dokumenty zostaną dodane.
Rysunek 38: Dodanie trzech kolejnych dokumentów
Kliknij Rozpocznij/Wznów aby wznowić zatrzymane zadanie, jak pokazano na rysunku 39.
Rysunek 39: Rozpocznij/Wznów dla zatrzymanego zadania
W Rozpocznij zadanie dostępne są dwie opcje:Rozpocznij lub Uruchom ponownie . Start opcja uruchamia zadanie i ładuje nowe tabele lub kolekcje dodane do źródła DMS. Start opcja ładuje również każdą tabelę, która była tylko częściowo załadowana w poprzednim przebiegu. Start opcja nie ładuje danych (nowych lub starych) do tabeli, która została już w całości załadowana do docelowej bazy danych. Uruchom ponownie opcja restartuje zadanie i usuwa istniejące dane w docelowej bazie danych oraz restartuje pełne obciążenie. W efekcie Uruchom ponownie opcja ładuje nowe dane dodane do istniejących tabel oprócz ładowania wszelkich nowych tabel dodanych w źródle DMS. Ponieważ dodaliśmy nowe dane do istniejącej tabeli, musimy wybrać Uruchom ponownie opcję i kliknij Rozpocznij zadanie , jak pokazano na rysunku 40.
Rysunek 40: Ponowne uruchamianie zadania
Zadanie jest uruchamiane ponownie, usuwa istniejące tabele w docelowej bazie danych i ładuje wszystkie dane ze źródłowej bazy danych do docelowej bazy danych. Po zakończeniu ładowania danych status zadania to Wczytywanie zakończone (patrz Rysunek 41).
Rysunek 41: Załaduj ukończone
Kliknij przycisk odświeżania w DynamoDB, jak pokazano na rysunku 42.
Rysunek 42: Odświeżanie danych w tabeli wlslog
Liczba wymienionych pozycji wynosi 10, jak pokazano na rysunku 43, zamiast siedmiu przed ponownym uruchomieniem zadania. Trzy nowe elementy, które dodaliśmy, tworzą razem 10.
Rysunek 43: Wyświetlanie 10 pozycji po dodaniu nowych pozycji i odświeżeniu danych
Nowe migrowane dane są odróżniane od danych załadowanych w pierwszym uruchomieniu za pomocą innego prefiksu; dane załadowane w pierwszym przebiegu mają prefiks 59401 w _id a dane załadowane w drugim przebiegu mają prefiks 59402 . Filtr opcja może być użyta do wyświetlenia tylko nowych danych, jak pokazano na rysunku 44.
Rysunek 44: Filtrowanie danych, aby wyświetlić tylko trzy nowe pozycje
Status zadania ponownie zmieni się na Zatrzymane po migracji nowych danych, jak pokazano na rysunku 45.
Rysunek 45: Status zostaje zatrzymany po zakończeniu pełnego ładowania
Usuwanie migracji
Aby usunąć migrację, wybierz migrację i kliknij Usuń (patrz Rysunek 46).
Rysunek 46: Usuń
W Usuń zadanie kliknij Usuń , jak pokazano na rysunku 47.
Rysunek 47: Usuń weryfikację zadania
Status zadania to Usuwam , jak pokazano na Rysunku 48, zanim zadanie zostanie usunięte.
Rysunek 48: Usuwanie zadania
Usunięcie zadania nie powoduje usunięcia używanych punktów końcowych DMS; oznacza to, że może zostać utworzone nowe zadanie.
Wniosek
W dwóch artykułach omówiliśmy migrację bazy danych MongoDB do tabel DynamoDB przy użyciu usługi migracji bazy danych AWS.