W każdej firmie, która posiada dużą ilość danych prędzej czy później zajdzie potrzeba przeniesienia tych danych na inny serwer, czy do innej hurtowni danych. Jak szybciej zintegrować dane, przy jednoczesnym zminimalizowaniu obciążeń zasobów systemowych? Jak przenieść dane do lokalizacji, w której będzie je można przygotować do analizy? Dowiedz się więcej o Change Data Capture (CDC).
Czym jest przechwytywanie zmian danych, czyli krótka definicja Change Data Capture (CDC).
Przechwytywanie zmian danych odpowiedzialne jest za rejestrowanie aktywności danych w bazach danych. Celem jest śledzenie zmian z dzienników transakcji baz danych firmy, czy organizacji. Celem całego procesu jest zapewnienie synchronizacji danych na podstawie śledzenia zmian jako zachodziły w danych. Dzięki zastosowaniu Change Data Capture możemy poprawić wydajność operacyjną oraz tym samym oszczędzić czas pracy w danym przedsiębiorstwie poprzez eliminowanie niepotrzebnych transferów danych, występujących w bazach danych. Przechwytywanie zmian danych identyfikuje proces ekstrakcji z baz danych do hurtowni danych. CDC pozwala nam na uniknięcie problemów, którymi są na przykład podwójne zapisy.
Jak działa przechwytywanie zmian danych?
Aby wykonać przechwytywanie zmian danych należy śledzić zmiany na poziomie wierszy w tabelach źródłowych baz danych, które sklasyfikowane są jako zdarzenia aktualizacji. Można wstawiać je i usuwać, następnie udostępnić te powiadomienia o zmianach innym usługom, czy systemom, które zależne są od tych samych danych. O kolejności wysyłania powiadomień decyduje kolejność wygenerowania w oryginalnej bazie danych. Dzięki CDC wszystkie zespoły danego zbioru danych są informowane o zmianach i mogą odpowiednio reagować, odświeżać własną wersję czy uruchamiać procesy biznesowe.
Co daje przechwytywanie zmian danych? Korzyści Change Data Capture (CDC).
Dzięki CDC nie musimy się martwić o duże transfery danych, które mogą wpływać na przepustowość sieci. CDC działa na zasadzie ładowania danych stopniowo. Gdy punkt danych modyfikujemy w systemie źródłowym, aktualizowany jest on automatycznie w miejscu docelowym. Wymaga to minimalnej przepustowości sieci.
Dzięki zaktualizowanym danym, przedsiębiorstwa mogą podejmować szybsze decyzje biznesowe, działając na najbardziej aktualnych danych. Wpływa to na konkurencyjność przedsiębiorstwa.
Przechwytywanie zmian danych chroni dane przed ich zniszczeniem czy całkowitym usunięciem. Utraconych danych nie możemy już odzyskać, jednak CDC gwarantuje ochronę danych, chroniąc aktywa biznesowe.
CDC nie obciąża procesora danych produkcyjnych. Dane oparte na dziennikach są modyfikowane bezpośrednio z dzienników bazy danych i nie obciążają systemu. Dzięki temu CDC eliminuje koszty alternatywne danego biznesu, gdyż nie spowalnia kluczowej infrastruktury technologicznej.
Czy warto korzystać z Change Data Capture (CDC)?
- Oszczędność kosztów – dane przesyłane są w sposób ciągły, automatycznie. Dzięki przesyłaniu mniejszych partii nie wpływa to na przepustowość sieci.
- Aktualne dane w czasie rzeczywistym – ciągły strumień danych z bazy danych do hurtowni danych powoduje, że dane są aktualne. Dzięki temu mamy podgląd w aktualne dane w czasie rzeczywistym, co wpływa na podejmowanie szybszych decyzji biznesowych.
- Duże ułatwienie migrowania danych do chmury np. w przypadku Snowflake czy Big Query.
Change Data Capture (CDC) w procesie ETL.
Narzędzia ETL (ang. extract – transform – load) pobierają dane ze źródła, następnie przekształcają je w trakcie przesyłania i na końcu ładują dane do wybranego miejsca. Pierwszym krokiem procesu jest ekstrakcja danych (czyli pobranie) z systemów źródłowych i przechowanie tych danych w tabeli pomostowej. Przechwytywanie zmian danych w procesie ETL umożliwia nowe podejście do przenoszenia danych do hurtowni danych. CDC dostarcza dane w czasie rzeczywistym, dzięki czemu poprawie ulega efektywność całego procesu przesyłania danych. Dzięki temu zmniejszone zostają koszty obliczeniowe, miejsce w pamięci, przepustowość czy wykorzystanie zasobów ludzkich. Przekłada się to na zmniejszenie kosztów całkowitych biznesu.
Przechwytywanie zmian danych (CDC), a śledzenie zmian (CT).
Śledzenie zmian (ang. Change Tracking) to proces synchroniczny, który pozwala śledzić co się stało z ostatnio zmienionymi danymi, podczas gdy przechwytywanie zmian danych jest procesem asynchronicznym, który odczytuje dziennik transakcji w tle, śledząc i rejestrując zmiany. CDC przechwytuje pełną historię zmian i wymaga więcej miejsca w pamięci niż CT, czyli śledzenie zmian. Change Data Capture (CDC) wymaga, by użytkownik programu SQL Server przechwytywał informacje z dziennika transakcji, ponieważ działa w sposób asynchroniczny. CT przechwytuje te informacje o zmianach w sposób synchroniczny, jako część samej transakcji użytkownika.
Przykłady użycia przechwytywania zmian danych w ETL.
Najczęstszymi przypadkami implementacji CDC w ETL to analiza transakcji czy powielanie danych.
W pierwszym przypadku, czyli analizie transakcji, użycie przechwytywania zmian danych przydatne jest w przypadku wykrywania oszustw. Na przykład w przypadku analizowania użycia karty kredytowej – można sprawdzić czy nie jest ona używana w wielu lokalizacjach jednocześnie.
Drugi przykład, czyli powielanie danych, przydatne będzie gdy replikujemy dane. Podczas kopiowania danych z jednego serwera na inny nie tracimy danych, ale mamy też pewność, że dane nie będą się dublować.
Przechwytywanie zmian danych do optymalizacji procesu ETL.
CDC to proces, który przechwytuje zmiany wprowadzone w bazie danych. Zapewnia ich replikację na przykład do hurtowni danych. Zmniejsza ilość zasobów wymaganych dla procesów ETL. Replikacja danych jest procesem koniecznym, gdyż analityczne bazy danych są znacznie bardziej wydajne niż transakcyjne bazy danych do wykonywania dużych obciążeń analitycznych.
Barbara Michalska Marketing Content Specialist