FAQs

Überblick

Auf dieser Seite finden Sie Antworten auf häufig gestellte Fragen zur Verwendung von Datastream. Diese FAQ beziehen sich auf:

  • Allgemeine Fragen zu Datastream und Change Data Capture (CDC)
  • Allgemeines Verhalten und Einschränkungen von Quellen
  • MySQL-Quellverhalten und -Einschränkungen
  • Funktionsweise und Einschränkungen der Oracle-Quelle
  • PostgreSQL-Quellverhalten und -Einschränkungen (einschließlich AlloyDB for PostgreSQL)
  • Verhalten und Einschränkungen der SQL Server-Quelle
  • Verhalten des BigQuery-Ziels
  • Verhalten des Cloud Storage-Ziels
  • Gängige Anwendungsfälle für die Verwendung von Datastream
  • Wie Datastream Google Cloud-Datendienste einbindet
  • Sicherheit und Konnektivität
  • Datastream überwachen
  • Preise
  • Weitere Informationen zu Datastream

Allgemeine Fragen zu Datastream und Change Data Capture (CDC)

Frage Antwort
Was ist Datastream?

Datastream ist ein serverloser, nutzerfreundlicher Change Data Capture- (CDC) und Replikationsdienst. Datastream ermöglicht die nahtlose Replikation von Daten aus relationalen Datenbankquellen wie AlloyDB for PostgreSQL, PostgreSQL, MySQL, SQL Server und Oracle direkt in BigQuery. Datastream bietet die Skalierbarkeit, Geschwindigkeit, Sicherheit und Einfachheit, die moderne Unternehmen benötigen. Dank der serverlosen Autoscaling-Architektur können Sie mit Datastream ganz einfach eine ELT-Pipeline (Extrahieren, Laden und Transformieren) für die Datenreplikation mit niedriger Latenz einrichten. So erhalten Sie Informationen nahezu in Echtzeit.

Datastream ist außerdem in der Lage, Datenstreams über heterogene Datenbanken und Anwendungen hinweg zuverlässig und mit minimaler Latenz zu synchronisieren. Der Dienst bietet eine optimierte Einbindung in Dataflow-Vorlagen, um Datenbanken zur Datenbanksynchronisierung in Cloud SQL oder Spanner zu replizieren. Alternativ können Sie den Ereignisstream direkt aus Cloud Storage nutzen, um ereignisgesteuerte Architekturen zu realisieren. Darüber hinaus lässt sich Datastream in Cloud Data Fusion einbinden, wenn Kunden Datenpipelines mit Transformationen in BigQuery erstellen möchten.

Welche Methoden verwendet Datastream zum Streamen von Daten? Datastream streamt Daten aus einer Quelle mit einer von zwei Methoden an ein Ziel:
  • CDC: Fortlaufende Änderungen von der Quelle in Echtzeit erfassen.
  • Backfill: Einen historischen Snapshot von Daten in einer Tabelle bereitstellen.
Was ist die CDC?

CDC ist ein Ansatz zur Datenintegration, mit dem Sie Daten schneller mit weniger Systemressourcen einbinden und analysieren können. Dies ist eine Methode, um nur die neuesten Änderungen (Aktualisierungen, Einfügungen oder Löschungen) aus einer Datenquelle abzurufen. Dabei wird häufig das Änderungslog gelesen, das von der Quelle zu ihrer eigenen internen transaktionalen Integrität beibehalten wird.

CDC ist ein hocheffizienter Mechanismus, um die Auswirkungen auf die Quelle zu begrenzen, wenn neue Daten in Betriebsdatenspeicher und Data Warehouses geladen werden. Außerdem entfällt die Notwendigkeit von Bulk-Load-Updates und unpraktischen Batch-Fenstern, da Datenänderungen in einem inkrementellen oder nahezu in Echtzeit an einem Datenziel gestreamt werden können.

CDC kann in vielen Anwendungsfällen verwendet werden, bei denen der ständige Zugriff auf Datenänderungen bei jedem Auftreten wert ist, z. B. bei Analysen, Synchronisierung von Daten über geografisch verteilte Systeme und ereignisgesteuerte Architekturen.

Was ist ein Backfill?

Neben den laufenden Änderungen verwendet Datastream auch Backfill, um alle vorhandenen Daten aus einer Quelle abzurufen und sie dann an ein Ziel zu streamen. Deshalb wird auf das Ziel ein "Backfill" mit allen Verlaufsdaten aus der Quelle angewendet. Es gibt zwei Arten von Backfill:

  • Inkrementell: Der Standardtyp des Backfills für Tabellen. Beim inkrementellen Backfill ruft Datastream Daten aus Zeilenbereichen in mehreren Batches ab und streamt die Daten nach Batch in einen Zielbatch.
  • Vollständiger Dump: Beim vollständigen Dump-Backfill ruft Datastream alle Daten gleichzeitig ab und streamt sie an ein Ziel.
Gibt es Einschränkungen, die Sie beim Ausführen eines Backfills beachten müssen?

Informationen zu Backfill-Einschränkungen finden Sie auf den Seiten zu bekannten Einschränkungen für die jeweiligen Quelltypen:

Welche Reihenfolge wird für CDC- und Backfill-Vorgänge empfohlen? In den meisten Fällen gibt es hier keine besonderen Überlegungen. Wenn Backfill für einen Stream aktiviert ist, führt Datastream gleichzeitig Backfill und CDC aus. In einigen Grenzfällen, z. B. bei der Replikation sehr großer Tabellen, für die kein Backfill mit Datastream möglich ist, müssen Sie die Daten möglicherweise zuerst in BigQuery laden, bevor Sie den Stream starten.
Kann ich den Status von CDC- und Backfill-Vorgängen überwachen?

Sie können den Backfill-Status pro Objekt überwachen:

  1. Rufen Sie in der Google Cloud Console die Seite Streams auf.
  2. Klicken Sie auf den Stream, den Sie beobachten möchten.
  3. Klicken Sie auf den Tab Objekte.

Der CDC-Status ist im Grunde der Streamstatus. Wenn der CDC-Vorgang fehlschlägt, schlägt der gesamte Stream fehl.

In Cloud Monitoring sind zusätzliche Messwerte auf Objektebene verfügbar. Weitere Informationen finden Sie in der Cloud Monitoring-Dokumentation.

