Odpowiedzi:
Pomyśl o procesie lub wydarzeniu , które chcesz przeanalizować.
Załóżmy, że tworzysz Lougle Analytics i chcesz analizować odwiedziny w witrynie (w przeciwieństwie do żądań pojedynczych stron). Odwiedzanie strony internetowej to proces.
Fakt tabela przedstawia proces lub zdarzenie, które chcesz analizować, w tym przypadku jest to lista wizyt. Możesz mieć tyle tabel faktów, ile chcesz, po jednej na proces lub zdarzenie.
Jakie rzeczy mogą Ci się przydać w analizie wizyt na stronie?
Technicznie rzecz biorąc, możesz umieścić to wszystko w jednej tabeli - tak jak w Excelu, ale to naprawdę bardzo szybko zyska, więc zrobimy JEDEN poziom normalizacji. Projektowanie wymiarowe to często „umieszczenie wszystkiego, czego potrzebujesz do analizy, w jednym dużym stole”, a następnie znormalizowanie jednego poziomu.
Twoja tabela faktów będzie wyglądać następująco:
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
Ma kilka kluczowych wartości, które odnoszą się do wartości w innych tabelach †, oraz dwa nie-klucze. Niekluczowe są wartościami numerycznymi i nazywa się Miary . Czy potrafisz wziąć średnią z nazwy marki przeglądarki internetowej? Nie, to jest wymiar. Czy możesz wziąć średni czas trwania wizyty? Tak, więc to miara.
Pozostałe tabele nazywane są tabelami wymiarów , a ip_address
tabela wymiarów może wyglądać następująco:
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
Zauważ, że nie jest znormalizowany: kraj może pochodzić z miasta (miejscowości). Jednak w hurtowni danych zależy nam przede wszystkim na ułatwieniu analizy . Ułatwiając analizę, mam na myśli unikanie głębokich połączeń.
Zauważ, że niektóre dane w tabeli wymiarów są hierarchiczne : kraj> podział> miejscowość. Twój serwer OLAP (mam nadzieję) rozumie hierarchie w celu obsługi operacji drążenia w dół.
Logiczna kostka to tylko zbiór wymiarów i miar , z którymi pracujesz. W przeciwieństwie do kostki Rubika może mieć więcej niż 3 wymiary. Pomyśl o wymiarze jako kolumnie w swoim zestawie danych.
OLAP to zestaw operacji, które można wykonać na zestawie danych, takich jak obracanie, krojenie, krojenie w kostkę, wiercenie. Pomyśl o tabelach przestawnych programu Excel. OLAP Server ułatwia operacje OLAP.
† zwykle bez kluczy obcych
Na obrazku poniżej, który jest przykładem podstawowego schematu gwiezdnego. Wymiary to Dim_Tables.
Są to na ogół wartości, według których chcesz analizować dane. Chcesz więc spojrzeć na sprzedaż określonego produktu w danym kraju w określonym przedziale czasowym.
W tabeli faktów-sprzedaży masz tylko jedną miarę, którą jest Units_Sold.
Miary (na najprostszym poziomie) to tylko rzeczy, które chcesz agregować podczas analizy na podstawie kryteriów w wymiarach.
Jeśli jest coś jeszcze bardziej szczegółowego, co chciałbyś wiedzieć, daj mi znać.
city
w twoich schematach nie ma wzmianki , więc kiedy mówiszcountry could be derived from city
, że nie jestem pewien , co masz na myśli.