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