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
  • Verhalten und Einschränkungen von MySQL-Quellen
  • Verhalten und Einschränkungen von Oracle-Quellen
  • Verhalten und Einschränkungen von PostgreSQL-Quellen (einschließlich AlloyDB for PostgreSQL)
  • Verhalten und Einschränkungen der SQL Server-Quelle
  • Verhalten von BigQuery-Zielen
  • Verhalten von Cloud Storage-Zielen
  • 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. Mit einer serverlosen Autoscaling-Architektur können Sie mit Datastream ganz einfach eine ELT-Pipeline (Extrahieren, Laden und Transformieren) einrichten, um eine Datenreplikation mit niedriger Latenz zu ermöglichen und Informationen nahezu in Echtzeit zu erhalten.

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 Ihnen eine optimierte Einbindung von Dataflow-Vorlagen, um Datenbanken für die Datenbanksynchronisierung in Cloud SQL oder Spanner zu replizieren. Alternativ können Sie den Ereignisstream direkt aus Cloud Storage nutzen, um ereignisgesteuerte Architekturen zu erstellen. Darüber hinaus lässt sich Datastream für Kunden in Cloud Data Fusion einbinden, die 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 CDC?

CDC ist ein Ansatz für die Datenintegration, mit dem Sie Daten schneller einbinden und analysieren können, wobei weniger Systemressourcen verwendet werden. 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 operative Datenspeicher und Data Warehouses geladen werden. Außerdem entfällt die Notwendigkeit einer Aktualisierung von Massenlasten und umständlicher Batch-Fenster, da das inkrementelle Laden oder das Streamen von Datenänderungen nahezu in Echtzeit in ein Datenziel möglich ist.

CDC kann in vielen Anwendungsfällen verwendet werden, die aus dem ständigen Zugriff auf Datenänderungen bei deren Auftreten Nutzen ziehen, z. B. Analysen, die 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 Standard-Backfill-Typ für Tabellen. Beim inkrementellen Backfill ruft Datastream Daten aus Zeilenbereichen in mehreren Batches ab und streamt die Daten per Batch an einen Ziel-Batch.
  • Vollständiger Dump: Während des vollständigen Dump-Backfills ruft Datastream alle Daten auf einmal ab und streamt sie an ein Ziel.
Gibt es Einschränkungen, die Sie bei der Durchführung eines Backfills beachten müssen?

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

Welche Reihenfolge wird für CDC- und Backfill-Vorgänge empfohlen? In den meisten Fällen ist hier keine besondere Beachtung zu beachten. Wenn der Backfill für einen Stream aktiviert ist, führt Datastream sowohl Backfill als auch CDC gleichzeitig aus. In einigen Grenzfällen, z. B. beim Replizieren 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 der CDC- und Backfill-Vorgänge ü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 praktisch 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 zu 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, besteht aus einer Reihe von Dateien, die Änderungsprotokollereignisse aus einer bestimmten Tabelle über einen bestimmten Zeitraum enthalten. Die Ereignisse stellen Einfüge-, Aktualisierungs- und Löschvorgänge in dieser Tabelle dar. Die Ereignisse können nach Cloud Storage von Diensten wie Dataflow für Anwendungsfälle wie ereignisgesteuerte Architekturen verarbeitet und verarbeitet werden.

Replikation im Datastream-Kontext bedeutet eine aktuelle 1:1-Darstellung der Quelltabelle im Ziel. Zum Beispiel eine Tabelle in Oracle, deren Änderungen kontinuierlich in eine BigQuery-Tabelle repliziert werden, in der die BigQuery-Tabelle mithilfe der aus der Oracle-Tabelle gestreamten Änderungen auf dem neuesten Stand gehalten wird. Die Replikation nutzt Änderungsstreams, indem jedes Änderungsereignis übernommen und zum Aktualisieren des Ziels verwendet wird. Datastream ermöglicht die direkte Replikation in BigQuery und unterstützt durch die Einbindung in Dataflow zusätzliche Ziele wie Cloud SQL und Spanner. Dazu werden Vorlagen verwendet, die die Änderungsstreamereignisse aus Cloud Storage abrufen und die Zieltabellen entsprechend aktualisieren.

