Mit Datastream können Sie Änderungsdaten aus Ihren Quellen direkt in BigQuery-Tabellen replizieren, um Analysen nahezu in Echtzeit durchzuführen. Wenn Sie Daten in BigQuery streamen, können Sie den Schreibmodus „Zusammenführen“ oder „Nur anhängen“ auswählen und die Spalte datastream_metadata verwenden, um Änderungsereignisse zu verfolgen. Sie können auch Best Practices für die Kostenverwaltung anwenden, z. B. Slot-Reservierungen und die Optimierung der Tabellenaktualität, und bekannte Einschränkungen prüfen.
Verhalten beim Schreiben
Die maximale Ereignisgröße beim Streamen von Daten in BigQuery beträgt 20 MB.
Wenn Sie Ihren Stream konfigurieren, können Sie festlegen, wie Datastream Ihre Änderungsdaten in BigQuery schreibt. Weitere Informationen finden Sie unter Schreibmodus konfigurieren.
Tabellenmetadaten
Datastream hängt an jede Tabelle, die in das BigQuery-Ziel geschrieben wird, eine STRUCT-Spalte mit dem Namen datastream_metadata an.
Zusammenführungsschreibmodus
Wenn eine Tabelle einen Primärschlüssel in der Quelle hat, enthält die Spalte die folgenden Felder:
UUID: Dieses Feld hat den DatentypSTRING.SOURCE_TIMESTAMP: Dieses Feld hat den DatentypINTEGER.
Wenn eine Tabelle keinen Primärschlüssel hat, enthält die Spalte ein zusätzliches Feld: IS_DELETED. Dieses Feld hat den Datentyp BOOLEAN und gibt an, ob die Daten, die von Datastream an das Ziel gestreamt werden, mit einem DELETE-Vorgang an der Quelle verknüpft sind. Tabellen ohne Primärschlüssel sind schreibgeschützt.
Schreibmodus „Nur anhängen“
Die Spalte datastream_metadata enthält dieselben Felder für Tabellen mit und ohne Primärschlüssel:
UUID: Dieses Feld hat den DatentypSTRING.SOURCE_TIMESTAMP: Dieses Feld hat den DatentypINTEGER.CHANGE_SEQUENCE_NUMBER: Dieses Feld hat den DatentypSTRING. Dies ist eine interne Sequenznummer, die von Datastream für jedes Änderungsereignis verwendet wird.CHANGE_TYPE: Dieses Feld hat den DatentypSTRING. Gibt den Typ des Änderungsereignisses an:INSERT,UPDATE-INSERT,UPDATE-DELETEoderDELETE.SORT_KEYS: Dieses Feld enthält ein Array vonSTRING-Werten. Sie können die Werte verwenden, um die Änderungsereignisse zu sortieren.
BigQuery-Kosten kontrollieren
BigQuery-Kosten werden separat von Datastream in Rechnung gestellt. Informationen zum Kontrollieren Ihrer BigQuery-Kosten finden Sie unter BigQuery-CDC-Preise.
Best Practices für die Kostenverwaltung
Wenn Sie Datastream mit BigQuery als Ziel verwenden, sollten Sie die folgenden Best Practices für das Kostenmanagement beachten:
- BigQuery CDC-Kosten verstehen: Wenn Sie Datastream mit BigQuery als Ziel verwenden, umfasst Change Data Capture (CDC) Hintergrundzusammenführungsvorgänge. Standardmäßig werden BigQuery-CDC-Aufnahme-Hintergrundjobs, die ohne eine BigQuery-Reservierungszuweisung vom Typ
BACKGROUNDoderBACKGROUND_CHANGE_DATA_CAPTUREausgeführt werden, mit On-Demand-Preisen abgerechnet. - BigQuery-Reservierungen verwenden: Um die Kosten für CDC-Zusammenführungsjobs zu verwalten und zu begrenzen, empfehlen wir den Kauf einer BigQuery-Slot-Reservierung. Dadurch erhalten Sie eine feste Kapazität zu einem Festpreis, wodurch Ihre Kosten besser vorhersehbar sind. Weitere Informationen finden Sie unter BigQuery-Reservierung für die Verwendung mit CDC-Aufnahme konfigurieren.
max_stalenessoptimieren: Der Parametermax_stalenessin BigQuery ist ein direkter Kompromiss zwischen Datenaktualität und Kosten. Ein niedrigerer Wert bedeutet häufigere Zusammenführungsvorgänge und höhere Kosten, aber aktuellere Daten. Stellen Sie diesen Parameter so ein, dass er Ihren geschäftlichen Anforderungen an die Datenaktualität entspricht, ohne Ihr Budget zu überschreiten. Weitere Informationen finden Sie unter Veraltete Tabellen verwalten.
Bekannte Einschränkungen
Zu den bekannten Einschränkungen bei der Verwendung von BigQuery als Ziel gehören:
- Standardmäßig unterstützt Datastream nicht das Hinzufügen eines Primärschlüssels zu einer Tabelle, die bereits ohne Primärschlüssel in BigQuery repliziert wurde, oder das Entfernen eines Primärschlüssels aus einer Tabelle, die mit einem Primärschlüssel in BigQuery repliziert wurde. Wenn Sie solche Änderungen vornehmen müssen, wenden Sie sich an den Google-Support. Informationen zum Ändern der Primärschlüsseldefinition für eine Quelltabelle, die bereits einen Primärschlüssel hat, finden Sie unter Probleme diagnostizieren.
Primärschlüssel in BigQuery müssen einen der folgenden Datentypen haben:
DATEBOOLGEOGRAPHYINT64NUMERICBIGNUMERICSTRINGTIMESTAMPDATETIME
Tabellen, die Primärschlüssel mit nicht unterstützten Datentypen enthalten, werden von Datastream nicht repliziert.
BigQuery unterstützt keine Tabellennamen mit den Zeichen
.,$,/,@oder+. Datastream ersetzt solche Zeichen beim Erstellen von Zieltabellen durch Unterstriche.Beispiel:
table.namein der Quelldatenbank wird in BigQuery zutable_name.Weitere Informationen zu Tabellennamen in BigQuery finden Sie unter Tabellennamen.
BigQuery unterstützt nicht mehr als vier Clustering-Spalten. Wenn eine Tabelle mit mehr als vier Primärschlüsselspalten repliziert wird, verwendet Datastream vier Primärschlüsselspalten als Clustering-Spalten.
Datastream ordnet Datums- und Uhrzeitliterale außerhalb des zulässigen Bereichs, z. B. PostgreSQL-Datentypen für unendliche Werte, den folgenden Werten zu:
- Positiver
DATEim Wert von9999-12-31 - Negativer
DATE-Wert in Höhe von0001-01-01 - Positive
TIMESTAMPim Wert von9999-12-31 23:59:59.999000 UTC - Negativer
TIMESTAMP-Wert in Höhe von0001-01-01 00:00:00 UTC
- Positiver
BigQuery unterstützt keine Streamingtabellen mit Primärschlüsseln der Datentypen
FLOAToderREAL. Solche Tabellen werden nicht repliziert. Weitere Informationen zu BigQuery-Datentypen und -bereichen finden Sie unter Datentypen.Wenn Ihre Quelle Salesforce oder Salesforce Marketing Cloud (Vorabversion) ist, wird die Konfigurationsoption Dataset für jedes Schema nicht unterstützt.