Database
 sql >> Baza danych >  >> RDS >> Database

Przyrostowe maskowanie i mapowanie danych:wykrywanie zmian i aktualizowanie…

Przyrostowa replikacja danych, maskowanie, integracja (ETL) i inne operacje odświeżania danych są powszechne w często aktualizowanych środowiskach baz danych. Zadania te wymagają wykrycia uzupełnień i aktualizacji tabel. Takie dynamiczne operacje są łatwe do zautomatyzowania w przepływach pracy IRI Vorcity zaprojektowanych i uruchomionych w IRI Workbench (WB).

Ten artykuł zawiera przykład przepływu pracy, który użytkownicy edycji Voracity, FieldShield, CoSort lub NextForm DBMS mogą zaimplementować, aby regularnie sprawdzać zmiany w tabeli źródłowej (w tym przypadku Oracle), aby zdecydować, kiedy przenieść dane do nowego celu (MySQL). Pokazuje również, jak można maskować dane warunkowo w ramach tego procesu. Zwróć uwagę, że IRI pracuje również nad podejściem opartym na logach do zwiększania danych w czasie rzeczywistym bez potrzeby stosowania wartości kolumn delta.

Zmiany można ładować do różnych baz danych lub plików za pomocą pliku wsadowego zaplanowanego na zadania lub skryptu powłoki. Można to zrobić za pomocą znacznika czasu i określonych pól w tabeli źródłowej. Sprawdzanie błędów jest również uwzględnione i można na nim również działać.

Ten przykład został utworzony i uruchomiony na komputerze z systemem Windows. Można go łatwo zmodyfikować, aby działał na platformie Linux lub Unix.

Tworzenie pliku wsadowego jest łatwe dzięki diagramowi Voracity Flow w WB. W tym przykładzie tabela źródłowa zawiera kolumny o nazwie CREATED_DATE i UPDATED_DATE które są ważne w tej pracy.

Poniższy obraz przedstawia kroki zawarte w pliku wsadowym. Podsumowując:

  • zadanie jest uruchamiane w określonym katalogu
  • zmienna środowiskowa jest ustawiana przy użyciu znacznika czasu ostatniego uruchomienia zadania
  • aktualny znacznik czasu jest rejestrowany
  • bieżące zmiany są rejestrowane
  • poziom błędu jest sprawdzany i podejmowany, jeśli się powiedzie, czy nie
  • bieżący znacznik czasu zastępuje znacznik czasu ostatniego uruchomienia
  • Reguła redagowania wiadomości e-mail kończących się na „edu” jest używana w celu
  • W miejscu docelowym stosowana jest reguła częściowej redagowania pola SSN
  • Zmienione dane są ładowane do MySQL
  • sprawdzany jest poziom błędu, zmieniana jest nazwa tymczasowego pliku sygnatury czasowej

Poniżej wyjaśniono każdy blok zadań w przepływie pracy. Dwa fioletowe bloki są blokami mapowania transformacji i reprezentują skrypty zadań CoSort SortCL. Diagramy mapowania i skrypty zadań reprezentowane przez każdy z bloków są pokazane poniżej dla przejrzystości. Więcej informacji na temat tworzenia przepływów pracy Voracity z palety można znaleźć w tym artykule.

Zmień katalog

Ten blok zmienia bieżący katalog roboczy na określony.

Ustaw LASTTIME

Ten blok wiersza poleceń ustawia zmienną środowiskową o nazwie LASTTIME . Wartość ustawiona na zmienną to zawartość pliku LastTime.txt . Znacznik czasu w tym pliku to znacznik czasu, który został zarejestrowany podczas ostatniego uruchomienia tego zadania. Jeśli jest to pierwsze uruchomienie, plik ten będzie musiał zostać utworzony ręcznie z dowolnym znacznikiem czasu datowanym przed uruchomieniem tego zadania.

Ten plik zawiera jedną linię:„2008-09-10 09:39:23.5”

Znacznik czasu.scl

To zadanie używa programu SortCL do przeszukiwania źródłowej bazy danych o bieżący czas. Ten znacznik czasu jest zapisywany w pliku o nazwie LastTimeTemp.txt . Powodem, dla którego jest on przechowywany w pliku tymczasowym, jest to, że można zachować zarówno bieżący, jak i ostatni znacznik czasu, dopóki nie nastąpi sprawdzenie błędów.

