Wichtige Konzepte und Funktionen

Verhalten und Anwendungsfälle

Mit Datastream können Nutzer Quelldaten aus einem relationalen Datenbankmanagementsystem (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-Warehouse-Prozesse und Analysen oder das Ausführen von Spark-Jobs über die Daten für Anwendungsfälle der künstlichen Intelligenz und des maschinellen Lernens.

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 einer Vielzahl von Quellen auf und stellt sie am Ziel zur Nutzung 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:

  • Mit Konfigurationen für private Verbindungen kann Datastream über eine sichere, private Netzwerkverbindung mit Datenquellen kommunizieren. Diese Kommunikation erfolgt über VPC-Peering (Virtual Private Cloud).
  • Verbindungsprofile stellen Verbindungsinformationen zu einer bestimmten Quell- oder Zieldatenbank dar.
  • Streams stellen ein Verbindungsprofilpaar aus Quelle und Ziel sowie streamspezifischen Einstellungen dar.
  • Objekte sind ein Teil eines Streams. Ein Datenbankstream hat beispielsweise ein Datenobjekt für jede gestreamte Tabelle.
  • Ereignisse stehen für jede Änderung der Datenbearbeitungssprache (Data Manipulation Language, DML) für ein bestimmtes Objekt.

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. Wenn das Datenvolumen zunimmt oder abnimmt, weisen die Autoscaling-Funktionen von Datastream Ressourcen zu, damit Daten nahezu in Echtzeit übertragen werden.
  • 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.
  • Verlaufsdaten und CDC-Daten streamen:Datastream streamt sowohl Verlaufsdaten als auch CDC-Quelldaten nahezu in Echtzeit gleichzeitig.
  • 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 stehen nahezu sofort für Analysen zur Verfügung.

  • Cloud Storage-Ziel: CDC-Daten werden kontinuierlich in selbstbeschreibende Avro- oder JSON-Dateien in Cloud Storage geschrieben. Diese Informationen können leicht für eine weitere Verarbeitung verwendet werden, entweder direkt vor Ort oder durch nachgelagertes Laden in einem anderen Ziel wie Spanner.

Anwendungsfälle

Es gibt drei Hauptszenarien für die Verwendung von Datastream:

  • Datenintegration: Datenstreams aus Datenbanken und SaaS-Cloud-Diensten (Software as a Service) können eine echtzeitnahe Datenintegrationspipeline versorgen, indem Daten mithilfe von Dataflow oder Cloud Data Fusion in BigQuery geladen werden.
  • Streaminganalysen: Änderungen von Datenbanken werden in Streaming-Pipelines wie Dataflow zur Betrugserkennung, Verarbeitung von Sicherheitsereignissen und Anomalieerkennung aufgenommen.
  • Datenänderungen nahezu in Echtzeit verfügbar: Die Verfügbarkeit von Datenänderungen nahezu in Echtzeit unterstützt Anwendungen für künstliche Intelligenz und maschinelles Lernen, um die Abwanderung zu verhindern oder das Engagement mithilfe von Marketingmaßnahmen oder der Rückgewinnung in Produktionssysteme zu steigern.

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 den gewünschten Cloud Storage-Bucket definiert.

Ereignisübermittlung

  • Die Reihenfolge der Ereignisse ist nicht garantiert. Die 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. Ein Ausfall einer einzelnen Zone in einer Region hat keine Auswirkungen auf die Verfügbarkeit oder Qualität des Dienstes in anderen Zonen.
  • 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 Daten enthalten, die vorhanden waren, bevor die Quelle mit einem Stream verbunden wurde (Verlaufsdaten), generiert Datastream Ereignisse sowohl aus Verlaufsdaten als auch Datenänderungen in Echtzeit.

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.