Was ist ein Änderungsstream im Vergleich zur Replikation?

Ein Änderungsstream ist eine Abfolge von Ereignissen, die Datastream zum Zweck der nachgelagerten Nutzung an ein Ziel sendet. Das Ergebnis eines Änderungsstreams, der in Cloud Storage geschrieben wird, ist eine Reihe von Dateien, die Änderungsprotokollereignisse aus einer bestimmten Tabelle über einen bestimmten Zeitraum enthalten. Die Ereignisse stellen Einfüge-, Aktualisierungs- und Löschvorgänge für diese Tabelle dar. Die Ereignisse können von Diensten wie Dataflow für Anwendungsfälle wie ereignisgesteuerte Architekturen nach Cloud Storage verarbeitet und verarbeitet werden.

Replikation im Datastream-Kontext bedeutet eine aktuelle 1:1-Darstellung der Quelltabelle im Ziel. Beispiel: eine Tabelle in Oracle, deren Änderungen kontinuierlich in eine BigQuery-Tabelle repliziert werden, wobei die BigQuery-Tabelle anhand der aus der Oracle-Tabelle gestreamten Änderungen auf dem neuesten Stand gehalten wird. Bei der Replikation werden Änderungsstreams genutzt, indem jedes Änderungsereignis verarbeitet und das Ziel aktualisiert wird. Datastream ermöglicht die direkte Replikation in BigQuery und unterstützt zusätzliche Ziele wie Cloud SQL und Spanner durch die Einbindung von Dataflow. Dabei kommen Vorlagen zum Einsatz, die die Änderungsstreamereignisse aus Cloud Storage abrufen und die Zieltabellen entsprechend aktualisieren.

Erfordert Datastream einen Agent an der Quelle? Sie müssen keinen Agent in der Quelle installieren. Datastream verwendet vorhandene Schnittstellen (wie Oracle LogMiner), um die Daten aus der Quelle abzurufen.
Wie viele Tabellen kann ich in einen einzelnen Stream aufnehmen? Datastream kann bis zu 10.000 Tabellen in einem einzelnen Stream verarbeiten. Es gibt keinen technischen Grund, eine Datenbank in mehrere Streams aufzuteilen. Die Verwendung verschiedener Streams für verschiedene logische Abläufe kann aus geschäftlichen Gründen erwägen, aber jeder Stream erhöht die Belastung der Quelldatenbank. Eine solche Auslastung ist für CDC vernachlässigbar, beim Backfill jedoch erheblich.
Wie wirkt sich die Leistung von Datastream auf die Nutzung in einer Produktionsdatenbank aus?

CDC ist ein hocheffizienter Mechanismus zum Begrenzen der Auswirkungen auf die Quelle, wenn neue Daten in Zieldatenspeicher und Data Warehouses geladen werden. CDC macht außerdem die Notwendigkeit von Bulk-Load-Updates und ungünstigen Batch-Fenstern überflüssig, da Datenänderungen in einem Ziel inkrementell geladen oder nahezu in Echtzeit gestreamt werden können.

Darüber hinaus minimiert Datastream die Auswirkungen eines anfänglichen Backfills, indem die Anzahl der gleichzeitigen Backfill-Aufgaben begrenzt wird. Außerdem können Sie entscheiden, für welche Objekte ein Backfill wann durchgeführt werden soll.

Können Sie die Logdateien aus der Quelle nach Google Cloud kopieren? Nein. Datastream fragt die Logs direkt auf dem Datenbankserver ab. Nur Änderungen an den angegebenen Tabellen werden in das Ziel geschrieben.
Kann Datastream auch Verlaufsdaten übertragen? Ja. Standardmäßig ruft Datastream parallel zum CDC-Stream alle Verlaufsdaten aus Datenbanktabellen der von Ihnen angegebenen Quelle ab. Mit Datastream können Sie Verlaufsdaten aus einigen oder allen Datenbanktabellen in Ihrer Quelle flexibel abrufen. Wenn Sie den Stream konfigurieren, können Sie außerdem verlaufsbezogene Backfills deaktivieren.
Garantiert Datastream eine genau einmalige Übermittlung? Nein. Datastream bietet eine mindestens einmalige Übermittlung. Die zusätzlichen Metadaten, die Datastream in jedes Ereignis schreibt, können zum Entfernen von doppelten Daten verwendet werden.
Kann Datastream verschlüsselte Datenbanken verarbeiten? Ja.
Kann Datastream bestimmte Tabellen und Spalten aus einer Quelle streamen? Ja. Mit Datastream können Sie Ein- und Ausschlusslisten für Tabellen und Schemas festlegen, um nur die gewünschten Daten von einer Quelle zu einem Ziel zu streamen. Bei eingeschlossenen Tabellen können Sie bestimmte Spalten der Tabellen ausschließen, um genau zu bestimmen, welche Daten in das Ziel gestreamt werden sollen. Materialisierte Ansichten können jedoch nicht repliziert werden.
Wie verschieben Sie einen Stream in ein anderes Projekt oder eine andere Region?
  1. Erstellen Sie einen Stream in einer neuen Region oder einem neuen Projekt mit derselben Konfiguration wie der vorhandene Stream. Klicken Sie jedoch nicht das Kästchen Verlauf von Backfill-Daten an.
  2. Starten Sie den Stream, den Sie erstellt haben.
  3. Sobald der erstellte Stream den Status RUNNING hat, halten Sie den vorhandenen Stream an.
  4. Optional können Sie den neuen Stream ändern, indem Sie das Kästchen Verlauf von Backfill-Daten anklicken. Vorhandene Daten in Tabellen, die dem Stream in Zukunft hinzugefügt werden, werden von der Quelle an das Ziel gestreamt.
Wie verarbeitet Datastream nicht festgeschriebene Transaktionen in den Logdateien der Datenbank? Wenn Datenbanklogdateien Transaktionen ohne Commit enthalten und für Transaktionen ein Rollback durchgeführt wird, spiegelt die Datenbank dies in den Protokolldateien als umgekehrte DML-Vorgänge (Data Manipulation Language) wider. Für einen Rollback-Vorgang vom Typ INSERT gibt es beispielsweise einen entsprechenden DELETE-Vorgang. Datastream liest diese Vorgänge aus den Logdateien.
Was ist die regionale Verfügbarkeit von Datastream?

