API aktivieren
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 Google Cloud Console nach der 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. Sie können die maximale Dateigröße und die maximale Zeitüberschreitung mit der Datastream API anpassen.
- 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 Datenaufnahme kann gemäß der Cloud Storage API erfolgen.
- Die maximale Ereignisgröße beim Streamen von Daten in Cloud Storage beträgt 30 MB.
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.