Erfordert Datastream einen Agent an der Quelle? Sie müssen in der Quelle keinen Agent installieren. Datastream verwendet vorhandene Schnittstellen (z. B. Oracle LogMiner), um die Daten aus der Quelle zu entfernen.
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. Es kann aus geschäftlichen Gründen erforderlich sein, verschiedene Streams für verschiedene logische Abläufe zu verwenden, aber jeder Stream erhöht die Belastung der Quelldatenbank. Eine solche Last ist für CDC vernachlässigbar, kann aber für den Backfill erheblich sein.
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 das Aktualisieren von Massenlasten und umständliche Batch-Fenster überflüssig, da inkrementelles Laden oder das Streamen von Datenänderungen nahezu in Echtzeit an ein Ziel ermöglicht wird.

Außerdem minimiert Datastream die Auswirkungen eines ersten Backfills, indem die Anzahl gleichzeitiger Backfill-Aufgaben begrenzt wird. So können Sie entscheiden, für welche Objekte ein Backfill ausgeführt werden soll und wann ein Backfill ausgefü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.
Können mit Datastream bestimmte Tabellen und Spalten aus einer Quelle gestreamt werden? Ja. Mit Datastream können Sie Ein- und Ausschlusslisten für Tabellen und Schemas angeben, um nur die Daten zu streamen, die Sie von einer Quelle an ein Ziel streamen möchten. Bei eingeschlossenen Tabellen können Sie bestimmte Spalten der Tabellen ausschließen, um genau festzulegen, 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 Verlaufsdaten auffüllen 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 Backfill von Verlaufsdaten 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 Datenbank-Logdateien ohne Commit durchgeführt wurden und ein Rollback von Transaktionen durchgeführt wird, spiegelt die Datenbank dies in den Protokolldateien als DML-Vorgänge (Data Manipulation Language) wider. Ein Rollback für INSERT-Vorgänge hat 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 unterstützt Datastream?

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

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

Für 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.

Bei PostgreSQL und AlloyDB for PostgreSQL verwendet Datastream die logische Decodierungsfunktion von PostgreSQL. Die logische Decodierung zeigt alle Änderungen an, die per Commit an die Datenbank übergeben wurden, und ermöglicht die Übernahme und Verarbeitung dieser Änderungen.

Bei SQL Server verfolgt Datastream Änderungen 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 für bestimmte Datenbankquellen.

Allgemeine Einschränkungen:

  • Durchsatz: ca. 5 MB/s mit einer maximalen Zeilengröße von 30 MB für das Cloud Storage-Ziel und 20 MB für die Zeilengröße 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 löschen. Dies kann zu Datenabweichungen führen, da die 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 quellenspezifischen 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.
Garantiert Datastream 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 in 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 in allen Quellen normalisiert werden. Datastream verwendet den ursprünglichen Quelldatentyp (z. B. einen MySQL- oder PostgreSQL-Typ NUMERIC oder einen Oracle-Typ NUMBER) 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. Jedes Ereignis verweist auf das Schema zum Zeitpunkt der Erstellung. Auf diese Weise kann Datastream Schemaänderungen verfolgen und sich basierend auf diesen Änderungen anpassen. Dadurch wird sichergestellt, dass alle Daten ordnungsgemäß gestreamt und in das Ziel geladen werden. Zwischen Schemaabrufen werden jedoch möglicherweise einige Schemaänderungen nicht erkannt, was zu Datenabweichungen führen kann.
Ich habe eine Spalte in meiner Quelldatenbank gelöscht (verloren), aber sie wird immer noch im Ziel angezeigt. Warum? Datastream löscht keine Spalten im Ziel. Sie müssen Spalten manuell löschen. Dieses Verhalten ist beabsichtigt, da Sie die gelöschte Spalte in einigen Fällen am Ziel behalten möchten. Datastream interpretiert beispielsweise das Umbenennen einer Spalte in der Quelle als Löschen einer Spalte und Hinzufügen einer weiteren Spalte. 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 versuche trotzdem, den Stream auszuführen. Wie kann ich diese Überprüfung bestehen? Sie können den Stream über die API starten, indem Sie das Flag force=true hinzufügen und die Validierungsprüfungen überspringen. Beachten Sie, dass das Überspringen von Validierungen nicht garantiert, dass der Stream ausgeführt werden kann. Er kann aber dennoch fehlschlagen, wenn der Datenbank die erforderlichen Konfigurationen 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 unter Fehlerbehebung bei einem Stream.

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

Sperrt Datastream Datenbanktabellen?

