Dimensionale Modellierung in Microsoft Fabric Warehouse: Faktentabellen

Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric

Hinweis

Dieser Artikel ist Teil der Dimensionsmodellierungsreihe von Artikeln. Diese Serie konzentriert sich auf Anleitungen und bewährte Entwurfspraktiken im Zusammenhang mit der Dimensionale Modellierung in Microsoft Fabric Warehouse.

Dieser Artikel enthält Anleitungen und bewährte Methoden zum Entwerfen von Faktentabellen in einem dimensionalen Modell. Er bietet eine praktische Anleitung für das Warehouse in Microsoft Fabric, das viele T-SQL-Funktionen wie die Erstellung von Tabellen und die Verwaltung von Daten in Tabellen unterstützt. Sie haben also die vollständige Kontrolle über die Erstellung Ihrer Dimensionsmodelltabellen und das Laden dieser mit Daten.

Hinweis

In diesem Artikel bezieht sich der Begriff Data Warehouse auf ein Enterprise Data Warehouse, das umfassende Integration kritischer Daten in der gesamten Organisation bereitstellt. Im Gegensatz dazu bezieht sich der eigenständige Begriff Warehouse auf ein Fabric Warehouse, bei dem es sich um eine Software-as-a-Service (SaaS)-relationale Datenbank handelt, die Sie zum Implementieren eines Data Warehouse verwenden können. Aus Gründen der Klarheit wird in diesem Artikel letzteres als Fabric Warehouse erwähnt.

Tipp

Wenn Sie noch keine Erfahrung mit der dimensionalen Modellierung haben, ist diese Artikelserie Ihr erster Schritt. Sie soll keine vollständige Diskussion über die dimensionale Modellierung von Designs bieten. Weitere Informationen finden Sie direkt in weit verbreiteten Veröffentlichungen wie The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3. Ausgabe, 2013) von Ralph Kimball und anderen.

In einem dimensionalen Modell speichert eine Faktentabelle Measures, die Beobachtungen oder Ereignissen zugeordnet sind. Sie kann Kundenaufträge, Lagerbestände, Wechselkurse, Temperaturwerte und vieles mehr speichern.

Faktentabellen enthalten Measures, die in der Regel numerische Spalten sind, z. B. die Menge der Verkaufsaufträge. Analyseabfragen fassen Measures (mithilfe von Summen, Anzahl, Mittelwert und anderen Funktionen) im Kontext von Dimensionsfiltern und Gruppierungen zusammen.

Faktentabellen enthalten auch Dimensionsschlüssel, die die Dimensionalität der Fakten bestimmen. Die Dimensionsschlüsselwerte bestimmen die Granularität der Fakten, also die Atomebene, durch die Fakten definiert werden. Ein Dimensionsschlüssel für das Bestelldatum in einer Faktentabelle für den Verkauf legt beispielsweise die Granularität der Fakten auf Datumsebene fest, während ein Dimensionsschlüssel für das Zieldatum in einer Faktentabelle für das Verkaufsziel die Granularität auf Quartalsebene festlegen könnte.

Hinweis

Obwohl es möglich ist, Fakten mit einer höheren Granularität zu speichern, ist es nicht einfach, Messwerte auf niedrigere Granularitätsebenen (falls erforderlich) aufzuteilen. Schiere Datenmengen in Verbindung mit analytischen Anforderungen können ein triftiger Grund für die Speicherung von Fakten mit höherer Granularität sein, allerdings auf Kosten detaillierter Analysen.

Um Faktentabellen leicht zu identifizieren, wird ihren Namen normalerweise ein f_ oder Fact_ vorangestellt.

Struktur der Faktentabelle

Um die Struktur einer Faktentabelle zu beschreiben, betrachten Sie das folgende Beispiel einer Umsatzfaktentabelle namens f_Sales. In diesem Beispiel werden gute Entwurfspraktiken angewandt. Jede der Spaltengruppen wird in den folgenden Abschnitten beschrieben.

