BigQuery-Ziel

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 Datentyp STRING.
  • SOURCE_TIMESTAMP: Dieses Feld hat den Datentyp INTEGER.

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 Datentyp STRING.
  • SOURCE_TIMESTAMP: Dieses Feld hat den Datentyp INTEGER.
  • CHANGE_SEQUENCE_NUMBER: Dieses Feld hat den Datentyp STRING. Dies ist eine interne Sequenznummer, die von Datastream für jedes Änderungsereignis verwendet wird.
  • CHANGE_TYPE: Dieses Feld hat den Datentyp STRING. Gibt den Typ des Änderungsereignisses an: INSERT, UPDATE-INSERT, UPDATE-DELETE oder DELETE.
  • SORT_KEYS: Dieses Feld enthält ein Array von STRING-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 BACKGROUND oder BACKGROUND_CHANGE_DATA_CAPTURE ausgefü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_staleness optimieren: Der Parameter max_staleness in 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:

    • DATE
    • BOOL
    • GEOGRAPHY
    • INT64
    • NUMERIC
    • BIGNUMERIC
    • STRING
    • TIMESTAMP
    • DATETIME

    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.name in der Quelldatenbank wird in BigQuery zu table_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 DATE im Wert von 9999-12-31
    • Negativer DATE-Wert in Höhe von 0001-01-01
    • Positive TIMESTAMP im Wert von 9999-12-31 23:59:59.999000 UTC
    • Negativer TIMESTAMP-Wert in Höhe von 0001-01-01 00:00:00 UTC
  • BigQuery unterstützt keine Streamingtabellen mit Primärschlüsseln der Datentypen FLOAT oder REAL. 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.

Nächste Schritte