Eine Liste der Regionen, in denen Datastream verfügbar ist, finden Sie unter IP-Zulassungslisten und Regionen.

Allgemeines Verhalten und Einschränkungen von Quellen

Frage Antwort
Welche Quellen werden von Datastream unterstützt?

Datastream unterstützt Streamingdaten aus Oracle-, MySQL-, PostgreSQL-, AlloyDB for PostgreSQL- und SQL Server-Quellen, die in der Cloud gehostet und selbst verwaltet werden. Informationen zu quellspezifischen Versionen finden Sie auf den folgenden Seiten:

Kann Datastream verschlüsselte Datenbanken verarbeiten? Ja.
Wie extrahiert Datastream Daten aus den Quellen?

Bei MySQL verarbeitet Datastream das binäre MySQL-Log, um Änderungsereignisse zu extrahieren.

Für Oracle verwendet Datastream LogMiner und zusätzliche Logging-Einstellungen, um Daten aus den Redo-Logs von Oracle zu extrahieren.

Für PostgreSQL und AlloyDB for PostgreSQL benötigt Datastream die logische Decodierung von PostgreSQL. Die logische Decodierung macht alle Änderungen sichtbar, für die ein Commit an die Datenbank durchgeführt wurde, und ermöglicht die Verarbeitung und Verarbeitung dieser Änderungen.

Bei SQL Server verfolgt Datastream Änderungen an der Datenbearbeitungssprache (Data Manipulation Language, DML) mithilfe von Transaktionslogs.

Können Sie Logdateien direkt aus einer Quelle nach Google Cloud kopieren? Datastream kopiert nicht alle Logdateien, sondern fragt die Logdateien direkt vom Datenbankserver ab und repliziert nur Änderungen aus den angegebenen Tabellen an das Ziel.
Welche Einschränkungen gibt es für die Daten, die Datastream verarbeiten kann?

Es gibt allgemeine Einschränkungen und Einschränkungen, die für bestimmte Datenbankquellen gelten.

Allgemeine Einschränkungen:

  • Durchsatz: ~5 MB/s mit einem Zeilengrößenlimit von 30 MB für Cloud Storage-Ziel und 20 MB Zeilengrößenlimit für BigQuery.
  • Einige DDL-Vorgänge (Data Definition Language) während der Replikation werden nicht unterstützt, darunter:
    • Spalte aus der Mitte einer Tabelle entfernen Dies kann zu Datendiskrepanzen führen, da Werte der falschen Spalte zugeordnet sind.
    • Datentyp einer Spalte ändern. Dies kann zu Datenabweichungen führen, da die Daten nicht korrekt dem richtigen einheitlichen Datastream-Typ zugeordnet und somit beschädigt werden können.
    • Kaskadierende Löschvorgänge werden ignoriert.
    • Das Kürzen von Tabellen wird ignoriert.

Informationen zu quellspezifischen Einschränkungen finden Sie auf den folgenden Seiten:

Welche Daten werden in jedem von Datastream generierten Ereignis einbezogen? Jedes generierte Ereignis (für Einfügungen, Aktualisierungen und Löschvorgänge) enthält die gesamte Datenzeile aus der Quelle mit dem Datentyp und dem Wert jeder Spalte. Jedes Ereignis enthält außerdem Ereignismetadaten, mit denen die Reihenfolge festgelegt und eine genau einmalige Übermittlung gewährleistet werden kann.
Bietet Datastream eine Garantie für die Reihenfolge? Datastream kann zwar keine Reihenfolge garantieren, stellt aber für jedes Ereignis zusätzliche Metadaten bereit. Mit diesen Metadaten kann Eventual Consistency am Ziel sichergestellt werden. Abhängig von der Quelle, der Rate und der Häufigkeit von Änderungen und anderen Parametern kann Eventual Consistency in der Regel innerhalb eines einstündigen Fensters erreicht werden.
Garantiert Datastream eine genau einmalige Übermittlung? Datastream bietet eine mindestens einmalige Übermittlung. Sie können doppelte Daten entfernen, indem Sie zusätzliche Metadaten verwenden, die Datastream für jedes Ereignis schreibt.
Wie stellt Datastream Datentypen aus der Quelle zur Verwendung in der nachgelagerten Verarbeitung dar?

Beim Schreiben in ein schemaloses Ziel wie Cloud Storage vereinfacht Datastream die nachgelagerte Verarbeitung von Daten quellenübergreifend, indem die Datentypen für alle Quellen normalisiert werden. Datastream verwendet den ursprünglichen Quelldatentyp (z. B. einen MySQL- oder PostgreSQL-NUMERIC- oder Oracle-NUMBER-Typ) und normalisiert ihn in einen einheitlichen Datastream-Typ.

Einheitliche Typen stellen eine verlustfreie Obermenge aller möglichen Quelltypen dar. Die Normalisierung bedeutet, dass Daten aus verschiedenen Quellen einfach verarbeitet und unabhängig von der Quelle nachgelagert abgefragt werden können.

Wie behandelt Datastream Struktur- bzw. Schemaänderungen in der Quelle? Datastream ruft das Schema regelmäßig aus der Quelle ab. Schemas werden in der internen Schema-Registry von Datastream gespeichert und jedes Ereignis verweist auf das Schema zum Zeitpunkt der Generierung. So kann Datastream Schemaänderungen verfolgen und auf Grundlage dieser Änderungen anpassen. So wird sichergestellt, dass alle Daten richtig gestreamt und in das Ziel geladen werden. Zwischen Schemaabrufen werden jedoch einige Schemaänderungen möglicherweise nicht erkannt, was zu Datenabweichungen führen kann.
Ich habe eine Spalte in meiner Quelldatenbank gelöscht, aber sie wird immer noch in meinem Ziel angezeigt. Warum? Datastream löscht keine Spalten im Ziel. Sie müssen Spalten manuell löschen. Dies ist beabsichtigt, da es in einigen Fällen vorzuziehen ist, die gelöschte Spalte im Ziel zu belassen. Das Umbenennen einer Spalte in der Quelle wird in Datastream beispielsweise so interpretiert, dass eine Spalte gelöscht und eine weitere Spalte hinzugefügt wird. In diesem Fall soll die ursprüngliche Spalte im Ziel nicht verloren gehen.
Der Stream kann aufgrund eines Validierungsfehlers nicht gestartet werden. Ich glaube aber, dass ein Fehler vorliegt, oder ich möchte den Stream trotzdem laufen lassen. Wie überwinde ich diese Überprüfung? Du kannst den Stream mit der API starten, indem du das Flag force=true hinzufügst und die Validierungsprüfungen überspringst. Das Überspringen von Validierungen garantiert nicht, dass der Stream ausgeführt werden kann. Er kann trotzdem fehlschlagen, wenn der Datenbank die erforderliche Konfiguration oder Berechtigungen fehlen.
Kann ich einen fehlgeschlagenen Stream neu starten?

