tabele faktów są podstawą hurtowni danych. Zawierają one podstawowe pomiary przedsiębiorstwa i są ostatecznym celem większości zapytań hurtowni danych. Nie ma sensu podnosić tabel faktów na maszcie, chyba że zostały one wybrane w celu odzwierciedlenia pilnych priorytetów biznesowych, zostały starannie zapewnione i są otoczone wymiarami, które zapewniają bogactwo punktów wejścia do ograniczania i grupowania. Teraz, gdy utorowaliśmy drogę dla tabel faktów, zobaczmy, jak je zbudować i wykorzystać.
pozostań wierny ziarnu
pierwszym i najważniejszym krokiem projektowym jest zadeklarowanie faktu ziarna tabeli. Ziarno jest biznesową definicją tego, co reprezentuje pojedynczy rekord tabeli faktów. Deklaracja ziarna nie jest listą wymiarowych kluczy obcych, które implementują klucz podstawowy dla tabeli faktów. Ziarno jest raczej opisem zdarzenia pomiarowego w świecie fizycznym, które powoduje pomiar. Gdy skaner sklepu spożywczego mierzy ilość i cenę zakupu produktu, ziarno jest dosłownie sygnałem dźwiękowym skanera. To świetna definicja ziarna!
bezpośrednio po zadeklarowaniu ziarna, możliwe jest wypisanie wymiarowych kluczy obcych, które istnieją w tym ziarnie. Deklarując ziarno jako pierwsze, dyskusja na temat kluczy obcych pozostaje ugruntowana i precyzyjna.
rzeczywistym celem tabeli faktów jest repozytorium liczbowych faktów, które są obserwowane podczas zdarzenia pomiarowego. Niezwykle ważne jest, aby te fakty były prawdziwe dla ziarna. Sklep spożywczy „beep” mierzy ilość i rozszerzoną cenę skanowanego produktu. Nigdy nie uwzględniamy innych pomiarów numerycznych, które naruszają ziarno, takich jak ogólna kategoria sprzedaży lub sprzedaż tego produktu w zeszłym miesiącu. Chociaż te inne pomiary mogą być bardzo pomocne w wybranych obliczeniach, nie mogą być łączone między rejestrami faktów i wprowadzają dziwne asymetrie w projektowaniu aplikacji. Pozwoliliśmy naszym narzędziom business intelligence (BI) obliczyć te wartości off-topic w czasie zapytań, zamiast ciężko kodować je w naszych tabelach faktów.
zawsze staramy się, aby fakty dodawały się do wymiarów i były dokładnie zgodne z ziarnem. Zauważ, że nie przechowujemy ceny skanowanego produktu, ponieważ cena nie jest obciążająca. Zamiast tego przechowujemy rozszerzoną cenę, którą można dowolnie dodawać do produktów, sklepów, czasów i wszystkich innych wymiarów.
Zbuduj z najniższego możliwego ziarna
hurtownia danych powinna być zawsze zbudowana na tablicach faktów wyrażonych na najniższym możliwym ziarnie. W przykładzie, sygnał kasy spożywczej jest najniższym możliwym ziarnem, ponieważ nie można go dalej dzielić. Tabele Fact o najniższym ziarnie są najbardziej wyraziste, ponieważ mają najbardziej kompletny zestaw możliwych wymiarów dla tego procesu biznesowego. Tablica faktów beep grain może mieć datę, Sklep, produkt, kasjera, Menedżera, klienta, promocję, konkurencję, koszyk, a nawet pogodę, jeśli wszystkie te źródła danych mogą być marshaled podczas tworzenia rekordów faktów. Tabele zagregowane o wyższym ziarnie, takie jak sprzedaż kategorii według okręgów, nie mogą wspierać wszystkich tych wymiarów i dlatego są znacznie mniej ekspresyjne. Podstawowym błędem jest publikowanie użytkownikom końcowym tylko zagregowanych tabel bez płynnego dostępu do tabel o najniższym ziarnie poprzez odwierty. Większość fałszywych pojęć, które tabele wymiarowe zakładają pytanie biznesowe, pochodzi z popełnienia tego fundamentalnego błędu.
trzy rodzaje tabel faktów
jeśli pozostaniesz wierny ziarnu, wszystkie Twoje tabele faktów można pogrupować w tylko trzy typy: ziarno transakcji, ziarno migawki okresowej i ziarno migawki akumulacyjnej (trzy typy są pokazane na rysunku 1). Na rysunku 1 wymiary są oznaczone FK (klucz obcy), a fakty liczbowe są kursywą.
ziarno transakcji odpowiada pomiarowi wykonanemu w jednej chwili. Sklep spożywczy to zboże transakcyjne. Zmierzone fakty są ważne tylko dla tej chwili i dla tego zdarzenia. Kolejne zdarzenie pomiarowe może nastąpić o milisekundę później lub w przyszłym miesiącu lub nigdy. Tak więc tabele faktów dotyczących ziarna transakcji są nieprzewidywalnie rzadkie lub gęste. Nie mamy gwarancji, że wszystkie możliwe klucze obce będą reprezentowane. Tabele faktów dotyczących ziarna transakcji mogą być ogromne, a największe zawierają wiele miliardów rekordów.
okresowa migawka odpowiada zdefiniowanemu przedziałowi czasu, często okresowi raportowania finansowego. Rysunek 1 przedstawia okresową migawkę rachunku miesięcznego. Zmierzone fakty podsumowują aktywność podczas lub na końcu okresu. Okresowa migawka zawiera potężną gwarancję, że wszystkie podmioty sprawozdające (takie jak rachunek bankowy na rysunku 1) pojawią się w każdej migawce, nawet jeśli nie będzie żadnej aktywności. Okresowa migawka jest przewidywalnie gęsta, a aplikacje mogą polegać na kombinacjach klawiszy zawsze obecnych. Okresowe tabele faktów migawkowych również mogą być duże. Bank z 20 milionami kont i 10-letnią historią miałby 2.4 miliardy rekordów w miesięcznym bilansie okresowym!
nagromadzona tabela faktów snapshot odpowiada przewidywalnemu procesowi, który ma dobrze zdefiniowany początek i koniec. Typowymi kandydatami są Przetwarzanie zamówień, rozpatrywanie roszczeń, rozwiązywanie połączeń serwisowych i rekrutacja na studia. Ziarno gromadzącej się migawki do przetwarzania zamówienia, na przykład, jest zwykle pozycją w zamówieniu. Zauważ na rysunku 1, że istnieje wiele dat reprezentujących standardowy scenariusz, który podlega zamówieniu. Nagromadzone zapisy migawek są ponownie przeglądane i nadpisywane w miarę postępu procesu od początku do końca. Gromadzące się tabele faktów migawkowych są na ogół znacznie mniejsze niż pozostałe dwa typy z powodu tej strategii nadpisywania.