w dzisiejszym artykule chciałbym skupić się na Slowly changing dimension, czyli SCD. Wymiar to słowo zaczerpnięte z hurtowni danych jako takie. Nie bez powodu SCD jest bardzo często wykorzystywany w tematach hurtowni danych (DW) i może być wykorzystywany do celów audytu w systemach OLTP.
celem artykułu jest przegląd typów powoli zmieniających się wymiarów, ponieważ ich wersji jest niewiele.
Dane zmieniają się w czasie., Możesz nie przejmować się historyczną wersją danych w bazie danych OLTP, ale może to być wymóg biznesowy, aby zachować wszystkie historyczne zmiany. Innymi słowy, musisz być w stanie pokazać, w raporcie sprzedaży, prawidłowe Biuro Regionalne osoby sprzedaży, bez względu na to, kiedy dana osoba zmieniła region. W takim przypadku musimy zachować dane przed zmianą i po aktualizacji.
jak działają przekształcenia?
istnieje kilka rodzajów SCD.
w zależności od typu SCD można zachować brak, jedną lub więcej historycznych zmian wierszy.,
pomysł jest prosty: za każdym razem, gdy wiersz się zmienia, stara wersja (przed aktualizacją lub usunięciem) wiersza będzie przechowywana w tabeli SCD.
realizacja tych rzeczy nie zawsze jest łatwa. Przyjrzyjmy się przykładom.
jako przykład danych źródłowych użyję następującego wiersza danych:
przykład danych źródłowych SCD
w powyższym przykładzie CustomerId jest podstawowym kluczem w źródłowej bazie danych (OLTP).,
Wprowadzamy klucz zastępczy (CustomerKey) w DW, aby uniknąć powielania oryginalnego CustomerId i zoptymalizować wydajność, zwłaszcza gdy system źródłowy używa kluczy znakowych lub złożonych.
dane SCD w hurtowni danych przykład
Typ SCD 0
Ten Typ nie zachowuje żadnych zmian atrybutów. Zachowuje tylko pierwotną wartość bez żadnych zmian. Używany głównie do atrybutów, których nie można zmienić, takich jak data urodzenia.,
Typ SCD 1: nadpisanie historii dla atrybutu
ta metoda nie może śledzić zmian danych i zastępuje stare dane nowymi. Gdy nasz klient zmieni swój adres, nowy adres zostanie nadpisany:
SCD Type 1
Jak widać – jest bardzo prosty w implementacji i utrzymaniu procesu – jest to prosta aktualizacja. Z drugiej strony wadą takiego podejścia jest brak historii row w hurtowni danych.,
SCD Typ 2: dodawanie nowych wierszy
metodologia zachowuje historię poprzez dodawanie nowych wierszy i nie ma ograniczeń co do liczby przechowywanych zmian.,iv id=”f3da287bb9″>
SCD Type 2
dodatkowo możesz zdecydować, w jaki sposób chcesz znać starsze wiersze, utrzymując bieżącą kolumnę flagi i/lub aktualizując ją:
SCD Type 2 z bieżącą flagą
lub wersja wiersza, która będzie stopniowo zwiększana:
typ SCD 2 z wersją
Typ SCD 3: dodatkowe historyczne kolumny
w tym podejściu możesz zarządzać ograniczoną ilością historii, dodając dodatkowe kolumny do śledzenia atrybutów.,
chcąc mieć poprzednie i aktualne miasto klienta można zaimplementować kolumny: PreviousCity i CurrentCity. W hurtowni danych (DW) będzie tylko jeden wiersz na źródłową bazę danych, dlatego Typ 3 ma ograniczoną użyteczność i jest mniej popularny niż typ 1 i 2.
SCD Typ 3
musisz być ostrożny, jeśli chcesz używać SCD typ 3. Upewnij się, że analityk biznesowy i / lub twój Klient są świadomi ograniczeń historii.,
Typ SCD 4: oddzielna tabela historyczna
ten typ wykorzystuje oddzielne tabele do przechowywania bieżących rekordów i zmian historycznych. Warto użyć, gdy:
• Wymiar zmienia się dość często lub
• Wymiar to tabela wielomilionowa
SCD Type 4 current table
SCD Type 4-tabela historyczna
Margy Ross z Kimball group nazywa takie tabele „mini – wymiarem”.,
SCD Typ 6:
podejście to jest numerowane jako 6 jako 1+2+3=6 jak również 1x2x3=6. Dlatego jest to kombinacja tych trzech typów:
• przechowuje zarówno poprzednie jak i bieżące wartości dla atrybutu (jako typ 3, spójrz na kolumny: „HistoricCity”, „CurrentCity”)
• nadpisuje wszystkie rekordy dla bieżącej wersji atrybutu (jako typ 1, Spójrz na kolumnę „CurrentCity”)
• przechowuje historyczną wersję atrybutu (jako typ 2, Spójrz na kolumny: „IsCurrent”, „StartDate”, „EndDate”)
zobaczmy, jak wiersz jest zmieniany, a jak wpływa na DW., Pierwsze ładowanie wiersza:
SCD Typ 6 (Krok 1)
wiersze w tabeli klientów DW po pierwszej relokacji klienta:
Typ SCD 6 (Krok 2)
wiersze w tabeli klientów DW po drugiej relokacji klienta:
Typ SCD 6 (Krok 3)
jaki typ wybrać?,
jako profesjonalny konsultant odpowiadam profesjonalnie:
to zależy
zapytaj swój zespół biznesowy, analitykę biznesową lub klienta: czego potrzebuje w hurtowni danych.
może nie powiedziałem tego wystarczająco głośno, ale w tej samej tabeli można zastosować różne typy SCD do każdej kolumny.
na przykład: wpisz 2 do kolumny City, wpisz 1 do kolumny BirthDate. Wszystko w jednym stole.
dlatego zapytaj ich dla każdego wymiaru:
• które atrybuty są stałe,
* które atrybuty są zmiennymi?,
* które atrybuty powinny być w pełni śledzone, które powinny zachować tylko poprzednią i bieżącą wersję?
* ile wierszy jest obecnie w tabeli / oczekuje się w ciągu najbliższych 10 lat?
zachowaj te odpowiedzi jako dowód. Ludzie, zwłaszcza klienci, uwielbiają zmieniać zdanie. Wiesz, co mam na myśli.
Jeśli nadal nie wiesz, który wybrać, pamiętaj, że:
prowadzenie historii zmian jest dla ciebie dobre
Po prostu dlatego, że wymagania mogą się zmienić.
poza typami 0 i 1, moim zdaniem najbardziej popularne są typ 2 i typ 4.
jak wczytać dane do SCD?,
dobre pytanie. Ale ten temat to zupełnie inna historia.
zanim przygotuję następny wpis na ten temat-zajrzyj do tego narzędzia:
SCD Merge Wizard
narzędzie pomaga w tworzeniu, zarządzaniu i utrzymaniu mapowania pomiędzy bazą źródłową (np. staging) a bazą docelową (Hurtownia danych). Ponadto, w tym podejściu użyjesz instrukcji MERGE do wykonywania operacji ładowania przy użyciu skonfigurowanego typu SCD dla każdej kolumny.
w kolejnych postach wyjaśnię jak stosować różne typy SCD w tym narzędziu.
powodzenia w ładowaniu,
Kamil