CDC jako narzędzie migracji: backfill to dopiero początek
CDC jako narzędzie migracji: backfill to dopiero początek
Przy dużej tabeli nie da się zawsze zrobić jednego INSERT ... SELECT i zatrzymać aplikacji na kilka godzin.
Potrzebujemy dwóch elementów:
- backfill danych historycznych,
- synchronizacji zmian, które pojawiają się w trakcie migracji.
CDC może pomóc w drugim punkcie.
Schemat procesu
| |
Włączenie CDC
| |
LSN zamiast czasu
Nie opieraj synchronizacji na ModifiedDate, jeśli potrzebujesz pełnej kolejności zmian.
CDC pracuje na LSN. Dzięki temu można określić zakres:
| |
Idempotencja
Proces synchronizacji powinien tolerować ponowne przetworzenie zakresu.
Najbezpieczniej przechowywać checkpoint, np.:
| |
Problem z cleanup
CDC nie przechowuje zmian bez końca. Job cleanup usuwa stare wpisy.
Jeżeli pipeline migracyjny przestanie działać na zbyt długo, wymagany zakres może zniknąć.
Monitoring powinien więc obejmować:
- najstarszy dostępny LSN,
- ostatni przetworzony LSN,
- opóźnienie pipeline,
- liczbę błędów,
- tempo przyrostu zmian.
Moment przełączenia
Przed przełączeniem sprawdź, czy delta została wyrównana do akceptowalnego poziomu.
To może oznaczać:
- krótkie zatrzymanie zapisów,
- finalny odczyt CDC,
- zastosowanie ostatniej delty,
- przełączenie aplikacji.
CDC nie jest magiczną replikacją
CDC zapisuje informacje o zmianach. To Ty odpowiadasz za ich interpretację i zastosowanie do nowego modelu.
Jeżeli jedna operacja w starym modelu staje się trzema operacjami w nowym, logika migracji musi to rozumieć.
Podsumowanie
Backfill daje stan historyczny. CDC pozwala śledzić to, co zmienia się w czasie migracji.
Razem tworzą podstawę migracji online, ale wymagają checkpointów, monitoringu i jednoznacznego momentu przełączenia.