FAQ

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 Quellverhalten und Einschränkungen
  • 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 von SQL Server-Quellen
  • Verhalten von BigQuery-Zielen
  • Verhalten von Cloud Storage-Zielen
  • Gängige Anwendungsfälle für die Verwendung von Datastream
  • Wie Datastream in Google Cloud Datendienste eingebunden wird
  • 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. Mit Datastream können Daten aus relationalen Datenbankquellen wie AlloyDB for PostgreSQL, PostgreSQL, MySQL, SQL Server und Oracle nahtlos direkt in BigQuery repliziert werden. Datastream bietet die Skalierbarkeit, Geschwindigkeit, Sicherheit und Einfachheit, die moderne Unternehmen benötigen. Mit der serverlosen, automatisch skalierten Architektur von Datastream können Sie ganz einfach eine ELT-Pipeline (Extract, Load, Transform) für die Datenreplikation mit niedriger Latenz einrichten. So lassen sich Informationen nahezu in Echtzeit ableiten.

Mit Datastream können Sie außerdem Datenstreams über heterogene Datenbanken und Anwendungen zuverlässig und mit minimaler Latenz synchronisieren. Der Dienst bietet eine optimierte Einbindung in Dataflow-Vorlagen, um Datenbanken zur Datenbanksynchronisierung in Cloud SQL oder Spanner zu replizieren. Außerdem können Sie den Ereignisstream direkt aus Cloud Storage nutzen, um ereignisgesteuerte Architekturen zu realisieren.

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 und mit weniger Systemressourcen integrieren 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 zum Begrenzen der Auswirkungen auf die Quelle, wenn neue Daten in operative Datenspeicher und Data Warehouses geladen werden. Außerdem kann durch CDC auf das Aktualisieren von Bulk-Ladegängen und umständliche Batch-Fenster verzichtet werden, indem inkrementelles Laden oder Streaming von Datenänderungen in Echtzeit an ein Datenziel ermöglicht werden.

CDC kann in vielen Anwendungsfällen verwendet werden, die Nutzen aus einem konstanten Zugriff auf Datenänderungen ziehen, z. B. Analysen, Synchronisierung von Daten über geografisch verteilte Systeme und ereignisgesteuerte Architekturen.

Was ist 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 für Backfills bei Tabellen. Beim inkrementellen Backfill ruft Datastream Daten aus Zeilenbereichen in mehreren Batches ab und streamt sie nach und nach an ein Ziel.
  • Full Dump: Beim Full-Dump-Backfill ruft Datastream alle Daten gleichzeitig ab und streamt sie an ein Ziel.
Gibt es Einschränkungen, die bei einem Backfill zu beachten sind?

Informationen zu Einschränkungen beim Backfill 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 ist das nicht der Fall. 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, die nicht mit Datastream aufgefüllt werden können, 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 für jedes Objekt überwachen:

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

Der CDC-Status entspricht dem 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 der Unterschied zwischen einem Änderungsstream und einer Replikation?

Ein Änderungsstream ist eine Abfolge von Ereignissen, die Datastream an ein Ziel für die nachgelagerte Nutzung ausgibt. Das Ergebnis eines Änderungsstreams, der in Cloud Storage geschrieben wird, besteht aus einer Reihe von Dateien, die Änderungslogereignisse aus einer bestimmten Tabelle über einen bestimmten Zeitraum enthalten. Die Ereignisse stellen Einfügungen, Aktualisierungen und Löschungen in der Tabelle dar. Die Ereignisse können von Diensten wie Dataflow für Anwendungsfälle wie ereignisgesteuerte Architekturen nachgelagert genutzt 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. Die BigQuery-Tabelle wird mit den Änderungen aus der Oracle-Tabelle auf dem neuesten Stand gehalten. Bei der Replikation werden Änderungsstreams verwendet, indem die einzelnen Änderungsereignisse verbraucht und zum Aktualisieren des Ziels verwendet werden. Datastream ermöglicht die direkte Replikation in BigQuery und unterstützt über die Einbindung in Dataflow zusätzliche Ziele wie Cloud SQL und Spanner. Dazu werden Vorlagen verwendet, mit denen die Änderungsstream-Ereignisse aus Cloud Storage abgerufen und die Zieltabellen entsprechend aktualisiert werden.

