Verhalten und Anwendungsfälle
Mit Datastream können Nutzer Quelldaten aus einem relationalen Datenbankverwaltungssystem (Relational Database Management System, RDBMS) und anderen Quellen nahezu in Echtzeit in Ziele wie BigQuery und Cloud Storage importieren. Dies ermöglicht nachgelagerte Anwendungsfälle wie das Laden der Daten in BigQuery für Data Warehousing und Analysen oder das Ausführen von Spark-Jobs über die Daten für Anwendungsfälle im Bereich künstliche Intelligenz und maschinelles Lernen.
Konzepte
Change Data Capture
Change Data Capture (CDC) besteht aus einer Reihe von Softwaredesignmustern zum Ermitteln (und Verfolgen) von geänderten Daten, damit Aktionen anhand der geänderten Daten ausgeführt werden können. CDC ist auch ein Ansatz für die Datenintegration, der auf der Identifizierung, Erfassung und Bereitstellung von Änderungen an Unternehmensdatenquellen basiert.
Ereignis-Sourcing
Das Ereignis-Sourcing wurde 2005 eingeführt und ist ein Designmuster, bei dem jede Änderung am Zustand einer Anwendung in einem Ereignisobjekt erfasst wird. Mithilfe von Ereignis-Sourcing kann eine Anwendung ihren Zustand einfach neu erstellen, eine Wiederherstellung zu einem bestimmten Zeitpunkt durchführen (durch Verarbeitung des Ereignisses bis zu diesem Punkt), den Zustand bei einer Logikänderung neu berechnen oder CQRS-Design (Command Query Responsibility Segregation) aktivieren. Mit der Weiterentwicklung von Tools für die Verarbeitung von Ereignissen in Echtzeit werden viele Anwendungen auf das Modell für Ereignis-Sourcing umgestellt. Bisher waren Transaktionsdatenbanken aufgrund der Anforderungen an Atomarität, Konsistenz, Isolation und Langlebigkeit (Atomicity, Consistency, Isolation, Durability: ACID) immer ereignisorientiert.
Transaktionale Datenbanken
In einer transaktionalen Datenbank werden die auszuführenden Vorgänge normalerweise in ein Write-Ahead-Log (WAL) geschrieben, bevor Vorgänge auf der Speicher-Engine ausgeführt werden. Nachdem ein Vorgang auf der Speicher-Engine ausgeführt und im WAL festgeschrieben wurde, wird der Vorgang als erfolgreich betrachtet. Die Verwendung von WAL ermöglicht Atomarität und Langlebigkeit sowie eine zuverlässige Replikation der Datenbank. Einige Datenbanken schreiben in das Log genau den Vorgang, der auf Speicherebene erfolgt (z. B. write 0x41 on location 20
), sodass diese Aktionen nur auf derselben Speicher-Engine repliziert (oder wiederholt) werden können. Andere Datenbanken protokollieren eine vollständige logische Anweisung (oder Zeile), die auf einer anderen Speicher-Engine neu ausgeführt werden kann.
Ereignisse und Streams
Datastream nimmt viele Daten nahezu in Echtzeit aus verschiedenen Quellen auf und stellt die Daten am Ziel zur Verfügung. Die von Datastream gespeicherte Dateneinheit ist ein Ereignis. Ein Stream stellt die kontinuierliche Aufnahme von Ereignissen aus einer Quelle dar und schreibt sie in ein Ziel.
Einheitliche Typen
Datenquellen haben ihre eigenen Typen, von denen einige spezifisch für die Datenbank selbst und andere allgemein und über mehrere Datenbanken verteilt sind. Da es viele verschiedene Quellen gibt, die Streams für ein einheitliches Ziel generieren, muss es eine einheitliche Standardmethode geben, um den ursprünglichen Quelltyp für alle Quellen darzustellen. Der einheitliche Typ ist eine häufige und verlustfreie Methode, um Datentypen aus allen Quellen darzustellen, damit sie einheitlich verwendet werden können. Die von Datastream unterstützten einheitlichen Typen stellen die Obermenge aller normalisierten Typen in allen unterstützten Quellsystemen dar, sodass alle Typen verlustfrei unterstützt werden können.
Entitätskontext
Datastream hat fünf Entitäten:
- Konfigurationen für private Verbindungen ermöglichen es Datastream, über eine sichere, private Netzwerkverbindung mit Datenquellen zu kommunizieren. Diese Kommunikation erfolgt über VPC-Peering (Virtual Private Cloud).
- Verbindungsprofile enthalten Informationen zur Verbindung mit einer bestimmten Quell- oder Zieldatenbank.
- Streams stellen ein Verbindungsprofilpaar aus Quelle und Ziel sowie streamspezifischen Einstellungen dar.
- Objekte stellen einen Teilteil eines Streams dar. Ein Datenbankstream enthält beispielsweise ein Datenobjekt für jede gestreamte Tabelle.
- Ereignisse stellen jede Änderung der Datenbearbeitungssprache (DML) für ein bestimmtes Objekt dar.
Nach dem Erstellen einer privaten Verbindungskonfiguration können Sie eine Verbindung zu Quellen herstellen, die in Google Cloud oder an einem anderen Ort über einen privaten Kommunikationskanal gehostet werden. Private Verbindungen sind optional. Datastream unterstützt auch andere Verbindungsmodi über öffentliche Netzwerke.
Nach dem Erstellen eines Verbindungsprofils für eine Quelle und ein Ziel können Sie Streams erstellen, die Daten anhand der in den Verbindungsprofilen gespeicherten Informationen von der Quelle an das Ziel übertragen.
Nach dem Erstellen eines Streams stellt Datastream eine direkte Verbindung zur Quelle her, liest den Inhalt ein und verarbeitet und schreibt die Ereignisse anhand der Ereignisstruktur an das Ziel.
Private Konnektivitätskonfigurationen und Verbindungsprofile können getrennt von Streams verwaltet werden, um die Wiederverwendung zu erleichtern und weil in Unternehmen die Person, die eine Verbindung zu einer Quelle oder einem Ziel herstellen kann, häufig nicht dieselbe ist wie die Person, die den Stream erstellt.
Features
Zu den Funktionen von Datastream gehören:
- Serverlos: Sie können einen Stream konfigurieren und der Datentraffic beginnt. Es fallen keine Kosten für Installation, Ressourcenzuweisung oder Wartung an. Die Autoscaling-Funktionen von Datastream weisen bei wachsenden und schrumpfenden Datenmengen automatisch Ressourcen zu, um den Datentraffic in Echtzeit aufrechtzuerhalten.
- Avro Unified Types-Schema: Datastream ermöglicht eine einfache, quellenunabhängige Verarbeitung. Dabei werden alle quellenspezifischen Datentypen basierend auf Avro-Typen in ein einheitliches Datastream-Typschema umgewandelt.
- Verlaufs- und CDC-Daten streamen: Datastream streamt sowohl Verlaufsdaten als auch CDC-Quelldaten gleichzeitig und nahezu in Echtzeit.
Oracle CDC ohne zusätzliche Lizenzen: Datastream bietet LogMiner-basiertes CDC-Streaming von jeder Oracle-Quellversion ab 11.2g. Dabei fallen keine Kosten für zusätzliche Lizenzen oder Softwareinstallationen an.
BigQuery-Ziel: Änderungen in der Quelle werden kontinuierlich und nahezu in Echtzeit in BigQuery-Tabellen repliziert. Daten in BigQuery sind fast sofort für Analysen verfügbar.
Cloud Storage-Ziel: CDC-Daten werden kontinuierlich in selbstbeschreibende Avro- oder JSON-Dateien in Cloud Storage geschrieben. Diese Informationen können leicht für weitere Verarbeitungen genutzt werden, entweder direkt vor Ort oder durch Laden nachgelagert in ein anderes Ziel wie Spanner.
Anwendungsfälle
Es gibt drei Hauptszenarien für die Verwendung von Datastream:
- Datenintegration: Datenstreams aus Datenbanken und SaaS-Clouddiensten (Software-as-a-Service) können eine Datenintegrationspipeline nahezu in Echtzeit speisen, indem Sie Daten in BigQuery laden.
- Streaminganalysen: Änderungen von Datenbanken werden in Streaming-Pipelines wie Dataflow zur Betrugserkennung, Verarbeitung von Sicherheitsereignissen und Anomalieerkennung aufgenommen.
- Verfügbarkeit von Datenänderungen nahezu in Echtzeit: Die Verfügbarkeit von Datenänderungen, die nahezu in Echtzeit erfolgen, ermöglicht Anwendungen für künstliche Intelligenz und maschinelles Lernen, um die Abwanderung zu verhindern oder das Engagement durch Marketingbemühungen oder die Rückkopplung in Produktionssysteme zu erhöhen.
Verhaltensübersicht
Mit Datastream können Kunden laufende Änderungen aus mehreren Datenquellen direkt in Google Cloud streamen.
Quellen
- Die Verwendung einer Quelle mit Datastream erfordert Einrichtungsaufwand, einschließlich Authentifizierung und zusätzliche Konfigurationsoptionen.
- Jede Quelle generiert Ereignisse, die alle DML-Änderungen (Data Manipulation Language, Datenbearbeitungssprache) widerspiegeln.
- Ein Stream in Datastream kann einen Backfill für Verlaufsdaten durchführen und laufende Änderungen an ein Ziel streamen.
Ziele
Datastream unterstützt BigQuery und Cloud Storage als Ziele. Beim Erstellen des Streams werden die gewünschten BigQuery-Datasets oder Cloud Storage-Buckets definiert.
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 am Ziel entfernt werden können.
- Die Ereignisgröße ist auf 20 MB pro Ereignis für BigQuery-Ziele und 30 MB pro Ereignis für Cloud Storage-Ziele beschränkt.
Weitere Informationen zu Ereignissen finden Sie unter Ereignisse und Streams.
Hochverfügbarkeit und Notfallwiederherstellung
Dieser Abschnitt enthält Informationen zum Umgang mit Szenarien im Zusammenhang mit Hochverfügbarkeit und Notfallwiederherstellung.
- Hochverfügbarkeit: Datastream ist ein regionaler Dienst, der in mehreren Zonen in jeder Region ausgeführt wird. Der Ausfall einer einzelnen Zone in einer Region wirkt sich nicht auf die Verfügbarkeit oder Qualität des Dienstes in anderen Zonen aus.
- Notfallwiederherstellung: Wenn eine Region ausfällt, werden alle in dieser Region ausgeführten Streams für die Dauer des Ausfalls unterbrochen. Nachdem der Ausfall behoben wurde, setzt Datastream den Streaming-Vorgang genau an der Stelle fort, 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 sich doppelte Daten am Ziel befinden. Weitere Informationen zum Entfernen von doppelten Daten finden Sie unter Ereigniszustellung.
Initialdaten und CDC-Daten
Da Datenquellen über Daten verfügen, die vor dem Zeitpunkt vorhanden waren, zu dem die Quelle mit einem Stream verbunden wurde (Verlaufsdaten), generiert Datastream Ereignisse sowohl aus den historischen Daten als auch aus den Datenänderungen, die in Echtzeit stattfinden.
Um einen schnellen Datenzugriff zu gewährleisten, werden die Verlaufsdaten und die Datenänderungen in Echtzeit gleichzeitig an das Ziel repliziert. Die Ereignismetadaten geben an, ob dieses Ereignis aus dem Backfill oder von CDC stammt.
Nächste Schritte
- Weitere Informationen zu Datastream
- Weitere Informationen zu Ereignissen und Streams
- Weitere Informationen zu Zuordnungen einheitlicher Typen
- Weitere Informationen zu den von Datastream unterstützten Quellen
- Weitere Informationen zu von Datastream unterstützten Zielen
- Konfigurationen für private Verbindungen erstellen Verbindungsprofile und Streams