Auf dieser Seite wird beschrieben, wie Sie Datastream so konfigurieren, dass Sie Daten in BigQuery-Datasets schreiben können.
Erforderliche Berechtigungen
Datastream nutzt die integrierte BigQuery-Unterstützung für CDC-Updates (Change Data Capture). Datastream aktualisiert die BigQuery-Tabellen durch Verarbeitung und Anwendung von gestreamten Änderungen mit der BigQuery Storage Write API.
Die Berechtigungen, die für die Verwendung der API und das Erfassen von Daten in BigQuery erforderlich sind, werden der Rolle Datastream Service Agent gewährt.
BigQuery als Ziel konfigurieren
Führen Sie die folgenden Schritte aus, um Datastream für das Streaming zu BigQuery zu konfigurieren:
- Achten Sie darauf, dass die BigQuery API in Ihrem Google Cloud-Projekt aktiviert ist.
- Wenn Sie die Option Einzelnes Dataset für alle Schemas verwenden möchten, erstellen Sie ein Dataset in BigQuery.
- Ziel-Dataset für den Stream konfigurieren
- Schreibmodus konfigurieren
- Geben Sie das Limit für die maximale Veralterung der Daten für Ihren Stream an.
Ziel-Datasets konfigurieren
Datasets sind Container auf oberster Ebene, mit denen Sie den Zugriff auf Ihre BigQuery-Tabellen organisieren und steuern können.
Wenn Sie Datasets für das BigQuery-Ziel mit Datastream konfigurieren, können Sie eine der folgenden Optionen auswählen:
Dataset für jedes Schema: Das Dataset wird anhand des Schemanamens der Quelle ausgewählt oder automatisch von Datastream am angegebenen BigQuery-Standort erstellt. Daher hat jedes Schema in der Quelle ein entsprechendes Dataset in BigQuery. Wenn Sie beispielsweise eine MySQL-Quelle haben und diese Quelle eine
mydb
-Datenbank und eineemployees
-Tabelle in der Datenbank enthält, erstellt Datastream dasmydb
-Dataset und dieemployees
-Tabelle in BigQuery.Wenn Sie diese Option auswählen, erstellt Datastream Datasets in dem Projekt, das den Stream enthält. Sie müssen die Datasets nicht in derselben Region wie Ihren Stream erstellen. Wir empfehlen jedoch, alle Ressourcen für den Stream sowie Datasets in derselben Region zu platzieren, um Kosten und Leistung zu optimieren.
Einzelnes Dataset für alle Schemas: Sie wählen ein BigQuery-Dataset für den Stream aus. Datastream streamt alle Daten in dieses Dataset. Für das ausgewählte Dataset erstellt Datastream alle Tabellen als
<schema>_<table>
.Wenn Sie beispielsweise eine MySQL-Quelle mit der Datenbank
mydb
und der Tabelleemployees
in der Datenbank haben, erstellt Datastream die Tabellemydb_employees
im ausgewählten Dataset.
Schreibmodus konfigurieren
Es gibt zwei Modi, mit denen Sie festlegen können, wie Ihre Daten in BigQuery geschrieben werden sollen:
Zusammenführen: Dies ist der Standardschreibmodus. Wenn diese Option ausgewählt ist, wird in BigQuery die Art und Weise berücksichtigt, wie Ihre Daten in der Quelldatenbank gespeichert sind. Das bedeutet, dass Datastream alle Änderungen an Ihren Daten in BigQuery schreibt und BigQuery die Änderungen dann mit vorhandenen Daten zusammenführt. So werden endgültige Tabellen erstellt, die Replikate der Quelltabellen sind. Im Zusammenführungsmodus wird kein Verlaufsdatensatz der Änderungsereignisse geführt. Wenn Sie beispielsweise eine Zeile einfügen und dann aktualisieren, werden in BigQuery nur die aktualisierten Daten beibehalten. Wenn Sie die Zeile dann aus der Quelltabelle löschen, speichert BigQuery keinen Datensatz mehr für diese Zeile.
Nur anhängen: Im Schreibmodus „Nur anhängen“ können Sie Daten als Stream von Änderungen (
INSERT
-,UPDATE-INSERT
-,UPDATE-DELETE
- undDELETE
-Ereignisse) in BigQuery einfügen. Verwenden Sie diesen Modus, wenn Sie den bisherigen Status Ihrer Daten beibehalten müssen. Die folgenden Szenarien veranschaulichen den Nur-Anhängen-Schreibmodus:- Erster Backfill: Nach dem ersten Backfill werden alle Ereignisse als Ereignisse vom Typ
INSERT
mit demselben Zeitstempel, derselben UUID (Universally Unique Identifier) und derselben Änderungsfolgenummer in BigQuery geschrieben. - Aktualisierung des Primärschlüssels: Wenn sich ein Primärschlüssel ändert, werden zwei Zeilen in BigQuery geschrieben:
- Eine
UPDATE-DELETE
-Zeile mit dem ursprünglichen Primärschlüssel - Eine
UPDATE-INSERT
-Zeile mit dem neuen primären Schlüssel
- Eine
- Zeilenaktualisierung: Wenn Sie eine Zeile aktualisieren, wird eine einzelne
UPDATE-INSERT
-Zeile in BigQuery geschrieben. - Löschen von Zeilen: Wenn Sie eine Zeile löschen, wird eine einzelne
DELETE
-Zeile in BigQuery geschrieben.
- Erster Backfill: Nach dem ersten Backfill werden alle Ereignisse als Ereignisse vom Typ
Limit für veraltete Daten festlegen
Je nach konfiguriertem Limit für die Veralterung wendet BigQuery die Änderungen laufend im Hintergrund oder bei der Abfrageausführung an. Wenn Datastream eine neue Tabelle in BigQuery erstellt, wird die Option max_staleness
der Tabelle entsprechend dem aktuellen Wert für das Limit für die Veralterung von Daten für den Stream festgelegt.
Weitere Informationen zur Verwendung von BigQuery-Tabellen mit der Option max_staleness
finden Sie unter Tabellenalter.