Sie können einen Stream mit dem Status Failed korrigieren, indem Sie die von Datastream gemeldeten Fehler beheben. Weitere Informationen finden Sie im Hilfeartikel Probleme mit Streams beheben.

Du kannst einen Stream mit dem Status Failed permanently auch wiederherstellen. Weitere Informationen finden Sie unter Stream wiederherstellen.

Sperrt Datastream Datenbanktabellen?

Nein. Datastream muss die Tabellen nicht sperren.

Auf den Seiten mit der Begrenzung für jede Quelle ist angegeben,dass Streams bis zu 10.000 Tabellen enthalten können. Bedeutet das,dass Datastream CDC-Vorgänge nicht für mehr als 10.000 Tabellen gleichzeitig ausführen kann? Nein. Das angegebene Limit gilt pro Stream. Sie können mehrere Streams mit einer Gesamtzahl von 10.000 Tabellen haben.

MySQL-Quellverhalten und -Einschränkungen

Frage Antwort
Wie ruft Datastream Daten aus MySQL ab? Datastream verwendet das binäre Log von MySQL, um die Änderungsereignisse aus MySQL zu extrahieren.
Unterstützt Datastream Cloud SQL for MySQL-Lesereplikatinstanzen?

Ja, Datastream unterstützt Lesereplikatinstanzen für Cloud SQL for MySQL-Versionen 5.7 und 8.0.

Sie können das binäre Logging für diese Instanzen aktivieren. Führen Sie dazu den folgenden gcloud-Befehl aus:

gcloud sql instances patch INSTANCE_NAME -- enable-bin-log

Weitere Informationen finden Sie unter Binäres Logging in Lesereplikaten.

Welche Berechtigungen benötigt Datastream mindestens, um Daten aus einer MySQL-Quelldatenbank zu replizieren?

Sie müssen Ihrem Datastream-Nutzer die folgenden Berechtigungen gewähren, um Daten aus einer MySQL-Datenbank zu replizieren:

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
Unterstützt Datastream die Komprimierung von binären Logs?

Nein, Datastream unterstützt nicht die Komprimierung von Transaktionsereignissen mit Komprimierung von Transaktionen mit binären Logs. Deaktivieren Sie die Komprimierung von Transaktionen mit binären Logs, um die Change-Data-Capture-Funktion für MySQL in Datastream zu verwenden.

Ihre Organisation erlaubt nicht, die Berechtigung SELECT für alle ihre Tabellen und Datenbanken zu gewähren. Kann ich Datastream trotzdem verwenden?

Sie können die Berechtigung SELECT für die jeweiligen Tabellen, die Sie replizieren möchten, oder für das gesamte Schema in einer Datenbank erteilen. Führen Sie dazu einen der folgenden Befehle aus:

GRANT SELECT ON DATABASE_NAME.TABLE_NAME TO USER_NAME@'%';
oder
GRANT SELECT ON DATABASE_NAME.* TO USER_NAME@'%';

Ersetzen Sie Folgendes:

  • DATABASE_NAME: Der Name Ihrer MySQL-Datenbank.
  • TABLE_NAME: Der Name der Tabelle, der Sie die Berechtigung SELECT gewähren.
  • USER_NAME: Der Name des Nutzers, dem Sie die Berechtigung SELECT gewähren.

Wenn Sie die Berechtigungen auf einen bestimmten Hostnamen beschränken möchten, ersetzen Sie das Zeichen % durch die entsprechende IP-Adresse oder den entsprechenden Adressbereich.

Funktionsweise und Einschränkungen der Oracle-Quelle

Frage Antwort
Wie ruft Datastream Daten aus Oracle ab? Datastream verwendet Oracle LogMiner, um die Daten aus den Redo-Logs von Oracle zu extrahieren.
Ist für Datastream eine GoldenGate-Lizenz von Oracle erforderlich? Nein. Datastream erfordert keine GoldenGate-Lizenz, da Oracle LogMiner zum Lesen der Daten aus den Redo-Logs der Datenbank verwendet.
Was passiert, wenn Oracle LogMiner nicht mehr unterstützt wird? Oracle LogMiner wird weiterhin in allen allgemein verfügbaren Oracle-Releases unterstützt und Datastream wird LogMiner auch in zukünftigen Releases unterstützen. Oracle hat die Unterstützung für die LogMiner-Option CONTINUOUS_MINE eingestellt, aber diese Option wird von Datastream nicht verwendet, sodass diese Einstellung keine Auswirkungen auf Datastream hat.
Unterstützt Datastream die Verschlüsselung von Daten bei der Übertragung aus Oracle-Datenbanken?

Datastream unterstützt die Verschlüsselung von Daten bei der Übertragung basierend auf Oracle Net Services. Datastream wird im Modus REQUESTED ausgeführt.

Unterstützt Datastream die SSL-Verschlüsselung (Secure Sockets Layer) und die TLS-Verschlüsselung (Transport Layer Security)?

Ja, Datastream unterstützt das TCPS-Protokoll für SSL/TLS-verschlüsselte Verbindungen zu Oracle-Quellen.

Unterstützt Datastream die mehrmandantenfähige Architektur von Oracle, insbesondere Containerdatenbanken (CDBs) und Plug-in-Datenbanken (PDBs)? Ja, Datastream unterstützt die mandantenfähige Oracle-Architektur (CDB/PDB). Sie können jedoch nur eine einzelne Plug-in-Datenbank in einem Stream replizieren.
Ihre Organisation lässt die Erteilung der Berechtigung „GRANT SELECT ANY TABLE“ nicht zu. Kann ich Datastream trotzdem verwenden?