CREATE TABLE f_Sales
(
    --Dimension keys
    OrderDate_Date_FK INT NOT NULL,
    ShipDate_Date_FK INT NOT NULL,
    Product_FK INT NOT NULL,
    Salesperson_FK INT NOT NULL,
    <…>
    
    --Attributes
    SalesOrderNo INT NOT NULL,
    SalesOrderLineNo SMALLINT NOT NULL,
    
    --Measures
    Quantity INT NOT NULL,
    <…>
    
    --Audit attributes
    AuditMissing BIT NOT NULL,
    AuditCreatedDate DATE NOT NULL,
    AuditCreatedBy VARCHAR(15) NOT NULL,
    AuditLastModifiedDate DATE NOT NULL,
    AuditLastModifiedBy VARCHAR(15) NOT NULL
);

Primary key (Primärschlüssel)

Wie im Beispiel hat auch die Beispielfaktentabelle keinen Primärschlüssel. Das liegt daran, dass sie in der Regel keinen nützlichen Zweck erfüllt und den Speicherplatz der Tabelle unnötig vergrößern würde. Ein Primärschlüssel wird oft durch die Menge der Dimensionsschlüssel und Attribute impliziert.

Tasten für Dimensionen

Die Beispielfaktentabelle hat verschiedene Dimensionsschlüssel, die die Dimensionalität der Faktentabelle bestimmen. Dimensionsschlüssel sind Verweise auf die Ersatzschlüssel (oder übergeordnete Attribute) in den verbundenen Dimensionen.

Hinweis

Es handelt sich um eine ungewöhnliche Faktentabelle, die nicht mindestens einen Dimensionsschlüssel für das Datum enthält.

Eine Faktentabelle kann mehrmals auf eine Dimension verweisen. In diesem Fall handelt es sich um eine sogenannte Dimension mit unterschiedlichen Rollen. In diesem Beispiel hat die Faktentabelle die Dimensionsschlüssel OrderDate_Date_FK und ShipDate_Date_FK. Jeder Dimensionsschlüssel steht für eine bestimmte Rolle, aber es gibt nur eine physische Datumsdimension.

Es ist eine gute Praxis, jeden Dimensionsschlüssel als NOT NULL zu setzen. Beim Laden der Faktentabelle können Sie spezielle Dimensionselemente verwenden, um fehlende, unbekannte, N/A- oder Fehlerzustände (falls erforderlich) darzustellen.

Attribute

Die Beispiel-Faktentabelle weist zwei Attribute auf. Attribute liefern zusätzliche Informationen und legen die Granularität von Faktendaten fest, sind aber weder Dimensionsschlüssel noch Dimensionsattribute noch Measures. In diesem Beispiel speichern Attributspalten Verkaufsauftragsinformationen. Andere Beispiele könnten Verfolgungsnummern oder Ticketnummern sein. Für Analysezwecke könnte ein Attribut eine degenerate Dimension bilden.

Measures

Die Beispiel-Faktentabelle enthält auch Measures, z. B. die Quantity-Spalte. Measurespalten sind in der Regel numerische und häufig additiv (d. h. sie können addiert und mithilfe anderer Aggregationen zusammengefasst werden). Weitere Informationen finden Sie weiter unten in diesem Artikel unter Measure-Typen.

Überwachungsattribute

Die Beispiel-Faktentabelle verfügt auch über verschiedene Überwachungsattribute. Die Überwachungsattribute sind optional. Sie ermöglichen es Ihnen, nachzuverfolgen, wann und wie Faktendatensätze erstellt oder geändert wurden, und sie können Diagnose- oder Problembehandlungsinformationen enthalten, die während Extraktions-, Transformations- und Ladeprozessen (ETL) erhoben wurden. Sie möchten zum Beispiel nachverfolgen, wer (oder welcher Prozess) wann eine Zeile aktualisiert hat. Überwachungsattribute können auch bei der Diagnose eines schwierigen Problems helfen, etwa wenn ein ETL-Prozess unerwartet abbricht.

