właściciel hurtowni danych musi zdecydować, jak reagować na zmiany w opisach wymiarów takich jak pracownik, Klient, produkt, dostawca, lokalizacja i inne. W ciągu 30 lat studiowania tej kwestii odkryłem, że potrzebne są tylko trzy różne rodzaje odpowiedzi. Nazywam te powoli zmieniajÄ … ce siÄ ™ wymiary (SCD) typĂłw 1, 2 i 3. W kolumnie z zeszłego miesiąca opisałem Typ 1, który nadpisuje zmienione informacje w wymiarze., W tej kolumnie opisuję typy 2 i 3.
Type 2: Add a New Dimension Record
zmieńmy scenariusz poprzedniej kolumny, w której nadpisałem pole Home City w rekordzie pracownika Ralpha Kimballa, aby założyć, że Ralph Kimball faktycznie przeniósł się z Santa Cruz do Boulder Creek 18 lipca 2008. Załóżmy, że nasza polityka polega na dokładnym śledzeniu adresów domowych pracowników w hurtowni danych. Jest to klasyczna zmiana typu 2.
typ 2 SCD wymaga wydania nowego rekordu pracowniczego dla Ralpha Kimballa z dniem 18 lipca 2008 roku., Ma to wiele interesujących skutków ubocznych:
- Typ 2 wymaga uogólnienia klucza głównego wymiaru pracownika. Jeśli naturalnym kluczem pracownika Ralpha Kimballa jest G446, to ten naturalny klucz będzie „klejem”, który przechowuje wiele rekordów Ralpha Kimballa razem. Nie polecam tworzenia inteligentnego klucza podstawowego dla SCD typu 2, który zawiera dosłowny klucz naturalny. Problemy z inteligentnymi kluczami stają się szczególnie oczywiste, jeśli integrujesz kilka niekompatybilnych systemów HR z inaczej sformatowanymi kluczami naturalnymi., Zamiast tego należy utworzyć całkowicie sztuczne klucze podstawowe, które są po prostu sekwencyjnie przypisywane liczbami całkowitymi. Klucze nazywamy kluczami zastępczymi. Musisz utworzyć nowy zastępczy klucz podstawowy za każdym razem, gdy przetwarzasz zmianę typu 2 w wymiarze.
- oprócz podstawowego klucza zastępczego, zalecam dodanie pięciu dodatkowych pól do wymiaru, który jest w trakcie przetwarzania typu 2. Pola te pokazano na rysunku 1. Datetimes są pełnoetatowymi znacznikami czasu, które reprezentują okres pomiędzy momentem, w którym zmiana stała się skuteczna, a momentem, w którym kolejna zmiana staje się skuteczna., Czas-efektywny-datetime rekordu wymiaru typu 2 musi być dokładnie równy czasowi-efektywny-DateTime następnej zmiany dla tego elementu wymiaru. Najbardziej aktualny rekord wymiarowy musi mieć efektywną dla końca datetime równą fikcyjnej datetime daleko w przyszłości. Tekst przyczyny zmiany powinien zostać zaczerpnięty z wstępnie zaplanowanej listy przyczyn zmiany, w naszym przykładzie, do atrybutów pracownika. Na koniec, znacznik current – flag zapewnia szybki sposób na wyizolowanie dokładnie zestawu elementów wymiaru, który obowiązuje w momencie zapytania., Te pięć pól administracyjnych umożliwia użytkownikom końcowym i aplikacjom wykonywanie wielu zaawansowanych zapytań.
- w przypadku wymiaru poddawanego przetwarzaniu typu 2 należy zwrócić szczególną uwagę na użycie poprawnych współczesnych kluczy zastępczych z tego wymiaru w każdej tabeli faktów, której dotyczy problem. Zapewnia to, że prawidłowe profile wymiarów są powiązane z aktywnością tabeli faktów. Proces extract, transform and load (ETL) służący do wyrównywania tabel wymiarów z tabelami faktów w czasie ładowania nazywa się potokiem kluczy zastępczych i jest szeroko omówiony w moich artykułach i książkach.,
Type 3: Add a New Field
chociaż SCD typu 1 i 2 są podstawowymi technikami odpowiedzi na zmiany w wymiarze, potrzebujemy trzeciej techniki obsługi alternatywnych rzeczywistości. W przeciwieństwie do atrybutów fizycznych, które mogą mieć tylko jedną wartość w danym momencie, niektóre atrybuty przypisane użytkownikowi mogą mieć więcej niż jedną przypisaną wartość w zależności od punktu widzenia obserwatora. Na przykład kategoria produktu może mieć więcej niż jedną interpretację., W sklepie papierniczym długopis może być przypisany do kategorii artykułów gospodarstwa domowego lub kategorii artykułów artystycznych. Użytkownicy końcowi i aplikacje muszą mieć możliwość wyboru w czasie zapytania, która z tych alternatywnych rzeczywistości ma zastosowanie.
wymogowi alternatywnego widoku rzeczywistości atrybutu wymiaru zwykle towarzyszy subtelny wymóg, aby oddzielne wersje rzeczywistości były dostępne przez cały czas w przeszłości i w przyszłości, nawet jeśli prośba o uwidocznienie tych rzeczywistości dotarła do hurtowni danych dzisiaj.,
w najprostszej odmianie istnieje tylko jedna alternatywna-rzeczywistość. W tym przypadku, dla przykładu kategorii produktu, dodajemy nowe pole w wymiarze, być może o nazwie Alternate Category. Jeśli podstawową kategorią naszego długopisu do znakowania były artykuły gospodarstwa domowego, a teraz powinny być Artykuły artystyczne, to w leczeniu typu 3 wciskamy Etykietę artykułów gospodarstwa domowego do pola alternatywnej kategorii i aktualizujemy zwykłe pole kategorii za pomocą artykułów artystycznych przez nadpisanie. Krok nadpisywania jest podobny do SCD typu 1 i prowokuje wszystkie te same zastrzeżenia w kolumnie z ostatniego miesiąca.,
dzięki maszynom typu 3 użytkownicy końcowi i aplikacje mogą płynnie przełączać się między tymi alternatywnymi rzeczywistościami. Jeśli środowisko wymaga więcej niż jednej alternatywnej rzeczywistości, podejście to można uogólnić dodając więcej alternatywnych pól, chociaż oczywiście podejście to nie skaluje się wdzięcznie poza kilka opcji.
trzy podejścia SCD do obsługi zmienności czasu w wymiarach mają ogromne zastosowanie w rzeczywistych sytuacjach napotkanych przez hurtownię danych., Typ 2, w szczególności, pozwala nam dobrze na hurtowni danych zobowiązać się do wiernego zachowania historii.