Wenn Sie die Berechtigung GRANT SELECT ANY TABLE nicht erteilen können, haben Sie die Möglichkeit, die Berechtigung SELECT für die folgende Tabellenliste zu erteilen:

  • ALL_COL_COMMENTS
  • ALL_CONS_COLUMNS
  • ALL_CONSTRAINTS
  • ALL_DB_LINKS
  • ALL_EXTERNAL_TABLES
  • ALL_IND_COLUMNS
  • ALL_INDEXES
  • ALL_LOG_GROUPS
  • ALL_MVIEWS
  • ALL_OBJECTS
  • ALL_PART_TABLES
  • ALL_SEQUENCES
  • ALL_SOURCE
  • ALL_SYNONYMS
  • ALL_TAB_COLS
  • ALL_TAB_COLUMNS
  • ALL_TAB_COMMENTS
  • ALL_TABLES
  • ALL_TRIGGERS
  • ALL_TRIGGER_COLS
  • ALL_TYPES
  • ALL_USERS
  • ALL_VIEWS
  • DATABASE_PROPERTIES
  • DBA_ROLE_PRIVS
  • DUAL
  • PRODUCT_COMPONENT_VERSION
  • ROLE_SYS_PRIVS
  • USER_ROLE_PRIVS
  • USER_TAB_PRIVS

Wenn Sie Änderungen mit Datastream streamen möchten, benötigen Sie außerdem Lesezugriff auf alle im Stream enthaltenen Tabellen.

Um den Stream zu starten, umgehen Sie die Validierung mit der API. Weitere Informationen finden Sie unter Stream starten.

Unterstützt Datastream die Replikation von Oracle-Lesereplikatinstanzen? Datastream unterstützt die Replikation von Oracle-Lesereplikatinstanzen, sofern die Instanz gemäß den Konfigurationsrichtlinien konfiguriert ist.
Unterstützt Datastream Oracle SCAN RAC-Datenbanken? Ja. Sie können jedoch mit der SCAN-Funktion (Single Client Access Name) in Oracle Real Application Cluster-Umgebungen (RAC) mit Datastream keine direkte Verbindung zu Datenbanken herstellen. Stellen Sie eine direkte Verbindung zu einem der Knoten her oder verwenden Sie den Oracle Connection Manager, um diese Einschränkung zu umgehen. Sie können eine Konfiguration für private Verbindungen auch mit Reverse-Proxy-Lösungen wie HAProxy erstellen.

PostgreSQL-Quellverhalten und -Einschränkungen

Frage Antwort
Wie ruft Datastream Daten aus PostgreSQL ab? Datastream verwendet die logische Decodierung von PostgreSQL, um die Änderungsereignisse aus PostgreSQL zu extrahieren
Unterstützt Datastream die Replikation aus AlloyDB for PostgreSQL- oder AlloyDB Omni-Quellen? Ja. Datastream unterstützt diese beiden Quellen. Informationen zum Konfigurieren Ihrer AlloyDB for PostgreSQL-Quelldatenbank finden Sie unter AlloyDB for PostgreSQL-Datenbank konfigurieren. Informationen zum Konfigurieren der AlloyDB Omni-Quelldatenbank finden Sie unter Selbstverwaltete PostgreSQL-Datenbank konfigurieren.
Unterstützt Datastream die Replikation von einer PostgreSQL-Lesereplikatinstanz? Lesereplikatinstanzen können nicht als Publisher für die logische Replikation fungieren, da PostgreSQL die logische Decodierung in Lesereplikaten nicht unterstützt.
Unterstützt Datastream die Sicherheit auf Zeilenebene? Datastream unterstützt die Replikation von Tabellen mit aktiviertem RLS nicht. Diese Einschränkung können Sie jedoch mithilfe der BYPASSRLS-Klausel umgehen:
ALTER USER USER_NAME BYPASSRLS;

Ersetzen Sie USER_NAME durch den Namen des Nutzers, den Datastream zur Verbindung mit der Datenbank verwendet und für den Sie RLS-Richtlinien umgehen möchten.

Unterstützt Datastream gleichzeitige CDC-Vorgänge bei der Replikation aus einer PostgreSQL-Quelle? Nein. Die PostgreSQL-Replikation basiert auf dem Konzept der Replikationsslots und Replikationsslots unterstützen keine gleichzeitigen Verbindungen. Es kann jeweils nur eine CDC-Aufgabe aus dem Replikationsslot lesen. Wenn Sie beispielsweise eine große Anzahl von Datensätzen aus der Quelldatenbank löschen, wird der Replikationsslot möglicherweise mit Löschereignissen überlastet. Nachfolgende Änderungen an der Quelle werden verzögert, bis die Löschereignisse, die sich bereits in der Replikationsslot-Warteschlange befinden, verarbeitet wurden.
Unterstützt Datastream die SSL-Verschlüsselung (Secure Sockets Layer) und die TLS-Verschlüsselung (Transport Layer Security)?

Datastream unterstützt SSL/TLS-verschlüsselte Verbindungen, für die keine Clientzertifikate erforderlich sind.

Verhalten und Einschränkungen der SQL Server-Quelle

Frage Antwort
Welche SQL Server-Versionen werden von Datastream unterstützt? Datastream unterstützt SQL Server-Datenbankversionen, die Change Data Capture unterstützen. Eine vollständige Liste der unterstützten SQL Server-Versionen und -Versionen finden Sie unter Versionen.
Wie funktioniert die Datastream-CDC-Replikation für SQL Server-Quellen? Für die Datenaufnahme in Datastream werden Transaktionslogs verwendet, im Gegensatz zu Tabellen, die auf Microsoft CDC basieren. Dieser Ansatz reduziert die Datenbanklast und ermöglicht gleichzeitig einen schnellen Datenabruf.
Welche Berechtigungen benötigt Datastream mindestens, um Daten aus einer SQL Server-Quelldatenbank zu replizieren?

Sie müssen Ihrem Datastream-Nutzer die folgenden Rollen und Berechtigungen gewähren, um Daten aus einer MySQL-Datenbank zu replizieren:

  • SELECT-Berechtigungen für die Datenbank, sys.fn_dblog und sys.fn_dump_dblog
  • VIEW DATABASE STATE
  • VIEW SERVER STATE
  • Der Nutzer muss ein Mitglied der festen Datenbankrolle db_owner sein. Informationen zum Hinzufügen eines Nutzers zur Rolle finden Sie auf den Konfigurationsseiten für Ihren SQL Server-Quelldatenbanktyp.