Erfordert Datastream einen Agent an der Quelle? Sie müssen keinen Agenten an 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. Es kann jedoch geschäftliche Gründe geben, verschiedene Streams für verschiedene logische Abläufe zu verwenden, z. B. beim Replizieren großer Transaktionen aus PostgreSQL-Quellen. Jeder Stream erhöht jedoch die Auslastung der Quelldatenbank. Diese Belastung ist für die CDC vernachlässigbar, kann aber für das 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. Außerdem kann durch CDC auf das Aktualisieren von Bulk-Ladegängen und umständliche Batch-Fenster verzichtet werden, indem inkrementelles Laden oder Streaming von Datenänderungen in Echtzeit an ein Ziel ermöglicht werden.

Darüber hinaus minimiert Datastream die Auswirkungen eines ersten Backfills durch Begrenzen der Anzahl gleichzeitiger Backfill-Aufgaben. Außerdem können Sie steuern, auf welche Objekte und wann ein Backfill angewendet werden soll.

Können Sie die Logdateien aus der Quelle nach Google Cloudkopieren? 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 Listen mit Ein- und Ausschlussbedingungen für Tabellen und Schemas angeben, um nur die gewünschten Daten von einer Quelle an ein Ziel zu streamen. Bei eingeschlossenen Tabellen können Sie bestimmte Spalten der Tabellen ausschließen, um genau festzulegen, welche Daten an 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, aber wählen Sie nicht das Kästchen Verlaufsdaten für Backfill aus.
  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 Verlaufsdaten für Backfill aktivieren. 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 Datenbankprotokolldateien nicht festgeschriebene Transaktionen enthalten und Transaktionen rückgängig gemacht werden, wird dies in den Protokolldateien als „umgekehrte“ DML-Vorgänge (Datenmanipulationssprache) dargestellt. Ein Rollback-Vorgang INSERT 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 Quellverhalten und Einschränkungen

Frage Antworten
Welche Quellen werden von Datastream unterstützt?

Datastream unterstützt das Streaming von Daten aus Oracle-, MySQL-, PostgreSQL-, AlloyDB for PostgreSQL- und SQL Server-Quellen, sowohl in der Cloud als auch selbstverwaltet. Informationen zu quellenspezifischen 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.

Bei PostgreSQL und AlloyDB for PostgreSQL nutzt Datastream die logische Decodierung von PostgreSQL. Die logische Decodierung macht alle Änderungen sichtbar, die in der Datenbank verbindlich gemacht wurden, und ermöglicht deren Nutzung und Verarbeitung.

Bei SQL Server erfasst Datastream DML-Änderungen (Data Manipulation Language) mithilfe von Transaktionsprotokollen.

Können Sie Logdateien direkt aus einer Quelle nach Google Cloudkopieren? 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 gelten für die Daten, die mit Datastream verarbeitet werden können?

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

Allgemeine Einschränkungen:

  • Ereignisgröße: Maximal 100 MB Zeilengröße für Cloud Storage-Ziele und 20 MB Zeilengröße für BigQuery.
  • Einige DDL-Vorgänge (Data Definition Language) während der Replikation werden nicht unterstützt, darunter:
    • Spalte in der Mitte einer Tabelle löschen Dies kann zu Datenabweichungen 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.
    • Kaskadenlöschungen 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 vermeiden, indem Sie zusätzliche metadata 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 über Quellen hinweg, indem Datentypen aus allen Quellen normalisiert werden. Datastream normalisiert den ursprünglichen Quelldatentyp (z. B. einen MySQL- oder PostgreSQL-NUMERIC-Typ oder einen Oracle-NUMBER-Typ) und normalisiert ihn zu einem 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 von der Quelle ab. Schemas werden in der internen Schemaregistrierung von Datastream gespeichert. Jedes Ereignis verweist auf das Schema zum Zeitpunkt seiner Generierung. So kann Datastream Schemaänderungen verfolgen und entsprechend anpassen, damit alle Daten richtig gestreamt und in das Ziel geladen werden. Zwischen den Schemaabrufen können jedoch einige Schemaänderungen nicht erkannt werden, was zu Datenabweichungen führen kann.