Ważne jest, aby znacznik czasu pochodził z bazy danych, a nie z komputera lokalnego. Pozwala to uniknąć problemów, w których baza danych i środowisko wykonawcze nie są zsynchronizowane.

Schemat mapowania i serializowany skrypt dla tego zadania są następujące:

Zmiany.scl

Ta praca wykonuje główny ekstrakt, transformację, ładowanie. Dane wejściowe to tabela źródłowa w Oracle, a dane wyjściowe to podobnie sformatowana tabela w MySQL:

W sekcji wejściowej, zapytanie jest przesyłane do tabeli źródłowej dla wszystkich rekordów, które mają CREATED_DATE lub UPDATED_DATE większa niż zmienna środowiskowa LASTTIME . Zapytanie to „SELECT * FROM SCOTT.CLIENT WHERE CREATED> TO_TIMESTAMP(\'$LASTTIME\', \'RRRR-MM-DD HH24:MI:SS.FF1\') OR (UPDATED> TO_TIMESTAMP(\'$LASTTIME\ ', \'RRRR-MM-DD HH24:MI:SS.FF1\'))”.

Dodatkowo dodawany jest warunek sprawdzający EMAIL kolumna dla danych kończących się na „edu”. Będzie to używane w funkcji warunkowego maskowania danych w danych wyjściowych. W danych wyjściowych If-Then-Else oświadczenie jest dodawane do EMAIL kolumna. Wykorzystuje wcześniej utworzony warunek do testowania danych. Jeśli dane kończą się na „edu”, adres e-mail jest redagowany. Jeśli nie, adres e-mail zostanie skopiowany z danych wejściowych.

Druga funkcja redakcji jest używana w SSN kolumna. Redaguje pierwsze trzy znaki, pozostawia myślnik, redaguje następne dwa znaki, pozostawia myślnik i pozostawia ostatnie cztery znaki. Na przykład ***-**-6789.

Poniżej znajduje się serializowany skrypt zadania SortCL opisany powyżej, dzięki czemu można sprawdzić zapytanie i składnię warunkową związaną z przyrostowymi różnicami:

Błąd CoSort

Blok decyzyjny sprawdza zmienną ERRORLEVEL aby upewnić się, że zwrócił 0 (dla sukcesu) po uruchomieniu powyższego zadania SortCL. Jeśli tak się nie stało, zadanie jest kontynuowane do KONIEC blok, w którym zadanie jest zakończone. Jeśli zwróci true, zadanie przechodzi do następnego bloku.

Zmień nazwę LastTimeTemp

Ten blok poleceń kopiuje zawartość pliku LastTimeTemp.txt do LastTime.txt . To zapisuje poprzednio przechwycony bieżący znacznik czasu w pliku, który zostanie użyty do następnego uruchomienia zadania.

Plik wsadowy

Plik wsadowy i skrypty transformacji są tworzone podczas eksportowania diagramu przepływu (pokazanego powyżej). Kopia pliku wsadowego znajduje się poniżej. Każdy blok dodaje linie wykonywalne do pliku wsadowego.

Harmonogram zadań

Używając Harmonogramu Zadań Windows, ten plik wsadowy może być wykonywany wielokrotnie w celu przechwycenia zmian w źródłowej bazie danych.

Wniosek

Przy odrobinie planowania i użyciu bloków poleceń zmiany w tabeli bazy danych można wykryć automatycznie za pomocą pliku wsadowego, a następnie zaplanować ich uruchamianie w wybranych odstępach czasu, aby można było przenosić, mapować, maskować i w inny sposób manipulować zmienionymi danymi na podstawa przyrostowa.

Skontaktuj się z [email protected] lub z przedstawicielem IRI, aby uzyskać więcej informacji lub pomoc w przypadku użycia.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kontrola stanu Exadata za pomocą narzędzia Exachk

  2. Maskowanie danych w czasie rzeczywistym za pomocą wyzwalaczy

  3. Znowu i znowu! Zarządzanie powtarzającymi się zdarzeniami w modelu danych

  4. Jak używać „Lubię to” w SQL

  5. Zdecyduj między monitorowaniem opartym na agencie a bezagentowym