Warum benötigen Sie beim Konfigurieren Ihrer SQL Server-Quelle eine Konfiguration wie das Ändern von Abfrageintervallen und die Einrichtung eines Kürzungsschutzes? Wenn Sie Daten aus einer SQL Server-Quelle replizieren, verfolgt Datastream DML-Änderungen mithilfe von Transaktionslogs. Wenn ein Log abgeschnitten wird, bevor Datastream es liest, kommt es zu einem Datenverlust. Das Ändern der Abfrageintervalle und die Einrichtung des Kürzungsschutzes sind optional, bieten aber eine zusätzliche Schutzebene, damit Datastream die Daten auch in Fällen lesen kann, in denen Ausfallzeiten oder Verbindungsprobleme auftreten. Weitere Informationen finden Sie unter SQL Server-Quelldatenbank konfigurieren.

Verhalten des BigQuery-Ziels

Frage Antwort
Wie arbeiten Datastream und BigQuery zusammen, um Änderungen aus der Quelldatenbank zu replizieren? Datastream liest kontinuierlich den Änderungsstream aus der Quelldatenbank und streamt die Upsert- und Delete-Ereignisse mithilfe der Storage Write API in die BigQuery-Zieltabellen. BigQuery wendet dann die Änderungen basierend auf der Konfiguration der Tabellenveralterung auf die Tabelle an.
Wie werden DML-Vorgänge (Data Manipulation Language) in BigQuery angewendet?
  • Im Modus Nur anfügen werden Daten in BigQuery als Änderungsstream angehängt, wobei für jedes INSERT-, UPDATE-INSERT-, UPDATE-DELETE- und DELETE-Ereignis eine separate Zeile angehängt wird.
  • Wenn Datastream im Modus Zusammenführen (Standardeinstellung) eine Tabelle in BigQuery erstellt, werden die Primärschlüssel für die Tabelle entsprechend den in der Quelle definierten Primärschlüsseln festgelegt. BigQuery verarbeitet die Ereignisse und wendet Änderungen auf die zugrunde liegende BigQuery-Tabelle basierend auf den Primärschlüsseln der Quelltabelle an. Wenn die Quelltabelle keinen Primärschlüssel hat, wird sie so behandelt, als würde der Modus Nur anfügen verwendet.
Wie handhaben Datastream und BigQuery die Ereignissortierung? In BigQuery werden die Ereignismetadaten und eine interne Änderungssequenznummer (CSN) verwendet, um die Ereignisse in der richtigen Reihenfolge auf die Tabelle anzuwenden. Weitere Informationen zu Ereignismetadaten finden Sie unter Ereignisse und Streams.
Wie werden die BigQuery-Kosten berechnet, wenn sie mit Datastream verwendet werden? Die Kosten für BigQuery werden getrennt von Datastream berechnet. Informationen zum Kontrollieren der BigQuery-Kosten finden Sie unter BigQuery-CDC-Preise.
Was ist die maximale Zeilengröße, die Datastream beim Streamen von Daten in BigQuery unterstützt? Die maximale Zeilengröße, die von Datastream unterstützt wird, beträgt 20 MB.
Beim Streamen in BigQuery ist den Tabellen das Präfix _ vorangestellt. Können Sie dieses Verhalten so ändern, dass die Tabellen in BigQuery dieselbe Struktur wie in der Quelldatenbank haben? Wenn Sie Datasets für ein BigQuery-Ziel konfigurieren, erstellen Sie ein Dataset für jedes Schema oder ein einzelnes Dataset für alle Schemas. Wenn Sie ein Dataset für jedes Schema erstellen, wird jedes Schema in der Quelle einem Dataset in BigQuery und alle Tabellen im Quellschema den Tabellen im Dataset zugeordnet. Wenn Sie die Option „Einzelnes Dataset für alle Schemas“ auswählen, wird den Tabellennamen gemäß der Namenskonvention für Tabellen in BigQuery das Präfix _ vorangestellt.
Kann CDC Änderungen am Quellschema erfassen, z. B. wenn eine Spalte in die Quelle eingefügt oder gelöscht wird? Werden solche Änderungen automatisch in den bereits ausgefüllten Tabellen in den BigQuery-Ziel-Datasets übernommen? Datastream erkennt neue Spalten automatisch und fügt sie dem Zielschema für die neuen Zeilen hinzu. Für die bereits in das Ziel replizierten Zeilen werden sie jedoch nicht berücksichtigt. Gelöschte Spalten werden ignoriert und Datastream füllt sie mit NULL-Werten im Ziel. Diese Spalten können Sie dann manuell in BigQuery löschen.

Verhalten des Cloud Storage-Ziels

Frage Antwort
Wie werden Dateien in Cloud Storage erstellt? Datastream erstellt für jede Tabelle einen Ordner. In jedem Ordner rotiert Datastream die Datei (oder erstellt eine neue Datei), wenn der benutzerdefinierte Grenzwert für Größe oder Zeit erreicht wird. Datastream rotiert die Datei auch immer dann, wenn eine Schemaänderung erkannt wird. Der Dateiname besteht aus einem eindeutigen Schemaschlüssel (basierend auf einem Hash des Schemas), gefolgt vom Zeitstempel des ersten Ereignisses in der Datei. Aus Sicherheitsgründen sollten diese Dateinamen nicht von Personen gelesen oder verstanden werden.
Wie können die Ereignisse neu angeordnet werden, bevor Sie in das Ziel geladen werden, wenn die Daten in Cloud Storage nicht geordnet sind?

Jedes Ereignis enthält mehrere Metadatenfelder, die die Zeile in den Protokolldateien eindeutig identifizieren und mit denen Sie die Ereignisse sortieren können. Zu diesen Feldern gehören:

Für Oracle-Quellen:

  • rs_id (Datensatz-ID), die sich aus drei Werten zusammensetzt (z. B. 0x0073c9.000a4e4c.01d0). Die rs_id identifiziert den Datensatz im Redo-Log eindeutig.
  • ssn (SQL-Sequenznummer), die verwendet wird, wenn der Datensatz im Redo-Log zu lang ist. Aus diesem Grund teilt Oracle LogMiner den Datensatz in mehrere Zeilen auf.

Für MySQL-Quellen:

  • log_file, aus dem Datastream Ereignisse in der CDC-Replikation abruft.
  • log_position: Gibt den Offset des Eintrags im binären MySQL-Log an.