Nein. Datastream muss die Tabellen nicht sperren.

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

Verhalten und Einschränkungen von MySQL-Quellen

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 Version 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 zum Replizieren von Daten aus einer MySQL-Datenbank erteilen:

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

Nein, Datastream unterstützt die Komprimierung von Transaktionsereignissen mit Binärprotokoll-Transaktionskomprimierung nicht. Deaktivieren Sie die Komprimierung der binären Logtransaktionen, um die Change Data Capture-Funktion für MySQL in Datastream zu nutzen.

Ihre Organisation lässt das Gewähren der Berechtigung SELECT für alle ihre Tabellen und Datenbanken nicht zu. Können Sie Datastream weiterhin 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 spezifische IP-Adresse oder den spezifischen Adressbereich.

Verhalten und Einschränkungen von Oracle-Quellen

Frage Antwort
Wie ruft Datastream Daten aus Oracle ab? Datastream verwendet Oracle LogMiner, um die Daten aus den Redo-Logs von Oracle zu extrahieren.
Benötigt Datastream eine GoldenGate-Lizenz von Oracle? Nein. Datastream benötigt keine GoldenGate-Lizenz, da Oracle LogMiner zum Lesen der Daten aus den Redo-Logs der Datenbank verwendet wird.
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 allen zukünftigen Releases unterstützen. Oracle hat die Unterstützung für die LogMiner-Option CONTINUOUS_MINE eingestellt. Diese Option wird von Datastream jedoch 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 Verschlüsselung mit Secure Sockets Layer (SSL) und der Transport Layer Security (TLS)?

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 mehrmandantenfähige Oracle-Architektur (CDB/PDB). Sie können jedoch nur eine einzelne Plug-in-Datenbank in einem Stream replizieren.
Ihre Organisation lässt das Gewähren der Berechtigung GRANT SELECT ANY TABLE nicht zu. Können Sie Datastream weiterhin verwenden?

Wenn Sie die Berechtigung GRANT SELECT ANY TABLE nicht gewähren können, haben Sie die Möglichkeit, die Berechtigung SELECT für die folgende Liste von Tabellen 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

Zum Streamen von Änderungen mit Datastream benötigen Sie außerdem Lesezugriff auf alle Tabellen im Stream.

Um den Stream zu starten, müssen Sie die Validierung mithilfe der API umgehen. Weitere Informationen finden Sie unter Stream starten.

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

Verhalten und Einschränkungen von PostgreSQL-Quellen

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 beide Quellen. Informationen zum Konfigurieren der 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. Sie können diese Einschränkung jedoch mithilfe der Klausel BYPASSRLS umgehen:
ALTER USER USER_NAME BYPASSRLS;

Ersetzen Sie USER_NAME durch den Namen des Nutzers, über den Datastream eine Verbindung zur Datenbank herstellt und für den Sie die 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 von Replikationsslots und Replikationsslots unterstützen keine gleichzeitigen Verbindungen. Es darf 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. Alle nachfolgenden Änderungen an der Quelle werden verzögert, bis die Löschereignisse, die sich bereits in der Warteschlange des Replikationsslots befinden, verarbeitet wurden.
Unterstützt Datastream die Verschlüsselung mit Secure Sockets Layer (SSL) und der Transport Layer Security (TLS)?

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 unterstützt Datastream? 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? Beim Datastream-Datenaufnahmeprozess werden anstelle von Microsoft CDC-basierten Tabellen Transaktionslogs verwendet. Dieser Ansatz reduziert die Belastung der Datenbank und sorgt gleichzeitig für 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 Mitglied der festen Datenbankrolle db_owner sein. Informationen zum Hinzufügen eines Nutzers zur Rolle finden Sie auf den Konfigurationsseiten für den SQL Server-Quelldatenbanktyp.
Warum benötigen Sie beim Konfigurieren der SQL Server-Quelle eine Konfiguration, z. B. das Ändern von Abfrageintervallen und das Einrichten eines Schutzes für die Kürzung? 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 Datenverlust. Das Ändern der Abfrageintervalle und das Einrichten einer Schutzvorkehrung für die Kürzung ist optional, bietet jedoch eine zusätzliche Sicherheitsebene, damit Datastream die Daten auch dann lesen kann, wenn Ausfallzeiten oder Verbindungsprobleme auftreten. Weitere Informationen finden Sie unter SQL Server-Quelldatenbank konfigurieren.

