Fakten- und Dimensionstabellen

Stellen Sie sich beim Entwerfen des Schemas für eine Azure Data Explorer-Datenbank vor, dass Tabellen im Allgemeinen zu einer von zwei Kategorien gehören.

Faktentabellen

Faktentabellen sind Tabellen, deren Datensätze unveränderliche "Fakten" sind, z. B. Dienstprotokolle und Messinformationen. Datensätze werden schrittweise in streamingweise oder in großen Blöcken an die Tabelle angefügt. Die Datensätze verbleiben dort, bis sie aus Kosten- oder Wertverlust entfernt werden. Datensätze werden andernfalls nie aktualisiert.

Entitätsdaten werden manchmal in Faktentabellen gespeichert, bei denen sich die Entitätsdaten langsam ändern. Beispielsweise Daten über eine physische Entität, z. B. ein Bürogerät, das den Standort selten ändert. Da Daten in Kusto unveränderlich sind, besteht die gängige Praxis darin, dass jede Tabelle zwei Spalten enthält:

  • Eine Identitätsspalte (string), die die Entität identifiziert
  • Zeitstempelspalte der letzten Änderung (datetime)

Anschließend wird nur der letzte Datensatz für jede Entitätsidentität abgerufen.

Dimensionstabellen

Dimensionstabellen:

  • Speichern von Verweisdaten, z. B. Nachschlagetabellen von einem Entitätsbezeichner zu dessen Eigenschaften
  • Momentaufnahme-ähnlichen Daten in Tabellen enthalten, deren gesamte Inhalte sich in einer einzelnen Transaktion ändern

Dimensionstabellen werden nicht regelmäßig mit neuen Daten erfasst. Stattdessen wird der gesamte Dateninhalt mit Vorgängen wie .set-or-replace, .move-Blöcken oder UMBENENNEN-Tabellen gleichzeitig aktualisiert.

Manchmal können Dimensionstabellen von Faktentabellen abgeleitet werden. Dieser Prozess kann über eine materialisierte Ansicht der Faktentabelle mit einer Abfrage für die Tabelle erfolgen, die den letzten Datensatz für jede Entität akzeptiert.

Differenzieren von Fakten- und Dimensionstabellen

Es gibt Prozesse in Kusto, die zwischen Faktentabellen und Dimensionstabellen unterscheiden. Einer davon ist der fortlaufende Export.

Diese Mechanismen werden garantiert, dass Daten in tatsächlichen Tabellen genau einmal verarbeitet werden. Sie basieren auf dem Datenbankcursormechanismus .

Beispielsweise werden bei jeder Ausführung eines Auftrags für den fortlaufenden Export alle Datensätze exportiert, die seit der letzten Aktualisierung des Datenbankcursors erfasst wurden. Aufträge für den fortlaufenden Export müssen zwischen Faktentabellen und Dimensionstabellen unterscheiden. Faktentabellen verarbeiten nur neu erfasste Daten, und Dimensionstabellen werden als Nachschlagevorgänge verwendet. Daher muss die gesamte Tabelle berücksichtigt werden.

Es gibt keine Möglichkeit, eine Tabelle als "Faktentabelle" oder "Dimensionstabelle" zu markieren. Die Art und Weise, wie Daten in der Tabelle erfasst werden und wie die Tabelle verwendet wird, identifiziert den Typ.