Wybierz typ wolno zmieniającego się wymiaru (SCD)
Wskazówka
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
Tabele wymiarów w magazynie danych przechwytują opisowe atrybuty dotyczące jednostek biznesowych, takich jak klienci, produkty lub pracownicy. Te atrybuty zmieniają się w czasie i sposób obsługi tych zmian bezpośrednio wpływa na możliwość przeprowadzania dokładnej analizy historycznej. Powolne zmienianie wymiarów (SCD) zapewnia struktury do zarządzania tymi zmianami, a wybór odpowiedniego typu SCD jest kluczową decyzją projektową.
Jako inżynier danych oczekuje się od Ciebie, że zrozumiesz typy SCD i zaimplementujesz je zgodnie z instrukcjami. Podczas gdy architekci danych często podejmują wstępne decyzje projektowe, potrzebujesz wystarczającej wiedzy, aby ocenić kompromisy, zalecane podejścia i prawidłowo wykonywać implementacje. Jednostka ta ułatwia zrozumienie cech każdego typu SCD, dzięki czemu można wybrać odpowiednie podejście, które spełnia wymagania biznesowe.
Omówienie zmian wymiarów
Przed wybraniem typu SCD należy wziąć pod uwagę, co się stanie po zmianie danych źródłowych. Wyobraź sobie, że klient o nazwie Hank Zoeng przenosi się z Seattle do Portland. Tabela wymiarów klienta pokazuje obecnie Seattle jako jego miasto. Dostępne są trzy podstawowe opcje:
- Zastąp istniejącą wartość "Portland", tracąc wszelkie dowody, że kiedykolwiek był w Seattle.
- Zachowaj rekord Seattle i utwórz nową wersję przedstawiającą Portland, zachowując pełną historię.
- Śledź ograniczoną historię, dodając kolumnę "poprzednie miasto" obok wartości bieżącej.
Każde podejście obsługuje różne potrzeby analityczne. Raporty sprzedaży pokazujące "bieżącą lokalizację klienta" wymagają innej obsługi niż analizy śledzące "wzorce migracji klientów" lub "sprzedaż według regionu klienta w momencie zakupu".
Typ SCD 0
Typ scD 0 reprezentuje najprostsze podejście: nigdy nie aktualizuj atrybutów wymiaru po początkowym wstawieniu. Oryginalne wartości pozostają trwałe, niezależnie od zmian systemu źródłowego.
Ten typ działa dobrze w następujących celach:
- Prawdziwe stałe: daty urodzenia, oryginalne daty rejestracji lub daty założyciela, które naprawdę nigdy się nie zmieniają.
- Wymagania dotyczące inspekcji: gdy przepisy wymagają zachowania oryginalnej wartości dokładnie tak, jak wcześniej zarejestrowano.
- Dane referencyjne: wartości wyszukiwania, które reprezentują trwałe klasyfikacje.
Typ 0 jest rzadko używany w izolacji, ponieważ większość atrybutów wymiaru zmienia się w czasie. Jednak poszczególne kolumny w tabeli wymiarów mogą używać metody typu 0, podczas gdy inne kolumny używają różnych typów SCD.
Typ SCD 1
Typ SCD 1 zastępuje istniejący rekord wymiaru nowymi wartościami. Kiedy Hank przenosi się z Seattle do Portland, aktualizujesz bezpośrednio jego wiersz w tabeli. Tabela wymiarów zawsze odzwierciedla bieżący stan systemu źródłowego.
Typ 1 jest odpowiedni, gdy:
- Wartości historyczne nie mają znaczenia: poprawianie błędów wprowadzania danych, aktualizowanie adresów e-mail lub odświeżanie numerów telefonów.
- Analiza koncentruje się na bieżącym stanie: Raporty, które odpowiadają "gdzie nasi klienci mieszkają dzisiaj?", a nie "gdzie mieszkali, kiedy dokonali zakupów?"
- Priorytet prostoty: typ 1 nie wymaga dodatkowych kolumn ani logiki przechowywania wersji.
Ważne
Zmiany typu 1 wpływają na agregacje historyczne. Jeśli Hank kupił produkty za 10 000 USD podczas pobytu w Seattle, po aktualizacji sprzedaż ta jest teraz przypisywana Portland. To zachowanie może błędnie przedstawiać historyczną wydajność według regionu.
Rozważ użycie typu 1 dla atrybutów dodatkowych, które nie mają wpływu na dokładność analizy, na przykład:
- Informacje kontaktowe (adres e-mail, telefon, poprawki adresów).
- Pola tekstowe opisowe (opisy produktów, uwagi klientów).
- Poprawki błędów w dowolnym atrybucie.
Typ SCD 2
Typ SCD 2 zachowuje pełną historię poprzez wstawianie nowych wierszy dla każdej wersji elementu wymiaru. Gdy Hank przenosi się do Portland, istniejący wiersz Seattle pozostanie i zostanie utworzony nowy wiersz Portland. Oba wiersze mają ten sam klucz naturalny (identyfikator klienta), ale mają różne klucze zastępcze.
Uwaga / Notatka
Klucz naturalny jest również nazywany kluczem biznesowym lub kluczem systemu źródłowego. Reprezentuje unikatowy identyfikator oryginalnego źródła danych, na przykład identyfikator klienta, numer pracownika lub kod produktu.
Wymiary typu 2 wymagają dodatkowych atrybutów śledzenia.
| Attribute | Przeznaczenie |
|---|---|
| Klucz zastępczy | Unikatowy identyfikator dla każdej wersji |
| Data rozpoczęcia ważności | Kiedy ta wersja stała się skuteczna |
| Data zakończenia ważności | Gdy ta wersja wygasła (często 12/31/9999 dla bieżącej) |
| Bieżąca flaga | Wartość logiczna wskazująca aktywną wersję |
W poniższej tabeli przedstawiono sposób wyświetlania rekordu klienta Hanka Zoenga po przejściu z Seattle do Portland.
| SK | Identyfikator klienta | Name | Miejscowość | ValidFrom | ValidTo | Aktualny |
|---|---|---|---|---|---|---|
| 1001 | C-555 | Hank Zoeng | Seattle | 2020-01-15 | 2024-03-01 | FALSE |
| 1002 | C-555 | Hank Zoeng | Portland | 2024-03-01 | 9999-12-31 | TRUE |
Typ 2 jest odpowiedni, gdy:
- Dokładność historyczna ma znaczenie: Analizowanie sprzedaży według lokalizacji klienta w momencie zakupu.
- Wymagane są dzienniki inspekcji: Śledzenie przydziałów pracowników, zmian w terytorium lub restrukturyzacji organizacyjnej w czasie.
- Potrzebna jest analiza trendów: zrozumienie, jak ewoluowały atrybuty wymiarów.
Typ 2 zwiększa złożoność i wymagania dotyczące magazynu. Każda wersja tworzy nowy wiersz, a tabele faktów odwołują się do określonych wersji za pomocą kluczy zastępczych. Złożoność zapytań zwiększa się, ponieważ analitycy muszą zrozumieć model przechowywania wersji.
Wskazówka
Typ rezerwy 2 dla atrybutów, w których perspektywa historyczna ma wpływ na decyzje biznesowe. Nie należy stosować typu 2 do każdego atrybutu zmieniającego — obciążenie nie jest uzasadnione dla dodatkowych danych, takich jak numery telefonów.
Typ SCD 3
Typ SCD 3 śledzi ograniczoną historię, dodając kolumny dla poprzednich wartości. Zamiast tworzenia nowych wierszy, należy dodać kolumnę "poprzednie miasto" wraz z "bieżące miasto". Takie podejście śledzi tylko ostatnią zmianę, a nie pełną historię.
W poniższej tabeli przedstawiono sposób wyświetlania rekordu klienta Hanka Zoenga po przejściu z Seattle do Portland.
| Identyfikator klienta | Name | CurrentCity | Poprzednie miasto |
|---|---|---|---|
| C-555 | Hank Zoeng | Portland | Seattle |
Typ 3 jest odpowiedni, gdy:
- Tylko poprzednia wartość ma znaczenie: Porównanie bieżącej i wcześniejszej struktury organizacyjnej.
- Ograniczenia przechowywania istnieją: gdy wersjonowanie typu 2 spowoduje utworzenie zbyt wielu wierszy.
- Analiza porównuje się przed i po: Ponowne formatowanie produktu, zmiany warstwy cenowej lub aktualizacje zasad.
Typ 3 jest najmniej popularnym typem SCD, ponieważ:
- Przechwytuje tylko jedną poprzednią wartość (lub stałą liczbę poprzednich wartości).
- Dodawanie kolumn dla każdego śledzonego atrybutu może znacznie poszerzyć tabele.
- Modele semantyczne mogą znajdować trudne do użycia struktury typu 3.
Większość scenariuszy, które wydają się potrzebować typu 3, są lepiej obsługiwane przez typ 2, który zapewnia pełną historię bez zmian schematu dla każdego atrybutu.
Porównanie typów SCD
W poniższej tabeli podsumowano, kiedy wybrać każdy typ scD:
| Kwestie wymagające rozważenia | Typ 0 | Typ 1 | Typ 2 | Typ 3 |
|---|---|---|---|---|
| Historia zachowana | Tylko oryginał | Żaden | Complete | Limited |
| Wpływ magazynu | Minimalny | Minimalny | High | Umiarkowane |
| Złożoność zapytań | Simple | Simple | Kompleks | Umiarkowane |
| typowe przypadki użycia | Stałe, wymagania dotyczące inspekcji | Poprawki błędów, aktualizacje kontaktów | Przypisywanie autorstwa sprzedaży, śledzenie terytorium | Przed/po porównaniach |
| Relacja tabeli faktów | Klucz naturalny | Klucz naturalny | Klucz zastępczy | Klucz naturalny |
Stosowanie mieszanych strategii SCD
Tabele wymiarów produkcyjnych często łączą wiele typów SCD. Wymiar klienta może obsługiwać atrybuty w różny sposób w zależności od ich znaczenia analizowanego.
- Typ 0: Oryginalna data rejestracji (nigdy się nie zmienia).
- Typ 1: Adres e-mail, numer telefonu (bieżący stan jest wystarczający).
- Typ 2: Przypisany region sprzedaży (historyczna dokładność wymagana do przypisania sprzedaży).
Takie podejście hybrydowe równoważy wydajność magazynowania z wymaganiami analitycznymi. Podczas projektowania wymiarów należy ocenić każdy atrybut indywidualnie, aby określić odpowiednią strategię obsługi zmian.
Zrozumienie, kiedy należy zastosować każdy typ SCD, umożliwia zaimplementowanie wymiarów, które dokładnie obsługują wymagania analityczne organizacji. Szczegóły implementacji dotyczące ładowania i obsługi tabel SCD w usłudze Azure Databricks są omówione w kolejnych lekcjach.