Verhalten von BigQuery-Zielen

Frage Antwort
Wie arbeiten Datastream und BigQuery zusammen, um Änderungen aus der Quelldatenbank zu replizieren? Datastream liest den Änderungsstream kontinuierlich aus der Quelldatenbank und streamt die Upsert- und Löschereignisse mit der Storage Write API an die BigQuery-Zieltabellen. BigQuery wendet die Änderungen dann basierend auf der Konfiguration für die Veralterung der Tabelle auf die Tabelle an.
Wie werden UPDATE- und DELETE-Vorgänge in BigQuery angewendet? Wenn Datastream eine Tabelle in BigQuery erstellt, werden die Primärschlüssel für die Tabelle gemäß den in der Quelle definierten Primärschlüsseln festgelegt. BigQuery verarbeitet die Ereignisse und wendet basierend auf den Primärschlüsseln der Tabelle Änderungen auf die zugrunde liegende BigQuery-Tabelle an.
Wie verarbeiten Datastream und BigQuery Tabellen, die keinen Primärschlüssel haben? Wenn die Quelltabelle keinen Primärschlüssel hat, werden die Tabellen nur als Anhang behandelt und jedes Ereignis für eine bestimmte Zeile wird in BigQuery als separate Zeile angezeigt.
Wie verarbeiten Datastream und BigQuery die Ereignissortierung? BigQuery verwendet die Ereignismetadaten und eine interne Änderungssequenznummer (Change Sequence Number, CSN), um die Ereignisse in der richtigen Reihenfolge auf die Tabelle anzuwenden. Weitere Informationen zu Ereignismetadaten finden Sie unter Ereignisse und Streams.
Wie werden die Kosten für BigQuery bei der Verwendung mit Datastream berechnet? Die Kosten für BigQuery werden getrennt von Datastream berechnet und in Rechnung gestellt. Informationen zur Kontrolle Ihrer BigQuery-Kosten finden Sie unter BigQuery-CDC-Preise.
Welche maximale Zeilengröße unterstützt Datastream beim Streamen von Daten in BigQuery? Die maximale Zeilengröße, die Datastream unterstützt, beträgt 20 MB.
Beim Streamen nach BigQuery wird Tabellen das Präfix _ vorangestellt. Können Sie dieses Verhalten so ändern, dass die Tabellen in BigQuery dieselbe Struktur haben wie in der Quelldatenbank? 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 für jedes Schema ein Dataset erstellen, wird jedes Schema in der Quelle einem Dataset in BigQuery zugeordnet und alle Tabellen im Quellschema werden den Tabellen im Dataset zugeordnet. Wenn Sie die Option „Einzelnes Dataset für alle Schemas“ auswählen, wird den Tabellennamen gemäß der Konventionen für Tabellenbenennung in BigQuery das Präfix _ vorangestellt.
Kann CDC Quellschemaänderungen erfassen, z. B. wenn eine Spalte in die Quelle eingefügt oder gelöscht wird? Werden solche Änderungen automatisch für die 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. Die bereits in das Ziel replizierten Zeilen werden jedoch nicht übernommen. Gelöschte Spalten werden ignoriert und Datastream füllt sie mit NULL-Werten im Ziel. Sie können diese Spalten dann manuell in BigQuery löschen.

Verhalten von Cloud Storage-Zielen

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, mit denen die Zeile in den Protokolldateien eindeutig identifiziert wird und mit denen Sie die Ereignisse sortieren können. Zu diesen Feldern gehören:

Für Oracle-Quellen:

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

