Übersicht
Das Streamziel für Datastream ist Cloud Storage.
In diesem Abschnitt geht es um folgendes Thema:
- Dieses Streamziel einrichten
- Ziel-Bucket und -Präfix angeben, um zu bestimmen, wohin die Daten am Ziel geschrieben werden
- Verhalten im Zusammenhang mit den Daten, die an das Ziel geschrieben werden
Einrichtung
Die Aktivierung der Datastream API ist ausreichend, wenn sich der Cloud Storage-Ziel-Bucket im selben Projekt wie Datastream befindet.
Wenn Sie in einen Bucket in einem anderen Projekt schreiben, müssen Sie dem mit der Datastream-Berechtigung verknüpften Dienstkonto Zugriff auf den Bucket erteilen.
- Rufen Sie die für das Dienstkonto verwendete E-Mail-Adresse ab. Suchen Sie dazu auf der Startseite der Cloud Console die Projektnummer. Die E-Mail-Adresse des Dienstkontos lautet
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com
. - Weisen Sie dieser E-Mail-Adresse die erforderlichen Berechtigungen zum Schreiben in den Ziel-Bucket zu (normalerweise die Berechtigungen
roles/storage.objectViewer
,roles/storage.objectCreator
undroles/storage.legacyBucketReader
).
Ziel-Bucket und -Präfix angeben
Geben Sie in der Stream-Konfiguration den Projektnamen, den Bucket-Namen und das optionale Dateipräfix an, um festzulegen, wohin die Daten geschrieben werden.
Schreibverhalten
- Die Daten für einen bestimmten Stream werden in das bereitgestellte Bucket- oder Dateipräfix unter
[bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]
geschrieben. - Der Objektname im Pfad für Datenbankquellen ist der Schemaname, gefolgt vom Tabellennamen (getrennt durch einen Unterstrich „_“).
- Der Zeitstempel im Pfad (hh/mm) ist der Quellzeitstempel aus den Ereignismetadaten.
- Bei Backfill-Ereignissen stellt der Zeitstempel die Zeit dar, zu der die Backfill-Aufgabe gestartet wurde. Das ist in der Regel der Zeitpunkt, zu dem der Stream gestartet oder der Backfill manuell ausgelöst wurde.
- Bei CDC-Ereignissen stellt der Zeitstempel den Zeitpunkt dar, zu dem der Eintrag an der Quelle geändert wurde.
- Dateien werden rotiert, wenn die maximale Dateigröße oder das maximale Zeitlimit erreicht wurde, je nachdem, was zuerst eintritt.
- Außerdem werden Dateien jedes Mal rotiert, wenn eine Änderung des Quellschemas erkannt wird (z. B. wenn eine neue Spalte hinzugefügt wird).
- Es kann mehrere Dateien innerhalb desselben Pfades für dieselbe Minute geben.
- Die Nutzung der Daten kann gemäß der Cloud Storage API erfolgen.
In einigen Fällen gibt es bei der ersten Ausführung eines Streams eine Überschneidung zwischen Backfill und CDC, was zu doppelten Ereignissen führt. Dies geschieht, wenn Datastream mit dem Lesen der aktuellen Datenbanklogdatei beginnt, die vor dem Starten des Streams erstellt wurde, und diese Logdatei Ereignisse enthält, die auch vom Backfill erfasst werden. Dieses Verhalten ist normal und doppelte Ereignisse können bei Bedarf mithilfe der Ereignismetadaten beseitigt werden.