Ich habe eine Spalte in meiner Quelldatenbank gelöscht, sie wird aber weiterhin in der Zieldatenbank angezeigt. Warum? Mit Datastream werden keine Spalten im Ziel gelöscht. Spalten müssen manuell gelöscht werden. Dieses Verhalten ist beabsichtigt, da Sie die gelöschte Spalte in einigen Fällen im Ziel beibehalten möchten. Wenn Sie beispielsweise eine Spalte in der Quelle umbenennen, wird das von Datastream als Löschen einer Spalte und Hinzufügen einer anderen Spalte interpretiert. In diesem Fall möchten Sie die ursprüngliche Spalte im Ziel nicht verlieren.
Der Stream kann aufgrund eines Validierungsfehlers nicht gestartet werden. Ich glaube aber, dass es sich um einen Fehler handelt oder ich möchte den Stream trotzdem ausführen. Wie kann ich diese Bestätigung umgehen? Du kannst den Stream über die API starten, indem du das Flag force=true hinzufügst und die Validierungsüberprüfungen überspringst. Das Überspringen der Validierungen ist keine Garantie dafür, dass der Stream ausgeführt werden kann. Es kann weiterhin zu Fehlern kommen, wenn in der Datenbank die erforderlichen Konfigurationen oder Berechtigungen fehlen.
Kann ich einen fehlgeschlagenen Stream neu starten?

Sie können einen Stream mit dem Status Failed beheben, indem Sie die von Datastream gemeldeten Fehler beheben. Weitere Informationen finden Sie unter Fehlerbehebung bei Streams.

Sie können 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 wird angegeben,dass Streams bis zu 10.000 Tabellen enthalten können. Bedeutet das,dass Datastream keine CDC-Vorgänge für mehr als 10.000 Tabellen gleichzeitig ausführen kann? Nein. Das erwähnte Limit gilt pro Stream. Sie können mehrere Streams mit einer Gesamtzahl von 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-Versionen 5.7 und 8.0.

Sie können das binäre Logging auf diesen 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 erteilen, um Daten aus einer MySQL-Datenbank zu replizieren:

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
Unterstützt Datastream die Komprimierung von Binärprotokollen?

Nein. Datastream unterstützt die Komprimierung von Transaktionsereignissen mit der Binärlog-Transaktionskomprimierung nicht. Deaktivieren Sie die Komprimierung von binären Log-Transaktionen, um die Funktion „Change Data Capture“ für MySQL in Datastream zu verwenden.

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

Sie können die Berechtigung SELECT den einzelnen Tabellen, die Sie replizieren möchten, oder dem gesamten Schema in einer Datenbank gewähren. 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, für die 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 IP-Adresse oder den 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.
Erfordert Datastream eine GoldenGate-Lizenz von Oracle? Nein. Datastream erfordert 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. 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 jedoch nicht von Datastream verwendet, sodass hierdurch keine Auswirkungen auf Datastream entstehen.
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 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 Architektur von Oracle (CDB/PDB). Sie können jedoch nur eine einzelne Plug-in-Datenbank in einem Stream replizieren.
Ihre Organisation erlaubt nicht, die Berechtigung GRANT SELECT ANY TABLE zu gewähren. Kann ich Datastream weiterhin verwenden?

Wenn Sie die GRANT SELECT ANY TABLE-Berechtigung nicht gewähren können, können Sie der folgenden Liste von Tabellen SELECT-Berechtigungen 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 Tabellen im Stream.

Um den Stream zu starten, überspringe 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. Mit Datastream können Sie jedoch keine direkte Verbindung zu Datenbanken über die SCAN-Funktion (Single Client Access Name) in Oracle Real Application Cluster-Umgebungen (RAC) herstellen. Um diese Einschränkung zu umgehen, können Sie eine direkte Verbindung zu einem der Knoten herstellen oder den Oracle Connection Manager verwenden. Sie können auch eine private Verbindungskonfiguration mit Reverse-Proxy-Lösungen wie HAProxy erstellen.

Verhalten und Einschränkungen von PostgreSQL-Quellen

Frage Antworten
Wie ruft Datastream Daten aus PostgreSQL ab? Datastream verwendet die Funktion logische Decodierung von PostgreSQL, um die Änderungsereignisse aus PostgreSQL zu extrahieren.
Unterstützt Datastream die Replikation von AlloyDB for PostgreSQL- oder AlloyDB Omni-Quellen? Ja. Datastream unterstützt beide Quellen. Informationen zum Konfigurieren Ihrer AlloyDB for PostgreSQL-Quelldatenbank finden Sie unter AlloyDB for PostgreSQL-Datenbank konfigurieren. Informationen zum Konfigurieren Ihrer AlloyDB Omni-Quelldatenbank finden Sie unter Selbstverwaltete PostgreSQL-Datenbank konfigurieren.
Unterstützt Datastream die Replikation von einer PostgreSQL-Lesereplikatinstanz? Nein. Datastream unterstützt keine Replikation von Lesereplikatinstanzen für PostgreSQL.
Unterstützt Datastream die Sicherheit auf Zeilenebene (Row-Level Security, RLS)? Datastream unterstützt keine Replikation von Tabellen, bei denen die RLS aktiviert ist. Sie können diese Einschränkung jedoch mit der Klausel BYPASSRLS umgehen:
ALTER USER USER_NAME BYPASSRLS;