Größe der Faktentabelle

Faktentabellen variieren in der Größe. Ihre Größe entspricht der Dimensionalität, Granularität, Anzahl von Measures und der Menge des Verlaufs. Im Vergleich zu Dimensionstabellen sind Faktentabellen schmaler (weniger Spalten), aber groß oder sogar riesig in Bezug auf Zeilen (mehr als eine Milliarde).

Faktendesignkonzepte

In diesem Abschnitt werden verschiedene Faktenentwurfskonzepte beschrieben.

Faktentabellentypen

Es gibt drei Typen von Faktentabellen:

  • Transaktions-Faktentabellen
  • Periodische Momentaufnahme Faktentabellen
  • Akkumulieren von Faktentabellen für Momentaufnahmen

Transaktions-Faktentabellen

In einer Transaktions-Faktentabelle werden Geschäftsereignisse oder Transaktionen gespeichert. Jede Zeile speichert Fakten in Bezug auf Dimensionsschlüssel und Measures sowie optional andere Attribute. Alle Daten sind beim Einfügen vollständig bekannt und werden nie geändert (mit Ausnahme von Fehlern).

In der Regel speichern Transaktions-Faktentabellen Fakten auf der niedrigsten Ebene der Granularität und sie enthalten Measures, die in allen Dimensionen additiv sind. Eine Verkaufsfaktentabelle, die jede Verkaufsauftragszeile speichert, ist ein gutes Beispiel für eine Transaktionsfaktentabelle.

Periodische Momentaufnahme Faktentabellen

In einer regelmäßigen Momentaufnahme-Faktentabelle werden Messungen zu einer vordefinierten Zeit oder bestimmten Intervallen gespeichert. Sie bietet eine Zusammenfassung der Schlüsselmetriken oder Leistungsindikatoren im Laufe der Zeit und ist daher nützlich für Trendanalysen und die Überwachung von Veränderungen im Laufe der Zeit. Measures sind immer semiadditiv (weiter unten beschrieben).

Eine Bestands-Faktentabelle ist ein gutes Beispiel für eine regelmäßige Momentaufnahmetabelle. Sie wird täglich mit dem Tagesendbestand eines jeden Produkts geladen.

Regelmäßige Momentaufnahmentabellen können anstelle einer Transaktions-Faktentabelle verwendet werden, wenn das Aufzeichnen großer Transaktionsmengen teuer ist und keine hilfreiche analytische Anforderung unterstützt. So kann es z. B. sein, dass es an einem Tag Millionen von Bestandsbewegungen gibt (die in einer Transaktionsfaktentabelle gespeichert werden könnten), Ihre Analyse sich aber nur auf die Trends der Tagesendbestände bezieht.

Akkumulieren von Faktentabellen für Momentaufnahmen

Eine akkumulierte Momentaufnahme-Faktentabelle speichert Messungen, die sich über einen gut definierten Zeitraum oder Workflow ansammeln. Sie erfasst oft den Status eines Unternehmensablaufs in verschiedenen Phasen oder Meilensteinen, deren Abschluss Tage, Wochen oder sogar Monate dauern kann.

Eine Faktenzeile wird bald nach dem ersten Ereignis in einem Prozess geladen, und dann wird die Zeile bei jedem Auftreten eines Meilensteinereignisses in einer vorhersagbaren Sequenz aktualisiert. Die Aktualisierungen werden fortgesetzt, bis der Vorgang abgeschlossen ist.

Die Akkumulation der Momentaufnahme-Faktentabelle verfügt über mehrere Datumsdimensionsschlüssel, die jeweils ein Meilensteinereignis darstellen. Einige Dimensionsschlüssel zeichnen möglicherweise einen N/A-Zustand auf, bis der Prozess zu einem bestimmten Meilenstein gelangt. Measures erfassen in der Regel Dauern. Die Dauer zwischen Meilensteinen kann wertvolle Einblicke in einen Geschäftsworkflow oder Assemblyprozess bieten.

