Die Datenhierarchie in Datastream besteht aus folgenden Elementen:
- Stream: Setzt sich aus einer Datenquelle und einem Ziel zusammen.
- Objekt: ein Teil eines Streams, z. B. eine Tabelle aus einer bestimmten Datenbank.
- Ereignis: eine einzelne Änderung, die von einem bestimmten Objekt generiert wird, z. B. eine Datenbankeinfügung.
Streams, Objekte und Ereignisse sind mit Daten und Metadaten verknüpft. Diese Daten und Metadaten können für verschiedene Zwecke verwendet werden.
Über Ereignisse
Jedes Ereignis besteht aus drei Datentypen:
- Ereignisdaten: Dies stellt die Änderung der Daten selbst aus dem Objekt dar, das aus der Streamquelle stammt. Jedes Ereignis enthält die gesamte geänderte Zeile.
- Allgemeine Metadaten: Diese Metadaten werden bei jedem von Datastream generierten Ereignis angezeigt, das für Aktionen verwendet wird, z. B. um doppelte Daten am Ziel zu entfernen.
- Quellspezifische Metadaten: Diese Metadaten werden bei jedem Ereignis angezeigt, das von einer bestimmten Streamquelle generiert wird. Diese Metadaten variieren je nach Quelle.
Ereignisdaten
Ereignisdaten sind die Nutzlast jeder Änderung aus einem bestimmten Objekt, das aus einer Streamquelle stammt.
Ereignisse sind entweder im Avro- oder im JSON-Format.
Bei Verwendung des Avro-Formats enthält das Ereignis für jede Spalte den Spaltenindex und -wert. Mit dem Spaltenindex können der Spaltenname und der einheitliche Typ aus dem Schema im Avro-Header abgerufen werden.
Bei Verwendung des JSON-Formats enthält das Ereignis für jede Spalte den Spaltennamen und -wert.
Ereignismetadaten können verwendet werden, um Informationen zum Ursprung des Ereignisses zu erfassen und doppelte Daten am Ziel zu entfernen und Ereignisse nach dem nachgelagerten Nutzer zu sortieren.
In den folgenden Tabellen werden die Felder und Datentypen für allgemeine und quellenspezifische Ereignismetadaten aufgelistet und beschrieben.
Generische Metadaten
Diese Metadaten sind für alle Arten von Streams einheitlich.
| Feld | Avro-Typ | JSON-Typ | Beschreibung |
|---|---|---|---|
stream_name |
String | String | Der eindeutige Stream-Name, wie er bei der Erstellung definiert wurde. |
read_method |
String | String | Gibt an, ob die Daten aus der Quelle mit einer CDC-Methode (Change Data Capture) als Teil des verlaufsbezogenen Backfills oder als Teil einer Ergänzungsaufgabe gelesen wurden, die beim Rollback einer Transaktion während der CDC-Replikation erstellt wird. Zulässige Werte:
|
object |
String | String | Der Name, mit dem verschiedene Ereignistypen gruppiert werden, in der Regel der Name der Tabelle oder des Objekts in der Quelle. |
schema_key |
String | String | Eine eindeutige Kennung für das einheitliche Schema des Ereignisses. |
uuid |
String | String | Eine eindeutige Kennung für das Ereignis, die von Datastream generiert wird. |
read_timestamp |
timestamp-millis | String | Der Zeitstempel (UTC), wenn der Datensatz von Datastream gelesen wurde (der Epochenzeitstempel in Millisekunden). |
source_timestamp |