Ersetzen Sie USER_NAME durch den Namen des Nutzers, der von Datastream zum Herstellen einer Verbindung zur Datenbank verwendet wird 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. Replikationsslots unterstützen keine parallelen Verbindungen. Es kann immer nur eine CDC-Aufgabe geben, die aus dem Replikationsslot liest. Wenn Sie beispielsweise eine große Anzahl von Datensätzen aus der Quelldatenbank löschen, wird der Replikationszeitplan möglicherweise durch Löschereignisse überlastet. Alle nachfolgenden Änderungen an der Quelle werden verzögert, bis die Löschereignisse, die sich bereits in der Replikationsslot-Warteschlange befinden, verarbeitet wurden.

Informationen zum empfohlenen Ansatz bei der Replikation großer Transaktionsdaten finden Sie unter Probleme diagnostizieren.

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

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

Verhalten und Einschränkungen von SQL Server-Quellen

Frage Antworten
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 ‑Editionen finden Sie unter Versionen.
Wie funktioniert die Datastream-CDC-Replikation für SQL Server-Quellen? Für die Datenaufnahme in Datastream werden je nach Quellkonfiguration Transaktionsprotokolle oder Änderungstabellen verwendet. Weitere Informationen finden Sie unter SQL Server-Quelldatenbank.
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 erteilen, um Daten aus einer SQL Server-Datenbank zu replizieren:

Für die CDC-Methode für Änderungstabellen:

  • db_owner
  • db_denydatawriter

Zusätzlich gilt für die CDC-Methode für Transaktionslogs:

  • SELECT-Berechtigungen für die Datenbank und die sys.fn_dblog-Funktion
  • SELECT-Berechtigungen für die Tabelle dbo.sysjobs
  • VIEW SERVER STATE
  • Ausführliche Informationen zur Konfiguration der Quelle finden Sie auf den entsprechenden Konfigurationsseiten für Ihren Datenbanktyp.

Warum sind Konfigurationen wie das Ändern von Abfrageintervallen und das Einrichten einer Kürzungssicherung bei der Verwendung von Transaktionsprotokollen erforderlich? Wenn Sie Daten aus einer SQL Server-Quelle mithilfe von Transaktionsprotokollen replizieren und ein Protokoll vor dem Lesen durch Datastream abgeschnitten wird, kommt es zu Datenverlusten. Das Ändern der Abfrageintervalle und das Einrichten von Schutzmaßnahmen gegen Kürzung ist optional, bietet aber einen zusätzlichen Schutz, damit Datastream die Daten auch in Szenarien lesen kann, in denen es zu Ausfallzeiten oder Verbindungsproblemen kommt. Weitere Informationen finden Sie unter SQL Server-Quelldatenbank konfigurieren.
Welche CDC-Methode sollte bei der Replikation von einer SQL Server-Quelle ausgewählt werden?

Je nach Konfiguration der Quell-SQL-Server-Datenbank können Sie eine der beiden verfügbaren CDC-Methoden auswählen:

  • Transaktionsprotokolle: Wählen Sie diese Methode aus, um Änderungen direkt aus den Datenbankprotokollen zu verarbeiten. Diese Methode bietet die beste Leistung und ist effizienter, erfordert aber zusätzliche Konfigurationsschritte, die möglicherweise nicht von Ihrer Datenbank unterstützt werden.
  • Änderungstabellen: Wählen Sie diese Methode aus, um Änderungen aus speziellen Änderungstabellen zu verarbeiten. Diese Methode ist einfacher zu konfigurieren und hat weniger Einschränkungen, unterstützt aber einen geringeren Durchsatz und erhöht die Belastung Ihrer Datenbank.

Weitere Informationen finden Sie unter SQL Server als Quelle.

Verhalten von BigQuery-Zielen