Für MySQL-Quellen:

  • log_file, von 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 für den Zeitstempel der Änderung des Eintrags in der Quelle. Wenn die source_timestamp-Werte für die Ereignisse, die Sie sortieren, identisch sind, vergleichen Sie die lsn-Werte.
  • lsn (Logsequenznummer), die den Offset des Eintrags in der WAL-Logdatei angibt.

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 dateiübergreifend 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 bestimmten 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 bei der Veranstaltung Informationen Vorher und Nachher? 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 UPDATE-DELETE-Ereignis repräsentiert die Daten vor der Aktualisierung und UPDATE-INSERT die Daten nach der Aktualisierung. Weitere Informationen zu quellenspezifischen Metadaten finden Sie unter Ereignisse und Streams.
Welche maximale Zeilengröße unterstützt Datastream beim Streamen von Daten in Cloud Storage? 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 in BigQuery auf aktuelle Betriebsdaten zugreifen. Kunden können diese kontinuierlich aktualisierten Daten in BigQuery verwenden, um aktuelle Dashboards zu ihren Daten zu erstellen. Diese Daten können beispielsweise zur Überwachung von Systemen und zur Gewinnung aktueller Erkenntnisse über den Zustand ihres Unternehmens verwendet werden.
  2. Szenarien für Datenbankreplikation und -synchronisierung:Wenn Sie Datastream in Dataflow-Vorlagen zum Laden von Daten in Cloud SQL oder Spanner einbinden, 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 kontinuierliches Schreiben von Ereignisdaten in Ziele wie BigQuery und Cloud Storage können Sie ereignisgesteuerte Architekturen erstellen, die auf dem Verbrauch von Ereignisdaten von 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 für die direkte Einbindung in BigQuery. Datastream schreibt die Änderungsereignisse direkt in das BigQuery-Dataset, wo die Änderungen kontinuierlich mit den vorhandenen Daten zusammengeführt werden (UPSERT).
  • Dataflow:Datastream lässt sich mithilfe von Dataflow-Vorlagen in Dataflow einbinden. 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 an 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 für die sofortige Verarbeitung erstellt.
  • Cloud Data Fusion:Datastream wird in Cloud Data Fusion eingebunden, indem ein Oracle-Connector über die Replikationsfunktion von Cloud Data Fusion bereitgestellt wird. Sie können eine Oracle-Replikationsquelle erstellen, die Datastream transparent „steuert“, um auf einfache Weise eine Datenpipeline aufzubauen. 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 für die Vorlage für Datastream zu BigQuery in Dataflow Einschränkungen für die Anzahl der DML-Vorgänge (Data Manipulation Language)? Nein. Die Vorlage verwendet die Streaming Inserts API, um Daten in BigQuery zu laden. Daher ist die Anzahl der DML-Vorgänge nicht begrenzt. Es gelten jedoch 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. Nach der Replikation werden die Daten standardmäßig verschlüsselt und die Sicherheitskontrollen von BigQuery oder Cloud Storage genutzt. 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 festlegen, welche Datenelemente (Schemas, Tabellen und Spalten) Ihrer Quelle Sie in ein Ziel streamen möchten 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 die Anmeldedaten für Datenbanken? Alle Metadaten von Nutzern, einschließlich Nutzername und Passwort für den Zugriff auf die Datenquellen, werden bei der Übertragung und im Ruhezustand 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 das Gewähren der Rolle networkAdmin für das Datastream-Dienstkonto nicht zulässt, 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

Peer-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, ob alle meine bisherigen Daten in das Ziel kopiert wurden? Datastream stellt in den Protokolldateien Informationen zu seinem aktuellen Status bereit. Es wird ein Logeintrag erstellt, um anzuzeigen, wenn der Backfill einer Tabelle abgeschlossen ist.
Die Latenz nimmt gelegentlich zu und nimmt dann im Laufe der Zeit ab. Ist das zu erwarten? Datastream skaliert automatisch hoch, wenn der von der Quelle generierte Ereignisdurchsatz zunimmt. Um sowohl die Quelldatenbank als auch Datastream jedoch zu schützen, sind die Anzahl der gleichzeitigen Verbindungen und Prozesse, die Datastream jederzeit öffnen kann, begrenzt. Vorübergehende Spitzen in der Latenz sind zu erwarten, wenn der Ereignisdurchsatz erheblich steigt, und werden voraussichtlich schrittweise abnehmen, wenn der Ereignisrückstand verarbeitet wird.

Preise

Frage Antwort
Welche Preise gelten für Datastream?

Die Preise für Datastream basieren auf dem Volumen (GB) der Daten, die von der Quelle an ein Ziel gestreamt werden.

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

Wie wird die Größe der Daten berechnet? Die Abrechnung basiert auf der unkomprimierten Rohdatengröße, die von der Quelle zum Ziel gestreamt wird. Datastream stellt nur Daten in Rechnung, die an das Ziel gestreamt werden.
Wenn Sie Datastream mit BigQuery, Dataflow oder Cloud Data Fusion verwenden, wofür zahlen Sie dann? Beide Dienste werden 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.