Auf dieser Seite wird beschrieben, wie Sie Datastream so konfigurieren, dass Sie Daten in BigQuery-Datasets schreiben können.
Erforderliche Berechtigungen
Datastream verwendet die integrierte BigQuery-Unterstützung für CDC-Updates (Change Data Capture). Datastream aktualisiert die BigQuery-Tabellen durch Verarbeitung und Anwendung von gestreamten Änderungen mithilfe der BigQuery Storage Write API (gRPC).
Die für die Verwendung der API und die Aufnahme von Daten in BigQuery erforderlichen Berechtigungen werden der Datastream-Dienst-Agent Rolle gewährt.
BigQuery als Ziel konfigurieren
So konfigurieren Sie Datastream für das Streaming zu BigQuery:
- Achten Sie darauf, dass die BigQuery API in Ihrem Google Cloud Projekt aktiviert ist.
- Wenn Sie die Option Ein Dataset für alle Schemas verwenden möchten, erstellen Sie ein Dataset in BigQuery.
- Konfigurieren Sie das Ziel-Dataset für Ihren Stream.
- Konfigurieren Sie den Schreibmodus.
- Geben Sie das maximale Limit für die Veralterung von 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 in dem angegebenen BigQuery-Standort ausgewählt oder automatisch von Datastream erstellt. Es basiert auf dem Schemanamen der Quelle. 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 das Datasetmydbund die Tabelleemployeesin BigQuery.Datastream erstellt Datasets in dem von Ihnen ausgewählten Projekt. Standardmäßig ist Ihr aktuelles Projekt ausgewählt. In der Liste der Datasets werden die im ausgewählten Projekt verfügbaren Datasets angezeigt. Sie müssen die Datasets zwar nicht in derselben Region wie Ihren Stream erstellen, aber wir empfehlen, alle Ressourcen für den Stream sowie Datasets in derselben Region zu platzieren, um Kosten und Leistung zu optimieren.
Ein 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 von Ihnen ausgewählte Dataset erstellt Datastream alle Tabellen als
<schema>_<table>.Wenn Sie beispielsweise eine MySQL-Quelle haben und diese Quelle eine
mydbDatenbank und eineemployeesTabelle in der Datenbank enthält, erstellt Datastream diemydb_employeesTabelle in dem Dataset, das Sie auswählen.Sie können ein Dataset aus einem beliebigen Google Cloud Projekt auswählen. Standardmäßig werden Datasets aus dem aktuellen Projekt angezeigt. Sie können auch ein neues Dataset im ausgewählten Projekt erstellen.
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, spiegelt BigQuery die Art und Weise wider, 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 finale Tabellen erstellt, die Replikate der Quelltabellen sind. Im Zusammenführungsmodus wird kein Verlauf der Änderungsereignisse gespeichert. Wenn Sie beispielsweise eine Zeile einfügen und dann aktualisieren, werden in BigQuery nur die aktualisierten Daten gespeichert. Wenn Sie die Zeile dann aus der Quelltabelle löschen, werden in BigQuery keine Aufzeichnungen mehr zu dieser Zeile gespeichert.
Nur anhängen: Mit dem Schreibmodus „Nur anhängen“ können Sie Daten als Stream von Änderungen (
INSERT,UPDATE-INSERT,UPDATE-DELETEundDELETE-Ereignisse) zu BigQuery hinzufügen. Verwenden Sie diesen Modus, wenn Sie den Verlauf Ihrer Daten beibehalten müssen.Die folgenden Szenarien veranschaulichen den Schreibmodus „Nur anhängen“:
- Erste Backfill-Operation: Nach der ersten Backfill-Operation werden alle Ereignisse als
INSERTEreignisse mit demselben Zeitstempel, derselben UUID (Universally Unique Identifier) und derselben Änderungssequenznummer 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ärschlüssel
- Eine
- Zeilenaktualisierung: Wenn Sie eine Zeile aktualisieren, wird eine einzelne
UPDATE-INSERTZeile in BigQuery geschrieben. - Zeilenlöschung: Wenn Sie eine Zeile löschen, wird eine einzelne
DELETEZeile in BigQuery geschrieben.
- Erste Backfill-Operation: Nach der ersten Backfill-Operation werden alle Ereignisse als
Limit für die Veralterung von Daten angeben
Je nach konfiguriertem Limit für die Veralterung von Daten wendet BigQuery die Änderungen an der Quelle laufend im Hintergrund oder bei der Abfrageausführung an. Wenn Datastream eine neue Tabelle in BigQuery erstellt, wird die Option max_staleness der Tabelle gemäß dem aktuellen Wert für das Limit für die Veralterung von Daten für den Stream festgelegt. So wird sichergestellt, dass die Tabelle das angewendete Limit für die Veralterung nicht überschreitet. Das Limit für die Veralterung von Daten hat keine Auswirkungen auf die Häufigkeit der BigQuery-Zusammenführungsjobs.
Weitere Informationen zur Verwendung von BigQuery-Tabellen mit der max_staleness Option finden Sie unter Veralterung von Tabellen.