Frage Antworten
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 Löschereignisse mithilfe der Storage Write API an die BigQuery-Zieltafeln. BigQuery wendet die Änderungen dann auf die Tabelle an, basierend auf der Konfiguration der Tabellenveralterung.
Wie werden DML-Vorgänge (Data Manipulation Language) in BigQuery angewendet?
  • Im Modus Nur anhängen werden Daten in BigQuery als Änderungsstream angehängt. Dabei gibt es eine separate Zeile für jedes INSERT-, UPDATE-INSERT-, UPDATE-DELETE- und DELETE-Ereignis.
  • Im Modus Merge (Standardeinstellung) werden beim Erstellen einer Tabelle in BigQuery durch Datastream die Primärschlüssel der Tabelle gemäß den in der Quelle definierten Primärschlüsseln festgelegt. BigQuery verarbeitet die Ereignisse und wendet die Änderungen anhand der Primärschlüssel der Quelltabelle auf die zugrunde liegende BigQuery-Tabelle an. Wenn die Quelltabelle keinen Primärschlüssel hat, wird sie so behandelt, als wäre der Modus Nur anhängen verwendet worden.
Wie gehen Datastream und BigQuery mit der Ereignisreihenfolge um? BigQuery verwendet die Ereignismetadaten und eine interne Änderungssequenznummer (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 BigQuery-Kosten berechnet, wenn BigQuery mit Datastream verwendet wird? Die BigQuery-Kosten werden separat von Datastream berechnet und in Rechnung gestellt. Informationen zum Steuern Ihrer BigQuery-Kosten finden Sie unter BigQuery CDC-Preise.
Wie viele Zeilen werden von Datastream maximal unterstützt, wenn Daten in BigQuery gestreamt werden? Die maximale Zeilengröße, die von Datastream unterstützt wird, beträgt 20 MB.
Wenn Sie Daten in BigQuery streamen, erhalten Tabellen das Präfix _. Können Sie dieses Verhalten ändern, damit die Tabellen in BigQuery derselben Struktur wie in der Quelldatenbank folgen? Wenn Sie Datasets für ein BigQuery-Ziel konfigurieren, können Sie ein Dataset für jedes Schema oder ein einzelnes Dataset für alle Schemas erstellen. Wenn Sie ein Dataset für jedes Schema 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 Tabellenbenennungskonvention in BigQuery das Präfix _ vorangestellt.
Kann CDC Änderungen am Quellschema erfassen, z. B. wenn eine Spalte in die Quelle eingefügt oder daraus gelöscht wird? Werden solche Änderungen automatisch in den bereits ausgefüllten Tabellen in den Ziel-BigQuery-Datasets berücksichtigt? Datastream erkennt neue Spalten automatisch und fügt sie dem Zielschema für die neuen Zeilen hinzu, aber nicht denjenigen, die bereits an das Ziel repliziert wurden. Gelöschte Spalten werden ignoriert und Datastream füllt sie im Ziel mit NULL-Werten aus. 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, 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 tatsächlich aus drei Werten besteht (z. B. 0x0073c9.000a4e4c.01d0). Die rs_id identifiziert den Datensatz innerhalb des Redo-Logs eindeutig.
  • ssn (SQL-Sequenznummer), die verwendet wird, wenn der Datensatz im Protokoll zu lang ist. Daher teilt Oracle LogMiner den Datensatz in mehrere Zeilen auf.

Für MySQL-Quellen:

  • log_file, aus der Datastream Ereignisse bei der CDC-Replikation abruft.
  • log_position, der den Offset des Datensatzes im MySQL-Binärlog angibt.

Für PostgreSQL-Quellen:

  • source_timestamp, der Zeitstempel, zu dem sich der Eintrag in der Quelle geändert hat. Wenn die source_timestamp-Werte für die sortierten Ereignisse identisch sind, vergleichen Sie die lsn-Werte.
  • lsn (Logsequenznummer), die den Offset des Datensatzes in der WAL-Protokolldatei angibt.

Weitere Informationen zu Metadatenfeldern finden Sie unter Quellspezifische 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 der Dateien am besten ermitteln, indem Sie alle Ereignisse aus allen Dateien für den angegebenen Zeitstempel abrufen und dann die Reihenfolge anhand der oben genannten Methode anwenden.
Wie werden Aktualisierungen von Primärschlüsseln verarbeitet? Gibt es Informationen zum Vorher und Nachher des Ereignisses? Wenn sich der Primärschlüssel einer Zeile ändert, generiert Datastream zwei Ereignisse für die Änderung: eine UPDATE-DELETE und eine 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 quellespezifischen Metadaten finden Sie unter Ereignisse und Streams.
Wie viele Zeilen werden von Datastream maximal unterstützt, wenn Daten in Cloud Storage gestreamt werden? Die maximale Zeilengröße, die von Datastream unterstützt wird, beträgt 100 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 operative Daten in BigQuery zugreifen. Kunden können diese kontinuierlich aktualisierten Daten in BigQuery verwenden, um aktuelle Dashboards zu ihren Daten zu erstellen. Dies kann beispielsweise für das Überwachen von Systemen und für die Ableitung aktueller Informationen zum Zustand des Unternehmens verwendet werden.
  2. Szenarien für die Replikation und Synchronisierung von Datenbanken: Durch die Integration 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 von diesen Zielen basieren.

Integrationen

Frage Antworten
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 das größere Google Cloud Umfeld.

Datastream kann in die folgenden Datendienste eingebunden werden:

  • BigQuery:Datastream verwendet die BigQuery Write API, um direkt in BigQuery eingebunden zu werden. Datastream schreibt die Änderungsereignisse direkt in das BigQuery-Dataset, wo sie kontinuierlich mit den vorhandenen Daten zusammengeführt (UPSERT) werden.
  • Dataflow:Datastream kann über Dataflow-Vorlagen in Dataflow eingebunden werden. Mit diesen Vorlagen werden Daten aus Cloud Storage gelesen und in BigQuery, Cloud SQL for PostgreSQL oder Spanner geladen. Der Zweck dieser Vorlagen besteht darin, aktuelle replizierte Quelltabellen an den Zielen zu verwalten. Die Vorlagen sind in der Dataflow-UI verfügbar und werden für von Datastream generierte Dateien erstellt, um eine sofortige und mühelose Verarbeitung zu ermöglichen.
  • 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:Mit Datastream- und Dataflow-Vorlagen können Sie aktuelle replizierte Tabellen in den Datenbanken verwalten.
Gibt es für die Datastream-zu-BigQuery-Vorlage in Dataflow Einschränkungen bei der 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 Kontingenteinschrä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 Sicherheitsfunktionen 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 Cloudgehosteten Datenbanken über das interne Netzwerk von Google Cloudherstellen oder ein vorhandenes VPN oder Interconnect nutzen, indem Sie VPC-Peering zwischen dem privaten Netzwerk von Datastream und der Google Cloud VPC Ihrer Organisation einrichten.
Wie kann ich die Verarbeitung sensibler Daten durch Datastream einschränken?

Mit Datastream können Sie angeben, welche Datenelemente (Schemas, Tabellen und Spalten) Ihrer Quelle an ein Ziel gestreamt werden und welche Elemente vom Streaming ausgeschlossen 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 des Nutzernamens und Passworts für den Zugriff auf die Datenquellen, werden bei der Übertragung und im inaktiven Zustand verschlüsselt und von Google in seinen eigenen Speichersystemen gespeichert. 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 die Zuweisung der Rolle networkAdmin an das Datastream-Dienstkonto nicht zulässt, erstellen Sie eine benutzerdefinierte Rolle mit den folgenden 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 Private Service Connect verwenden, um eine Konfiguration für private Verbindungen zu erstellen? Nein, Datastream unterstützt Private Service Connect nicht.

Datastream überwachen

Frage Antworten
Woher weiß ich, wann alle Verlaufsdaten in das Ziel kopiert wurden? Datastream enthält Informationen zum aktuellen Status in den Protokolldateien. Es wird ein Logeintrag erstellt, um anzugeben, wann das Backfilling einer Tabelle abgeschlossen ist.
Die Latenz steigt gelegentlich an und nimmt dann im Laufe der Zeit allmählich ab. Ist das normal? Datastream wird automatisch hochskaliert, wenn der von der Quelle generierte Ereignisdurchsatz zunimmt. Um sowohl die Quelldatenbank als auch Datastream zu schützen, ist die Anzahl der gleichzeitigen Verbindungen und Prozesse, die Datastream jederzeit öffnen kann, jedoch begrenzt. Bei einem deutlichen Anstieg des Ereignisdurchsatzes sind vorübergehende Latenzspitzen zu erwarten. Sie sollten nach und nach abnehmen, sobald der Rückstand an Ereignissen abgearbeitet ist.

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 verarbeitet 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 Größe der Daten, die von Datastream verarbeitet werden. Datastream stellt nur Daten in Rechnung, die an das Ziel gestreamt werden.
Bei Verwendung von Datastream mit BigQuery oder Dataflow, wofür wird bezahlt? Die Preise für die einzelnen Dienste sind unterschiedlich und werden separat in Rechnung gestellt.

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.

Nächste Schritte