Denken Sie an einen Prozess oder ein Ereignis , das Sie analysieren möchten.
Angenommen , Sie haben Lougle Analytics erstellt und möchten Besuche (im Gegensatz zu einseitigen Anfragen) auf Ihrer Website analysieren. Der Besuch einer Website ist ein Prozess.
Eine Faktentabelle stellt einen Prozess oder ein Ereignis dar, den bzw. das Sie analysieren möchten. In diesem Fall handelt es sich um eine Liste von Standortbesuchen. Sie können beliebig viele Faktentabellen erstellen, eine pro Prozess oder Ereignis.
Welche Dinge könnten für Sie bei der Analyse von Ortsbesichtigungen nützlich sein?
- Informationen zum Webbrowser (Marke, Bildschirmauflösung, ...)
- Informationen zum Benutzer (Land, Bundesland, Stadt, ISP, basierend auf seiner IP-Adresse)
- Informationen darüber, wann der Besuch begonnen hat (Jahr, Quartal, Monat, Woche, Tag)
- Die Dauer des Besuchs
- Die verweisende Seite, Landing Page und Exit Page (Titel, URL-Pfad)
- Die Anzahl der während des Besuchs besuchten Seiten
Technisch gesehen könnten Sie dies alles in einer Tabelle zusammenfassen - wie in Excel, aber das würde sehr schnell sehr groß werden, sodass wir EINE Ebene der Normalisierung durchführen. Dimensionales Design besteht oft nur darin, "alles, was Sie für eine Analyse benötigen, in eine große Tabelle zu packen" und dann eine Ebene zu normalisieren.
So sieht Ihre Faktentabelle aus:
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
Es enthält eine Reihe von Schlüsselwerten, die auf Werte in anderen Tabellen † verweisen, sowie zwei Nichtschlüssel. Die Nicht-Schlüssel sind numerische Werte und werden als Measures bezeichnet . Können Sie den Durchschnitt des Markennamens des Webbrowsers ermitteln? Nein, es ist also eine Dimension. Können Sie den Durchschnitt der Besuchsdauer ermitteln? Ja, es ist also eine Maßnahme.
Die anderen Tabellen heißen Dimensionstabellen , und die ip_address
Dimensionstabelle könnte folgendermaßen aussehen:
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)
Beachten Sie, dass es nicht normalisiert ist: Land könnte von Stadt (Ort) abgeleitet werden. In einem Data Warehouse geht es uns jedoch zunächst darum, die Analyse zu vereinfachen . Mit der Erleichterung der Analyse meine ich, tiefe Verknüpfungen zu vermeiden.
Beachten Sie, dass einige der Daten in der Dimensionstabelle hierarchisch sind : Land> Abteilung> Ort. Ihr OLAP-Server versteht (hoffentlich) Hierarchien, um Drilldown-Vorgänge zu unterstützen.
Ein logischer Cube ist nur die Sammlung von Dimensionen und Kennzahlen , mit denen Sie arbeiten. Anders als ein Zauberwürfel kann er mehr als drei Dimensionen haben. Stellen Sie sich eine Dimension als Spalte in Ihrem Datensatz vor.
OLAP ist eine Reihe von Operationen, die Sie gegen einen Datensatz ausführen können, z. B. Schwenken, Schneiden, Schneiden, Bohren. Denken Sie an Excel PivotTables. Ein OLAP-Server erleichtert OLAP-Vorgänge.
† normalerweise ohne Fremdschlüssel
city
in Ihren Schemata, wenn Sie also sagen,country could be derived from city
ich bin nicht sicher, was Sie meinen.In der Abbildung unten, die ein Beispiel für ein grundlegendes Sternschema ist. Die Dimensionen sind die Dim_Tables.
Dies sind im Allgemeinen die Werte, anhand derer Sie die Daten analysieren möchten. Sie möchten sich also einen bestimmten Produktverkauf in einem bestimmten Land über einen bestimmten Zeitraum ansehen.
In der fact_sales-Tabelle haben Sie nur die Kennzahl Units_Sold.
Kennzahlen (auf der einfachsten Ebene) sind nur Dinge, die Sie aggregieren möchten, wenn Sie anhand von Kriterien in den Dimensionen analysieren.
Wenn es noch etwas Spezifischeres gibt, das Sie gerne wissen würden, lassen Sie es mich bitte wissen.
quelle