Measuretypen

Measures sind in der Regel numerisch und häufig additiv. Einige Measures können jedoch nicht immer hinzugefügt werden. Diese Measures werden entweder als semi-additiv oder nicht-additiv eingestuft.

Reaktive Measures

Ein additives Measure kann in jeder beliebigen Dimension addiert werden. Zum Beispiel sind Auftragsmenge und Verkaufserlös additive Größen (vorausgesetzt, der Umsatz wird in einer einzigen Währung erfasst).

Semiadditive Measures

Ein semi-additives Measure kann nur in bestimmten Dimensionen addiert werden.

Hier sind einige Beispiele für semiadditive Measures.

  • Jedes Measure in einer Faktentabelle für eine periodische Momentaufnahme kann nicht über andere Zeiträume summiert werden. Sie sollten zum Beispiel nicht das Alter eines nächtlich entnommenen Lagerartikels summieren, aber Sie könnten das Alter aller Lagerartikel in einem Regal jede Nacht summieren.
  • Eine Bestandskennzahl in einer Bestandsfaktentabelle kann nicht über andere Produkte summiert werden.
  • Umsatzerlöse in einer Umsatzfaktentabelle, die einen Währungsdimensionsschlüssel hat, können nicht über Währungen hinweg summiert werden.

Nicht-additive Measures

Ein nicht-additives Measure kann nicht in jeder beliebigen Dimension addiert werden. Ein Beispiel ist die Temperaturmessung, bei der es nicht sinnvoll ist, sie zu anderen Messwerten zu addieren.

Weitere Beispiele sind Tarife, z. B. VK-Preise und Verhältnisse. Es gilt jedoch als bessere Praxis, die zur Berechnung des Verhältnisses verwendeten Werte zu speichern, so dass das Verhältnis bei Bedarf berechnet werden kann. So könnte beispielsweise ein prozentualer Rabatt auf einen Verkaufsfaktor als Rabattbetrag gespeichert werden (der durch die Umsatzerlöskennzahl geteilt wird). Oder das Alter eines Lagerartikels im Regal sollte nicht über die Zeit summiert werden, aber Sie könnten einen Trend im Durchschnittsalter der Lagerartikel beobachten.

Obwohl einige Measures nicht addiert werden können, sind sie weiterhin gültige Measures. Sie können mithilfe der Anzahl, der diskreten Anzahl, des Minimums, des Maximums, des Mittelwerts und anderen aggregiert werden. Auch nicht-additive Measures können additiv werden, wenn sie in Berechnungen verwendet werden. So ergibt beispielsweise der VK-Preis multipliziert mit der Auftragsmenge den Verkaufserlös, der additiv ist.

Faktenlose Faktentabellen

Wenn eine Faktentabelle keine Measurespalten enthält, wird sie als faktenlose Faktentabelle bezeichnet. Eine faktenlose Faktentabelle zeichnet typischerweise Ereignisse oder Vorkommnisse auf, z. B. die Teilnahme von Schülern am Unterricht. Aus analytischer Sicht kann eine Messung durch das Zählen von Faktenzeilen erreicht werden.

Aggregierte Faktentabellen

Eine aggregierte Faktentabelle stellt ein Rollup einer Basis-Faktentabelle auf eine niedrigere Dimensionalität und/oder höhere Granularität dar. Der Zweck besteht darin, die Abfrageleistung für häufig abgefragte Dimensionen zu beschleunigen.

Hinweis

Ein semantisches Power BI-Modell kann benutzerdefinierte Aggregationen erzeugen, um das gleiche Ergebnis zu erzielen, oder die Data-Warehouse-Aggregat-Faktentabelle verwenden, indem der DirectQuery-Speichermodus verwendet wird.

Im nächsten Artikel dieser Reihe erfahren Sie mehr über Anleitungen und Bewährte Methoden zum Laden von dimensionalen Modelltabellen.