Mit Datastream können Sie Daten aus relationalen Datenbanken und anderen Quellen nahezu in Echtzeit in Ziele wie BigQuery, Apache Iceberg-Tabellen und Cloud Storage aufnehmen. Anschließend können Sie die replizierten Daten in BigQuery für Data Warehousing und Analysen verwenden oder Apache Spark-Jobs für KI- und ML-Arbeitslasten ausführen.
Konzepte
In diesem Abschnitt werden die wichtigsten Konzepte beschrieben, die Sie kennen müssen, um Datastream effektiv zu nutzen.
Change Data Capture
Change Data Capture (CDC) ist eine Reihe von Softwaredesign Mustern, mit denen geänderte Daten ermittelt und verfolgt werden, damit Anwendungen die Aktualisierungen verarbeiten können. CDC ist auch ein Ansatz zur Datenintegration, der auf der Identifizierung, Erfassung und Bereitstellung von Änderungen an Unternehmensdatenquellen basiert.
Ereignis-Sourcing
Das Ereignis-Sourcing-Design muster erfasst jede Änderung am Status einer Anwendung in einem Ereignisobjekt. Mit Ereignis-Sourcing kann eine Anwendung ihren Zustand wiederherstellen, eine Wiederherstellung zu einem bestimmten Zeitpunkt durchführen (indem Ereignisse bis zu diesem Zeitpunkt verarbeitet werden), den Zustand neu berechnen, wenn sich die Geschäftslogik ändert, oder eine CQRS-Architektur (Command Query Responsibility Segregation) aktivieren. Mit der Entwicklung von Tools für die Echtzeit-Ereignisverarbeitung verwenden viele Anwendungen das Ereignis-Sourcing-Modell. Transaktionale Datenbanken sind von Natur aus ereignisorientiert, um die Anforderungen an Atomarität, Konsistenz, Isolation und Langlebigkeit (ACID) zu erfüllen.
Transaktionale Datenbanken
In einer transaktionalen Datenbank wird die Menge der Vorgänge, die die Datenbank ausführt,
in der Regel in ein Write-Ahead
Log (WAL) geschrieben, bevor
Vorgänge in der Storage Engine ausgeführt werden. Nachdem ein Vorgang in der Storage Engine ausgeführt und im WAL festgeschrieben wurde, gilt er als erfolgreich. Die Verwendung eines WAL ermöglicht Atomarität und Langlebigkeit und auch die hochgenaue Replikation der Datenbank. Einige Datenbanken schreiben den genauen Vorgang, der auf Speicherebene stattfindet, in das Log (z. B. write 0x41 at location 20). Diese Aktionen können also nur in derselben Storage Engine repliziert werden. Andere Datenbanken protokollieren eine vollständige logische Anweisung (oder Zeile), die in einer anderen Storage Engine noch einmal ausgeführt werden kann.
Ereignisse und Streams
Datastream nimmt große Datenmengen nahezu in Echtzeit aus verschiedenen Quellen auf und stellt die Daten zur Nutzung im Ziel zur Verfügung. Die von Datastream gespeicherte Dateneinheit ist ein Ereignis. Ein Stream stellt die kontinuierliche Aufnahme von Ereignissen aus einer Quelle und das Schreiben in ein Ziel dar.
Einheitliche Typen
Datenquellen haben eigene Datentypen. Einige sind spezifisch für die Datenbank selbst, andere sind generisch und werden von mehreren Datenbanken gemeinsam verwendet. Da mehrere Quellen Streams zu einem einheitlichen Ziel generieren, ist eine Standarddarstellung des ursprünglichen Quelltyps für alle Quellen erforderlich. Der einheitliche Typ ist eine allgemeine und verlustfreie Darstellung von Datentypen über alle Quellen hinweg, sodass Daten einheitlich genutzt werden können. Die von Datastream unterstützten einheitlichen Typen stellen die Obermenge aller normalisierten Typen in den unterstützten Quellsystemen dar.
Entitätskontext
Datastream hat fünf Entitäten:
- Konfigurationen für private Konnektivität ermöglichen Datastream die Kommunikation mit Datenquellen über eine sichere, private Netzwerkverbindung. Diese Kommunikation erfolgt über VPC-Peering (Virtual Private Cloud).
- Verbindungsprofile enthalten Verbindungsinformationen für eine bestimmte Quell- oder Zieldatenbank.
- Streams stellen ein Paar aus Quell- und Zielverbindungsprofilen zusammen mit stream-spezifischen Einstellungen dar.
- Objekte stellen einen Teil eines Streams dar. Ein Datenbankstream hat beispielsweise ein Datenobjekt für jede Tabelle, die gestreamt wird.
- Ereignisse stellen jede Änderung der Datenbearbeitungssprache (DML) für ein bestimmtes Objekt dar.
Nachdem Sie eine Konfiguration für private Konnektivität erstellt haben, können Sie über einen privaten Kommunikationskanal eine Verbindung zu Quellen in oder an einem anderen Ort herstellen. Google Cloud Private Konnektivität ist optional. Datastream unterstützt auch andere Verbindungsmodi über öffentliche Netzwerke.
Nachdem Sie ein Verbindungsprofil für eine Quelle und ein Ziel erstellt haben, können Sie Streams erstellen, die die in den Verbindungsprofilen gespeicherten Informationen verwenden, um Daten von der Quelle zum Ziel zu übertragen.
Nachdem Sie einen Stream erstellt haben, stellt Datastream eine direkte Verbindung zur Quelle her, nutzt Inhalte und verarbeitet und schreibt dann Ereignisse basierend auf der Ereignis struktur in das Ziel.
Sie können Konfigurationen für private Konnektivität und Verbindungsprofile getrennt von Streams verwalten, um sie wiederzuverwenden.
Features
Zu den Features von Datastream gehören:
- Serverlos:Konfigurieren Sie einen Stream und die Daten werden verschoben. Es fallen keine Kosten für Installation, Ressourcenzuweisung oder Wartung an. Bei Änderungen des Datenvolumens weist die automatische Skalierungsfunktion von Datastream automatisch Ressourcen zu, um den Datenverkehr nahezu in Echtzeit aufrechtzuerhalten.
- Einheitliches Avro-basiertes Typschema:Datastream ermöglicht die quellenunabhängige Verarbeitung, indem alle quellspezifischen Datentypen in ein einheitliches Datastream-Typschema konvertiert werden, das auf Avro-Typen basiert.
- Streaming von Verlaufs- und CDC-Daten:Datastream streamt sowohl Verlaufs- als auch CDC-Quelldaten gleichzeitig nahezu in Echtzeit.
- Oracle CDC ohne zusätzliche Lizenzen:Datastream bietet LogMiner-basiertes CDC-Streaming aus allen Oracle-Quellversionen ab 11.2 ohne zusätzliche Lizenzen oder Softwareinstallationen.
- BigQuery-Ziel:Änderungen in der Quelle werden nahezu in Echtzeit kontinuierlich in BigQuery-Tabellen repliziert. Daten in BigQuery sind mit minimaler Verzögerung für Analysen verfügbar.
- Cloud Storage-Ziel:CDC-Daten werden kontinuierlich in selbstbeschreibende Avro- oder JSON-Dateien in Cloud Storage geschrieben. Diese Daten können direkt vor Ort oder durch nachgelagertes Laden in ein anderes Ziel wie Spanner weiterverarbeitet werden.
- Zentrale Metadatenverwaltung mit Knowledge Catalog:Datastream-Ressourcen wie Streams, Verbindungsprofile und Konfigurationen für private Verbindungen werden automatisch mit Knowledge Catalog synchronisiert. So können Sie diese Assets direkt über die Knowledge Catalog-Benutzeroberfläche suchen und durchsuchen.
Anwendungsfälle
Es gibt drei Hauptszenarien für die Verwendung von Datastream:
- Datenintegration: Datenstreams aus Datenbanken und Software as a Service (SaaS)-Clouddiensten können eine Datenintegrationspipeline nahezu in Echtzeit speisen , indem Daten in BigQuery geladen werden.
- Streaming-Analysen: Änderungen in Datenbanken werden in Streaming Pipelines aufgenommen, die Dataflow für Betrugserkennung, Verarbeitung von Sicherheitsereignissen und Anomalieerkennung verwenden.
- Nahezu in Echtzeit verfügbare Datenänderungen: Die Verfügbarkeit von Datenänderungen nahezu in Echtzeit ermöglicht es Anwendungen der künstlichen Intelligenz und des maschinellen Lernens, die Kundenabwanderung zu verhindern oder die Interaktion durch Marketingkampagnen zu steigern oder Daten in Produktionssysteme zurückzuführen.
Verhaltensübersicht
Mit Datastream können Sie laufende Änderungen aus mehreren Daten quellen direkt in streamen Google Cloud.
Quellen
- Bevor Sie eine Quelle mit Datastream verwenden, müssen Sie die Authentifizierung und zusätzliche Quelloptionen konfigurieren.
- Jede Quelle generiert Ereignisse, die alle Änderungen der Datenbearbeitungssprache (DML) widerspiegeln.
- Jeder Stream kann Verlaufsdaten per Backfill hinzufügen und laufende Änderungen in das Ziel streamen.
Ziele
Datastream unterstützt BigQuery, Apache Iceberg Tabellen und Cloud Storage als Ziele. Wenn Sie einen Stream erstellen, definieren Sie die Zielkonfiguration.
Ereignisübermittlung
- Die Reihenfolge der Ereignisse ist nicht garantiert. Ereignismetadaten enthalten Informationen, mit denen die Ereignisse sortiert werden können.
- Die Ereignisübermittlung erfolgt mindestens einmal. Ereignismetadaten enthalten Daten, mit denen doppelte Daten im Ziel entfernt werden können.
- Die Ereignisgröße ist auf 20 MB pro Ereignis für BigQuery-Ziele und 100 MB pro Ereignis für Cloud Storage-Ziele begrenzt.
Weitere Informationen zu Ereignissen finden Sie unter Ereignisse und Streams.
Hochverfügbarkeit und Notfallwiederherstellung
Datastream bietet Hochverfügbarkeit über Zonen hinweg und verwaltet die Notfallwiederherstellung bei regionalen Ausfällen:
Hochverfügbarkeit: Datastream ist ein regionaler Dienst, der in mehreren Zonen in jeder Region ausgeführt wird. Ein Ausfall in einer einzelnen Zone in einer Region hat keine Auswirkungen auf die Verfügbarkeit oder Qualität des Dienstes in anderen Zonen.
Notfallwiederherstellung:Bei einem Ausfall in einer Region sind alle Streams, die in dieser Region ausgeführt werden, für die Dauer des Ausfalls nicht verfügbar. Nachdem der Ausfall behoben wurde, wird Datastream an der Stelle fortgesetzt, an der er unterbrochen wurde. Alle Daten, die nicht in das Ziel geschrieben wurden, werden noch einmal aus der Quelle abgerufen. In diesem Fall können doppelte Daten im Ziel vorhanden sein. Informationen zum Entfernen doppelter Daten, siehe Ereignisübermittlung.
Initialdaten und CDC-Daten
Da Datenquellen Daten enthalten, die bereits vor der Verbindung der Quelle mit einem Stream vorhanden waren (Verlaufsdaten), generiert Datastream Ereignisse sowohl aus den Verlaufsdaten als auch aus Datenänderungen, die in Echtzeit auftreten.
Um einen schnellen Datenzugriff zu gewährleisten, werden Verlaufsdaten und Echtzeit-Datenänderungen gleichzeitig in das Ziel repliziert. Die Ereignis metadaten geben an, ob ein Ereignis aus einem Backfill oder aus CDC stammt.
Nächste Schritte
- Weitere Informationen zu Datastream.
- Informationen zu Zuordnungen einheitlicher Typen.
- Informationen zu unterstützten Quellen.
- Informationen zu unterstützten Zielen.
- Konfigurationen für private Konnektivität, Verbindungsprofile und Streams erstellen.