Für PostgreSQL-Quellen:

  • source_timestamp: Der Zeitstempel, der angibt, wann sich der Datensatz in der Quelle geändert hat. Wenn die source_timestamp-Werte für die Ereignisse, die Sie sortieren, identisch sind, vergleichen Sie die lsn-Werte.
  • lsn (Protokollsequenznummer): Gibt den Versatz des Eintrags in der WAL-Protokolldatei an.

Weitere Informationen zu Metadatenfeldern finden Sie unter Quellenspezifische Metadaten.

Wenn mehrere Dateien für denselben Zeitstempel erstellt werden, in welcher Reihenfolge sollten sie verarbeitet werden? Da die Reihenfolge innerhalb und zwischen Dateien nicht garantiert ist, lässt sich die Reihenfolge für die Verarbeitung der Dateien für die Quelle am besten bestimmen, indem Sie alle Ereignisse aus allen Dateien für den jeweiligen Zeitstempel abrufen und dann die Sortierung mit der oben in diesem Abschnitt beschriebenen Methode anwenden.
Wie werden Aktualisierungen von Primärschlüsseln verarbeitet? Gibt es Vorher- und Nachher-Informationen für die Veranstaltung? Wenn sich der Primärschlüssel einer Zeile ändert, generiert Datastream zwei Ereignisse für die Änderung: ein UPDATE-DELETE und ein UPDATE-INSERT. Das Ereignis UPDATE-DELETE steht für die Daten vor der Aktualisierung und UPDATE-INSERT für die Daten nach der Aktualisierung. Weitere Informationen zu quellspezifischen Metadaten finden Sie unter Ereignisse und Streams.
Welche Zeilengröße unterstützt Datastream maximal, wenn Daten in Cloud Storage gestreamt werden? Die maximale Zeilengröße, die von Datastream unterstützt wird, beträgt 30 MB.

Anwendungsfälle

Frage Antwort
Was sind häufige Anwendungsfälle für die Verwendung von Datastream?

Datastream ist ein CDC- und Replikationsdienst, der flexibel für verschiedene Anwendungsfälle einsetzbar ist und Zugriff auf kontinuierlich gestreamte Änderungsdaten bietet. Die häufigsten Anwendungsfälle für Datastream sind:

  1. Analysen:Durch die direkte Replikation von Daten in BigQuery können Kunden auf aktuelle Betriebsdaten in BigQuery zugreifen. Kunden können diese kontinuierlich aktualisierten Daten in BigQuery nutzen, um aktuelle Dashboards für ihre Daten zu erstellen. Dies kann beispielsweise zur Überwachung von Systemen und zum Ableiten aktueller Informationen zum Status ihres Unternehmens verwendet werden.
  2. Szenarien der Datenbankreplikation und Synchronisierung: Durch die Einbindung von Datastream in Dataflow-Vorlagen zum Laden von Daten in Cloud SQL oder Spanner erhalten Sie eine aktuelle Replikation Ihrer Quelldaten in diesen Datenbanken. Sie können diese kontinuierlich aktualisierten Daten in den Zieldatenbanken für eine Datenbankmigration mit geringer Ausfallzeit von der Quelle zum Ziel oder für Hybrid-Cloud-Konfigurationen verwenden, bei denen sich die Quelle und das Ziel in unterschiedlichen Hostingumgebungen befinden.
  3. Ereignisbasierte Architekturen: Moderne, auf Mikrodiensten basierende Architekturen nutzen zentrale Daten-Hubs, die mit Ereignissen aus der gesamten Organisation kontinuierlich aktualisiert werden, um ereignisgesteuert zu sein. Durch das kontinuierliche Schreiben von Ereignisdaten in Ziele wie BigQuery und Cloud Storage können Sie ereignisgesteuerte Architekturen erstellen, die auf dem Verbrauch von Ereignisdaten aus diesen Zielen basieren.

Integrationen

Frage Antwort
Wie lässt sich Datastream in Google Cloud-Datendienste einbinden?

Datastream ergänzt und verbessert die Google Cloud-Datensuite durch CDC-Datenreplikation von Quellen zu verschiedenen Google Cloud-Diensten. Durch die nahtlose Einbindung in diese Dienste passt Datastream in die größere Google Cloud-Umgebung.

Datastream kann in die folgenden Datendienste eingebunden werden:

  • BigQuery:Datastream verwendet die BigQuery Write API, um BigQuery direkt einzubinden. Datastream schreibt die Änderungsereignisse direkt in das BigQuery-Dataset, wo die Änderungen kontinuierlich mit den vorhandenen Daten zusammengeführt werden (UPSERT).
  • Dataflow:Datastream kann mithilfe von Dataflow-Vorlagen in Dataflow eingebunden werden. Diese Vorlagen lesen Daten aus Cloud Storage und laden sie in BigQuery, Cloud SQL for PostgreSQL oder Spanner. Der Zweck dieser Vorlagen besteht darin, replizierte Quelltabellen in den Zielen auf dem neuesten Stand zu halten. Die Vorlagen sind in der Dataflow-UI verfügbar und werden für von Datastream generierte Dateien zur sofortigen Verarbeitung erstellt.
  • Cloud Data Fusion:Datastream lässt sich in Cloud Data Fusion einbinden. Dazu wird ein Oracle-Connector über die Replikationsfunktion von Cloud Data Fusion unterstützt. Sie können eine Oracle-Replikationsquelle erstellen, die Datastream im Hintergrund transparent „unterstützt“, um auf einfache Weise eine Datenpipeline zu erstellen. Diese Pipeline enthält umfangreiche Transformationen für die Oracle-Daten, die Datastream in Cloud Data Fusion streamt.
  • Cloud Storage: Die Einbindung von Datastream in Cloud Storage erfolgt durch das Schreiben von Daten in Cloud-Storage als Ziel für Änderungsstreams.
  • Cloud SQL und Spanner: Mithilfe von Datastream- und Dataflow-Vorlagen können Sie replizierte Tabellen in den Datenbanken auf dem neuesten Stand halten.
Gibt es in Dataflow für die Vorlage „Datastream to BigQuery“ Einschränkungen in Bezug auf die Anzahl der DML-Vorgänge (Datenbearbeitungssprache)? Nein. In der Vorlage wird die Streaming Insert API verwendet, um Daten in BigQuery zu laden. Daher gibt es keine Begrenzung für die Anzahl der DML-Vorgänge. Allerdings gelten einige Kontingentbeschränkungen.

