Nasz pierwszy artykuł na temat replikacji danych w interfejsie graficznym IRI Workbench dla NextForm (edycja DB) lub Voracity zademonstrował, jak kopiować i przekształcać dane podczas przenoszenia z Oracle do dwóch celów. Ten artykuł pokazuje, jak synchronizować przyrostowo tabelę produkcyjną i zapasową w oddzielnych bazach danych.
W tym przypadku produkcyjną bazą danych jest Oracle, zapasową bazą danych jest MySQL, a tabela w obu przypadkach ma nazwę SG_TRANSACTIONS. Istnieją wiersze transakcji zawierające numer konta, typ transakcji, datę transakcji i kwotę transakcji z nazwami kolumn ACCT_NUM, TRANSTYPE, TRANS_DATE i TRANS_AMOUNT.
Pamiętaj, że możesz również tworzyć tabele, definiując i wykonując instrukcje w plikach SQL w IRI Workbench.
Uruchom kreatora
W IRI Workbench dostępne są kreatory, których można użyć do utworzenia skryptu zadania migracji, który skopiuje wiersze z jednej tabeli do drugiej. W takim przypadku zreplikujemy dane z tabeli ORACLE SG_TRANSACTIONS do tabeli MySQL SG_TRANSACTIONS.
Wcześniej stworzyłem projekt Replikacja. Powinniśmy kliknąć ten folder w Eksploratorze projektów aby podświetlić projekt przed uruchomieniem kreatora. Gwarantuje to, że kreator zapisze mój skrypt zadania w tym folderze. Nasze zadanie replikacji zostanie utworzone za pomocą kreatora dostępnego w menu NextForm na pasku narzędzi.
Aby uruchomić kreatora, kliknij strzałkę obok ikony NextForm. Zauważ, że w poprzednim artykule użyliśmy nowego zadania reformatowania czarodzieja, ponieważ jeden z celów został przefiltrowany, zamaskowany i ponownie sformatowany. Ponieważ ten przypadek dotyczy bezpośredniej replikacji, użyjemy nowego zadania migracji z jednego źródła zamiast tego kreatora.
Na pierwszym ekranie kreatora o nazwie Plik specyfikacji pracy , sprawdź, czy Folder pole ma wartość Replikacja (nazwa projektu). W Nazwie pliku pole wpisz nazwę tworzonego przez nas skryptu pracy; Nazwałem to SG_Transaction_Transfer. Wybierz Utwórz skrypt przycisk opcji, a następnie wybierz Dalej aby przejść do Migracji pojedynczego źródła okno.
W sekcji Informacje źródłowe , wybierz Przeglądaj przycisk obok Źródła pole. Teraz wybierz ODBC przycisk opcji w Źródle danych i kliknij przycisk Przeglądaj przycisk.
W Wyborze tabeli ODBC w oknie wybierz DSN z listy rozwijanej; następnie wybierz Nazwę tabeli i kliknij OK . ODBC służy do łączenia się z naszymi źródłowymi i docelowymi tabelami bazy danych podczas przenoszenia danych za pomocą naszych skryptów zadań. Kliknij OK ponownie, aby powrócić do Migracji pojedynczego źródła okno.
Przeglądaj lub odkrywaj metadane źródła
Wszystkie programy IRI wymagają układów metadanych dla źródeł danych i obiektów docelowych w standardowym formacie pliku definicji danych (DDF). Te układy są zwykle tworzone raz, przechowywane centralnie i używane jako odniesienia dla map i modeli.
Jeśli plik metadanych został już utworzony, w sekcji Informacje o źródle , kliknij przycisk Przeglądaj przycisk obok Metadanych pole. W Otwórz metadane wybierz plik metadanych w Pasujące elementy pole, które definiuje kolumny w SG_TRANSACTIONS stół. Następnie kliknij OK aby powrócić do Migracji pojedynczego źródła okno.
Jeśli chcesz teraz utworzyć plik metadanych, wybierz Odkryj przycisk. Spowoduje to przejście do Konfiguracji Opcje okno. Sprawdź, czy folder to /nazwa Twojego projektu /metadane. W Nazwie pliku wpisz nazwę pliku metadanych i kliknij Dalej . W Identyfikacji źródła danych sprawdź, czy pola są wypełnione poprawnie i kliknij Dalej aby przejść do Przeglądarki i edytora danych polowych okno.
W górnej połowie okna znajdują się nazwy kolumn i próbka rekordów w tabeli, jeśli takie istnieją. W dolnej połowie znajduje się pole Nazwa do wykorzystania w skrypcie zadania, równoważne dane IRI Typ dla oryginalnej bazy danych Typ źródła , a porządkowa Pozycja pola (kolumny). Kliknij Zakończ .
Wróciłeś teraz do Migracji pojedynczego źródła okno.
Zdefiniuj cel
W sekcji Informacje o celach , wybierz Przeglądaj przycisk obok pola Cel . Teraz w celu danych w oknie wybierz ODBC przycisk opcji i kliknij przycisk Przeglądaj przycisk obok ODBC pole. Następnie wybierz wyjście DSN i Nazwa tabeli (Twister MYSQL i SG_Transactions) w Wyborze tabeli ODBC okno. Pamiętaj, aby zaznaczyć pole Kopiuj metadane ze źródła . Kliknij OK i kliknij OK ponownie.
Wszystkie niezbędne informacje znajdują się teraz w Migracji z jednego źródła okno. Kliknij Zakończ .
Skrypt języka sterującego NextForm SG_Transaction_Transfer.ncl jest tworzony i może być przeglądany w kodowanym kolorami edytorze tekstu IRI Workbench, obsługującym składnię.
Replikuj nowe rekordy
Ten skrypt skopiuje wszystkie wiersze istniejące w SG_TRANSACTIONS tabeli w Oracle do tej samej tabeli nazwanej w MySQL. Ale po pierwszym wykonaniu chcemy tylko skopiować nowe wiersze do tabeli kopii zapasowej. Aby to zrobić, musimy dodać instrukcję /QUERY do sekcji wejściowej skryptu zadania, aby tylko najnowsze wiersze były przetwarzane przy każdym uruchomieniu zadania (ad hoc lub zaplanowane).
Aby zmodyfikować skrypt z edytora IRI Workbench, kliknij prawym przyciskiem myszy w treści skryptu. Wybierz IRI , a następnie Edytuj źródła . W Źródłach danych w oknie dialogowym wybierz Edytuj opcje źródła .
Na dole Opcji źródła okno to Zapytanie pole. W tym miejscu dodajemy zapytanie SQL, które wybierze tylko najnowsze wiersze z tabeli Oracle. Założymy, że jest to proces na koniec miesiąca. Instrukcja QUERY poniżej filtruje wiersze dla interwału jednego miesiąca, ale możemy wybrać dowolny interwał. Zamiast używać konkretnych dat w skrypcie, możemy również użyć zmiennych środowiskowych do określenia interwału.
Teraz kliknij OK , a następnie Zakończ aby zaktualizować i zapisać nasz oryginalny skrypt zadania stworzony przez kreatora z nową instrukcją /QUERY w środku:
Przy pierwszym uruchomieniu skryptu instrukcja /QUERY powinna zostać wykomentowana, ponieważ chcemy skopiować wszystkie rekordy. Następnie chcemy uruchomić z instrukcją /QUERY, aby zreplikować wiersze z przedziału dat, który nie został jeszcze skopiowany do tabeli kopii zapasowej.
To zadanie można uruchomić z GUI lub wiersza poleceń, w przypadku których licencjonowana jest wersja wykonywalna NextForm DB, Voracity lub CoSort (sortcl).
Oto przykładowe wiersze w tabeli produkcyjnej:
A oto próbka wierszy w tabeli kopii zapasowych przed wykonaniem kopii zapasowej na koniec grudnia. Tak więc wiersze w tej tabeli trwają obecnie tylko do końca listopada.
Po uruchomieniu naszego zadania replikacji z instrukcją /QUERY do tabeli kopii zapasowej dodawane są tylko rekordy z grudnia. Zwróć uwagę, że w tabeli produkcyjnej znajduje się jeden rekord ze stycznia, ale ten rekord nie został skopiowany do tabeli zapasowej, ponieważ wartość daty dla tego wiersza wykracza poza nasz określony zakres.
Możliwe jest również dodanie funkcji maskowania na poziomie kolumny do każdego celu, jak pokazuje poniższe zadanie:
Zobacz ten przykład replikacji między Oracle i MongoDB. Aby uzyskać pomoc w replikacji danych jednorazowo lub cyklicznie, wyślij e-mail na adres [email protected].