Faktentabellen sind die Grundlage des Data Warehouse. Sie enthalten die grundlegenden Messungen des Unternehmens und sind das ultimative Ziel der meisten Data Warehouse-Abfragen. Es hat keinen Sinn, Faktentabellen an den Fahnenmast zu heben, es sei denn, sie wurden ausgewählt, um dringende Geschäftsprioritäten widerzuspiegeln, wurden sorgfältig qualitätsgesichert und sind von Dimensionen umgeben, die eine Fülle von Einstiegspunkten für Einschränkungen und Gruppierungen bieten. Nachdem wir nun den Weg für Faktentabellen geebnet haben, wollen wir sehen, wie man sie erstellt und verwendet.
Dem Korn treu bleiben
Der erste und wichtigste Entwurfsschritt ist die Deklaration des Faktentabellen-Korns. Das Korn ist die Geschäftsdefinition dessen, was ein einzelner Faktentabellendatensatz darstellt. Die Grain-Deklaration ist keine Liste dimensionaler Fremdschlüssel, die einen Primärschlüssel für die Faktentabelle implementieren. Vielmehr ist das Korn die Beschreibung des Messereignisses in der physischen Welt, das zu einer Messung führt. Wenn der Lebensmittelgeschäftsscanner die Menge und den berechneten Preis eines gekauften Produkts misst, ist das Korn buchstäblich der Piepton des Scanners. Das ist eine großartige Korndefinition!
Unmittelbar nach der Deklaration des Korns ist es möglich, die dimensionalen Fremdschlüssel aufzulisten, die an diesem Korn vorhanden sind. Indem das Korn zuerst deklariert wird, bleibt die Diskussion von Fremdschlüsseln geerdet und präzise.
Der eigentliche Zweck der Faktentabelle besteht darin, die numerischen Fakten zu speichern, die während des Messereignisses beobachtet werden. Es ist von entscheidender Bedeutung, dass diese Fakten dem Getreide entsprechen. Das Lebensmittelgeschäft „Beep“ misst die Menge und den Preis des gescannten Produkts. Wir schließen niemals andere numerische Messungen ein, die gegen das Korn verstoßen, wie z. B. die Gesamtverkäufe der Kategorie oder die Verkäufe dieses Produkts im letzten Monat. Obwohl diese anderen Messungen für ausgewählte Berechnungen sehr hilfreich sein können, können sie nicht über Faktendatensätze hinweg kombiniert werden und führen zu seltsamen Asymmetrien beim Design von Anwendungen. Wir lassen unsere Business Intelligence (BI) -Tools diese Off-Topic-Werte zur Abfragezeit berechnen, anstatt sie fest in unsere Faktentabellen zu codieren.
Wir sind stets bemüht, die Fakten über die Dimensionen hinweg additiv und exakt mit der Maserung in Einklang zu bringen. Beachten Sie, dass wir den Preis des gescannten Produkts nicht speichern, da der Preis nicht additiv ist. Vielmehr speichern wir den erweiterten Preis, der frei über Produkte, Geschäfte, Zeiten und alle anderen Dimensionen hinzugefügt werden kann.
Aufbau aus der kleinstmöglichen Körnung
Das Data Warehouse sollte immer auf Faktentabellen aufgebaut sein, die mit der kleinstmöglichen Körnung ausgedrückt werden. Im Beispiel ist der Piepton der Lebensmittelladenkasse das niedrigstmögliche Korn, da er nicht weiter geteilt werden kann. Faktentabellen mit der niedrigsten Körnung sind am aussagekräftigsten, da sie den vollständigsten Satz möglicher Dimensionen für diesen Geschäftsprozess enthalten. Die Beep Grain-Faktentabelle kann Datum, Geschäft, Produkt, Kassierer, Manager, Kunde, Werbung, Wettbewerb, Warenkorb und sogar Wetter enthalten, wenn alle diese Datenquellen beim Erstellen der Faktendatensätze gemarshallt werden können. Aggregierte Tabellen mit höherer Körnung, wie z. B. Kategorieverkäufe nach Distrikt, können nicht alle diese Dimensionen unterstützen und sind daher viel weniger aussagekräftig. Es ist ein grundlegender Fehler, nur aggregierte Tabellen für die Endbenutzer zu veröffentlichen, ohne die Faktentabellen mit dem niedrigsten Korn durch Drilldown reibungslos zugänglich zu machen. Die meisten falschen Vorstellungen, dass Maßtabellen die Geschäftsfrage voraussetzen, beruhen auf diesem grundlegenden Fehler.
Drei Arten von Faktentabellen
Wenn Sie dem Korn treu bleiben, können alle Ihre Faktentabellen in nur drei Typen gruppiert werden: Transaktionskorn, periodisches Snapshot-Korn und akkumulierendes Snapshot-Korn (die drei Typen sind in Abbildung 1 dargestellt). In Abbildung 1 werden die Dimensionen mit FK (Fremdschlüssel) bezeichnet und die numerischen Fakten kursiv dargestellt.
Das Transaktionskorn entspricht einer Messung, die zu einem einzigen Zeitpunkt durchgeführt wird. Der Piepton im Lebensmittelgeschäft ist ein Transaktionssignal. Die gemessenen Fakten sind nur für diesen Moment und für dieses Ereignis gültig. Das nächste Messereignis könnte eine Millisekunde später oder nächsten Monat oder nie stattfinden. Daher sind Transaktionskorn-Faktentabellen unvorhersehbar spärlich oder dicht. Wir haben keine Garantie, dass alle möglichen Fremdschlüssel dargestellt werden. Transaktions- und Faktentabellen können enorm sein, wobei die größte viele Milliarden Datensätze enthält.
Das periodische Snapshot-Korn entspricht einer vordefinierten Zeitspanne, häufig einer Finanzberichtsperiode. Abbildung 1 zeigt einen monatlichen periodischen Snapshot des Kontos. Die gemessenen Fakten fassen die Aktivität während oder am Ende der Zeitspanne zusammen. Die periodische Snapshot-Funktion bietet eine leistungsstarke Garantie dafür, dass alle berichtenden Entitäten (z. B. das Bankkonto in Abbildung 1) in jedem Snapshot angezeigt werden, auch wenn keine Aktivität vorliegt. Der periodische Snapshot ist vorhersehbar dicht, und Anwendungen können sich darauf verlassen, dass Tastenkombinationen immer vorhanden sind. Periodische Snapshot-Faktentabellen können ebenfalls groß werden. Eine Bank mit 20 Millionen Konten und einer 10-jährigen Geschichte hätte 2.4 milliarden Datensätze im monatlichen Konto periodische Snapshot!
Die akkumulierende Snapshot-Faktentabelle entspricht einem vorhersehbaren Prozess, der einen genau definierten Anfang und ein genau definiertes Ende hat. Auftragsabwicklung, Schadenbearbeitung, Service Call Resolution und College Admissions sind typische Kandidaten. Das Korn eines akkumulierenden Snapshots für die Auftragsabwicklung ist beispielsweise in der Regel die Werbebuchung des Auftrags. Beachten Sie in Abbildung 1, dass es mehrere Daten gibt, die das Standardszenario darstellen, das ein Auftrag durchläuft. Akkumulierende Snapshot-Datensätze werden überprüft und überschrieben, während der Prozess seine Schritte von Anfang bis Ende durchläuft. Akkumulierende Snapshot-Faktentabellen sind aufgrund dieser Überschreibungsstrategie im Allgemeinen viel kleiner als die beiden anderen Typen.