Sicherheit und Konnektivität

Frage Antwort
Ist Datastream ein sicherer Dienst für vertrauliche Daten? Datastream unterstützt mehrere sichere, private Konnektivitätskonfigurationen, um Daten bei der Übertragung zu schützen, während sie von einer Quelle an ein Ziel gestreamt werden. Nachdem die Daten repliziert wurden, werden sie standardmäßig verschlüsselt und nutzen die Sicherheitskontrollen von BigQuery oder Cloud Storage. Alle von Datastream gepufferte Daten werden im inaktiven Zustand verschlüsselt.
Welche Konnektivitätsoptionen stehen für die Verbindung Ihrer Quellen mit Datastream zur Verfügung?

Es gibt drei Arten von Verbindungsmethoden, die Sie konfigurieren können:

  • IP-Zulassungsliste: Diese Methode ermöglicht öffentliche Verbindungen, indem die regionalen IP-Adressen von Datastream an der Quelle auf die Zulassungsliste gesetzt werden. Beim Erstellen des Streams zeigt Datastream diese IP-Adressen in der Benutzeroberfläche an.
  • Weiterleitungs-SSH-Tunnel: Diese Methode bietet sichere Konnektivität über öffentliche Netzwerke, da nicht nur regionale IP-Adressen auf die Zulassungsliste gesetzt werden, sondern auch ein vom Kunden konfigurierter SSH-Bastion.
  • Private Verbindung über VPC-Peering: Mit dieser Methode können Sie eine Verbindung zu Ihren von Google Cloud gehosteten Datenbanken über das interne Google Cloud-Netzwerk herstellen oder ein vorhandenes VPN oder Interconnect nutzen. Dazu richten Sie VPC-Peering zwischen dem privaten Datastream-Netzwerk und dem Google-Netzwerk Ihrer Organisation ein.
Wie kann ich die Verarbeitung sensibler Daten durch Datastream einschränken?

Mit Datastream können Sie angeben, welche spezifischen Datenelemente (Schemas, Tabellen und Spalten) der Quelle an ein Ziel gestreamt werden sollen und welche Elemente nicht gestreamt werden sollen.

Datenbanklogs können Änderungsdaten von Elementen enthalten, die in Ihrer Streamdefinition ausgeschlossen wurden. Da Sie diese Elemente nicht an der Quelle filtern können, liest Datastream alle mit den Elementen verknüpften Daten, ignoriert sie aber.

Wie schützt Datastream Datenbankanmeldedaten? Alle Nutzermetadaten, einschließlich Nutzername und Passwort, die für den Zugriff auf die Datenquellen verwendet werden, werden bei der Übertragung und im inaktiven Zustand verschlüsselt. Google speichert sie in seinen proprietären Speichersystemen. Der Zugriff auf diese Metadaten wird nachverfolgt und geprüft.
Warum wird auf der Seite Konfiguration für private Verbindungen erstellen angegeben, dass Sie dem Datastream-Dienstkonto die Rolle roles/compute.networkAdmin zuweisen müssen, um eine Konfiguration für private Verbindungen in einer freigegebenen VPC zu erstellen? Die Rolle networkAdmin ist nur zum Erstellen des VPC-Peerings erforderlich. Nachdem das Peering eingerichtet wurde, benötigen Sie die Rolle nicht mehr. Wenn Ihre Organisation nicht erlaubt, dem Datastream-Dienstkonto die Rolle networkAdmin zu gewähren, erstellen Sie eine benutzerdefinierte Rolle mit den folgenden spezifischen Berechtigungen:

IP-Bereiche dynamisch auswählen

  • compute.routes.get
  • compute.routes.list
  • compute.subnetworks.get
  • compute.subnetworks.list

Peering-Netzwerke erstellen

  • compute.globalOperations.get
  • compute.networks.addPeering
  • compute.networks.removePeering
  • compute.networks.get

IP-Adressen reservieren

  • compute.globalAddresses.get
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.delete
  • compute.globalAddresses.deleteInternal
  • compute.networks.use
  • compute.networks.listPeeringRoutes
Kann ich mit Private Service Connect eine Konfiguration für private Verbindungen erstellen? Nein, Datastream unterstützt Private Service Connect nicht.

Datastream überwachen

Frage Antwort
Woher weiß ich, wann alle meine bisherigen Daten in das Ziel kopiert wurden? Datastream stellt Informationen zu seinem aktuellen Status in den Protokolldateien bereit. Es wird ein Logeintrag erstellt, der angibt, wann das Backfill für eine Tabelle abgeschlossen ist.
Die Latenz nimmt gelegentlich zu und nimmt dann mit der Zeit allmählich ab. Ist das zu erwarten? Datastream wird automatisch hochskaliert, wenn der von der Quelle generierte Ereignisdurchsatz steigt. Um sowohl die Quelldatenbank als auch Datastream zu schützen, gibt es jedoch Limits für die Anzahl gleichzeitiger Verbindungen und Prozesse, die Datastream jederzeit öffnen kann. Vorübergehende Spitzen in der Latenz sind zu erwarten, wenn der Ereignisdurchsatz deutlich ansteigt, und nehmen bei der Verarbeitung des Ereignisrückstands allmählich ab.

Preise

Frage Antwort
Welche Preise gelten für Datastream?

Die Preise für Datastream richten sich nach dem Volumen (GB) der Daten, die von der Quelle in ein Ziel verarbeitet werden.

Weitere Informationen zu den Preisen für Datastream finden Sie unter Preise.

Wie wird die Größe der Daten berechnet? Die Abrechnung erfolgt anhand der Größe der von Datastream verarbeiteten Daten. Datastream stellt nur Daten in Rechnung, die an das Ziel gestreamt werden.
Wofür bezahlen Sie Datastream mit BigQuery, Dataflow oder Cloud Data Fusion? Jeder Dienst wird separat abgerechnet.

Weitere Informationen

Frage Antwort
Ich habe weitere Fragen oder Probleme mit der Verwendung von Datastream. Was kann ich tun? Das Supportteam von Google kann Sie unterstützen, wenn Sie Probleme mit der Verwendung von Datastream haben. Außerdem werden in der Anleitung zur Fehlerbehebung gängige Probleme mit der Verwendung von Datastream beschrieben.