Wenn Sie Daten in Datastream nach Cloud Storage streamen, können Sie Änderungsereignisse der Quelle in Google Cloud in Objektcontainern speichern, die als Buckets bezeichnet werden. Wenn Sie Daten in Cloud Storage-Buckets replizieren, organisiert Datastream Dateien nach Objektnamen und Ereigniszeitstempel für die Nutzung mit der Cloud Storage API.
Aktivieren Sie die Datastream API und geben Sie den Ziel-Bucket und das Dateipräfix an, um das Ziel zu konfigurieren. Wenn sich Ihr Bucket in einem anderen Projekt befindet, müssen Sie auch projektübergreifende Dienstkontoberechtigungen gewähren.
API aktivieren
Das Aktivieren 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.. - Weisen Sie dieser E-Mail-Adresse die erforderlichen Berechtigungen zum Schreiben in den Ziel-Bucket zu (normalerweise die Berechtigungen
roles/storage.objectViewer,roles/storage.objectCreatorundroles/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.
Verhalten beim Schreiben
- 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 gibt der Zeitstempel an, wann die Daten aus der Quelle abgerufen wurden. Bei der Salesforce-Quelle gibt der Zeitstempel an, wann der Eintrag zuletzt geändert 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 maximalen Zeitlimitwerte 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 Daten können gemäß der Cloud Storage API genutzt werden.
- Die maximale Ereignisgröße beim Streamen von Daten in Cloud Storage beträgt 100 MB.
- Jedes nicht alphanumerische Zeichen in einem Quellspaltennamen wird in der Zieldatei durch einen Unterstrich (
_) ersetzt.
In einigen Fällen, am häufigsten beim ersten Start eines Streams, gibt es 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.