Niedawno zaczęliśmy patrzeć na CDC. Nie jestem ekspertem w tej dziedzinie, ale myślę, że mam kilka odpowiedzi na twoje pytania.
W przeważającej części CDC pomoże ci osiągnąć cel, którym jest całkowicie identyfikowalna historia, ale nie sądzę, że doprowadzi cię to do końca.
Po pierwsze:
często wprowadzamy zmiany w schemacie bazy danych ... Czy istnieje mechanizm aktualizacji tabeli CDC do nowego schematu
I tutaj myślę, że CDC cię zawiedzie. Dokumentacja MSDN w sekcji „Zrozumienie narzutów związanych ze śledzeniem zmian” jest dość jasna, że nie będzie dla ciebie śledzić zmian schematu. Na przykład z Alter Table Add Column
:
Jeśli nowa tabela zostanie dodana do tabeli śledzenia zmian, dodanie kolumny nie będzie śledzone. Śledzone są tylko aktualizacje i zmiany wprowadzone w nowej kolumnie.
Drop Column
jest trochę bardziej skomplikowany.
Jednak powinieneś używać skryptów DB do zmiany schematu, więc niekoniecznie musisz polegać na CDC. Pozwala to zachować spójność między kontrolą jakości a schematami produkcji. I zmiana QA powinna być wykonana przez skrypt, aby dokładnie takie same zmiany mogły zostać zastosowane do Prod. Wyodrębnienie zmian schematu z tych skryptów nie powinno być trudne. Może to oznaczać, że wymiar „czasowy” historii zależy od wersji zamiast czasu rzeczywistego, ale wynik końcowy będzie taki sam.
Jeśli jeszcze go nie masz, utwórz tabelę, aby śledzić wersję schematu bazy danych. Następnie umieść tabelę wersji schematu bazy danych pod CDC, abyś mógł dopasować zmiany makroskopowe do schematu względem zmian mikroskopowych w obrębie konkretnej tabeli.
W moim rozumieniu nadal powinny być widoczne dane dodane do nowych kolumn, niezależnie od tego, czy CDC nie pokazuje zmiany schematu. A migracja danych z tabeli do tabeli powinna również zostać odebrana przez CDC.
czy są jakieś najlepsze praktyki dotyczące postępowania z przechwyconymi danymi podczas migracji schematu bazy danych?
Traktuj to tak, jakbyś traktował audyt. Musisz zrozumieć, co to jest, dlaczego to robisz i jak długo musisz przechowywać te informacje. Zakres i retencja to dwa największe błędy w tego typu zadaniach.
Narzędzia raportowania CDC są zrozumiałe, więc musisz znać kontekst zmian. Zbyt łatwo jest powiedzieć „śledź wszystko !” i w rezultacie nic nie nadaje się do użycia. Podobnie możesz podwoić rozmiar bazy danych, przechowując kopię każdej zmiany. Na stole o wysokiej rezygnacji z wieloma wstawkami i usunięciami skończysz astronomiczny rozwój. Samo w sobie nie jest to złe, ale musisz przewidzieć budżet na ten wzrost i mieć środki do zbadania wszystkich generowanych danych.
Dzięki temu wrócisz do zrozumienia, dlaczego jesteś zmuszany do pełnej identyfikowalności. Z pewnością istnieją uzasadnione powody tego wymogu. Ale nie będziesz w stanie ustrukturyzować skutecznego audytu bazy danych, dopóki nie dowiesz się, dlaczego musisz spełnić ten wymóg.