Freigeben über


Change Data Capture im Azure Cosmos DB-Analysespeicher

GILT FÜR: NoSQL MongoDB

Mit Change Data Capture (CDC) im Azure Cosmos DB-Analysespeicher können Sie einen kontinuierlichen und inkrementellen Feed geänderter (eingefügter, aktualisierter und gelöschter) Daten aus dem Analysespeicher effizient nutzen. Es ist nahtlos in Azure Synapse und Azure Data Factory integriert und bietet Ihnen eine skalierbare, codefreie Umgebung für hohes Datenvolumen. Da die Change Data Capture-Funktion auf dem Analysespeicher basiert, verwendet sie keine bereitgestellten RUs, wirkt sich nicht auf Ihre Transaktionsworkloads aus, bietet eine geringere Latenz und hat geringere Gesamtkosten.

Die Change Data Capture-Funktion im Azure Cosmos DB-Analysespeicher kann mithilfe eines Azure Synapse- oder Azure Data Factory-Datenflusses in verschiedene Senken schreiben.

Diagramm des Analysespeichers in Azure Cosmos DB und wie er mit Change Data Capture in verschiedene Zieldienste von Erst- und Drittanbietern schreiben kann.

Weitere Informationen zu unterstützten Senkentypen in einem Zuordnungsdatenfluss finden Sie unter Vom Datenfluss unterstützte Senkentypen.

Zusätzlich zur Bereitstellung von inkrementellen Datenfeeds aus dem Analysespeicher an verschiedene Ziele unterstützt Change Data Capture die folgenden Funktionen:

  • Unterstützt das Erfassen von Löschvorgängen und Zwischenupdates
  • Möglichkeit zum Filtern des Änderungsfeeds nach einem bestimmten Vorgangstyp (TTLeinfügen | aktualisieren | löschen | )
  • Unterstützt das Anwenden von Filtern, Projektionen und Transformationen für den Änderungsfeed über die Quellabfrage
  • Mehrere Änderungsfeeds für denselben Container können gleichzeitig genutzt werden.
  • Jede Änderung im Container wird im Change Data Capture-Feed genau einmal angezeigt, und die Prüfpunkte werden intern für Sie verwaltet.
  • Änderungen können „von Anfang an“ oder „ab einem bestimmten Zeitstempel“ oder „von jetzt an“ synchronisiert werden.
  • Es gibt keine Begrenzung in Bezug auf die feste Datenaufbewahrungsdauer, für die Änderungen verfügbar sind.

Effiziente inkrementelle Datenerfassung mit intern verwalteten Prüfpunkten

Jede Änderung im Cosmos DB-Container wird im CDC-Feed genau einmal angezeigt, und die Prüfpunkte werden intern für Sie verwaltet. Dies hilft, die folgenden Nachteile des allgemeinen Musters der Verwendung benutzerdefinierter Prüfpunkte basierend auf dem Wert „_ts“ zu beheben:

  • Der Filter „_ts“ wird auf die Datendateien angewendet, was nicht immer eine minimale Datenüberprüfung garantiert. Die intern verwalteten GLSN-basierten Prüfpunkte in der neuen CDC-Funktion stellen sicher, dass die inkrementelle Datenidentifikation nur basierend auf den Metadaten erfolgt, um so minimale Datenüberprüfungen in jedem Datenstrom zu garantieren.

  • Der Synchronisierungsprozess des Analysespeichers garantiert keine „_ts“-basierte Reihenfolge. Das bedeutet, dass es Fälle geben kann, in denen das „_ts“ eines inkrementellen Datensatzes kleiner ist als das des letzten Prüfpunkts und im inkrementellen Datenstrom übersehen werden kann. Das neue CDC berücksichtigt kein „_ts“, um die inkrementellen Datensätze zu identifizieren, und garantiert somit, dass keiner der inkrementellen Datensätze übersehen wird.

Features

Change Data Capture im Azure Cosmos DB-Analysespeicher unterstützt die folgenden wichtigen Features.

Erfassen von Änderungen von Anfang an

Wenn die Option Start from beginning ausgewählt wird, ist beim ersten Laden eine vollständige Momentaufnahme von Containerdaten in der ersten Ausführung enthalten, und in nachfolgenden Ausführungen werden geänderte oder inkrementelle Daten erfasst. Dies wird durch die analytical TTL-Eigenschaft eingeschränkt, und Dokumente, die durch eine TTL aus dem Analysespeicher entfernt wurden, sind nicht im Änderungsfeed enthalten. Betrachten Sie als Beispiel einen Container, bei dem analytical TTL auf 31.536.000 Sekunden festgelegt ist, was 1 Jahr entspricht. Wenn Sie einen CDC-Prozess für diesen Container erstellen, werden nur Dokumente, die neuer als 1 Jahr sind, beim ersten Laden einbezogen.

Erfassen von Änderungen ab einem bestimmten Zeitstempel

Wenn die Option Start from timestamp ausgewählt ist, werden beim ersten Laden die Daten ab dem angegebenen Zeitstempel verarbeitet, und in nachfolgenden Ausführungen werden inkrementelle oder geänderte Daten erfasst. Dieser Prozess wird ebenfalls durch die analytical TTL-Eigenschaft eingeschränkt.

Erfassen von Änderungen ab jetzt

Wenn die Option Start from timestamp ausgewählt ist, werden alle vergangenen Vorgänge des Containers nicht erfasst.

Erfassen von Löschvorgängen, Zwischenupdates und TTLs

Die Change Data Capture-Funktion für den Analysespeicher erfasst Löschvorgänge, Zwischenupdates und TTL-Vorgänge. Die erfassten Löschvorgänge und Updates können auf Senken angewendet werden, die Lösch- und Updatevorgänge unterstützen. Der Wert {_rid} identifiziert die Datensätze eindeutig. Durch Angabe von {_rid} als Schlüsselspalte auf der Senkenseite würden die Update- und Löschvorgänge auf der Senke widerspiegelt.

Beachten Sie, dass TTL-Vorgänge als Löschvorgänge gelten. Im Abschnitt zu Quelleinstellungen finden Sie Details zum Modus und Informationen zur Unterstützung für Zwischenupdates und Löschvorgänge in Senken.

Filtern Sie den Änderungsfeed nach einen bestimmten Vorgangstyp.

Sie können den Change Data Capture-Feed nach einen bestimmten Vorgangstyp filtern. Sie können zum Beispiel selektiv nur die Einfüge- und Updatevorgänge erfassen und dabei die Benutzer-Lösch- und TTL-Löschvorgänge ignorieren.

Anwenden von Filtern, Projektionen und Transformationen für den Änderungsfeed über die Quellabfrage

Optional können Sie eine Quellabfrage verwenden, um Filter, Projektionen und Transformationen anzugeben, die alle in den spaltenbasierten Analysespeicher gepusht werden. Im Folgenden finden Sie ein Beispiel für eine Quellabfrage, die nur inkrementelle Datensätze mit dem Filter Category = 'Urban' erfassen würde. Diese Beispielabfrage projiziert nur fünf Felder und wendet eine einfache Transformation an:

SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c 
WHERE Category = 'Urban'

Mehrere CDC-Prozesse

Sie können mehrere Prozesse zur Nutzung von CDC im Analysespeicher erstellen. Dieser Ansatz bietet Flexibilität, um verschiedene Szenarien und Anforderungen zu unterstützen. Während ein Prozess möglicherweise keine Datentransformationen und mehrere Senken aufweist, kann ein anderer Prozess über eine Datenvereinfachung und eine einzelne Senke verfügen. Außerdem können diese parallel ausgeführt werden.

Durchsatzisolation, geringere Latenz und geringere Gesamtkosten

Vorgänge im Cosmos DB-Analysespeicher nutzen die bereitgestellten RUs nicht und wirken sich daher nicht auf Ihre Transaktionsworkloads aus. Change Data Capture mit Analysespeicher hat auch eine geringere Latenz und niedrigere Gesamtkosten. Die geringere Latenz wird auf den Analysespeicher zurückgeführt, der eine bessere Parallelität bei der Datenverarbeitung ermöglicht und die Gesamtkosten reduziert, sodass Sie die Kosteneffizienz unter diesen sich schnell verändernden wirtschaftlichen Bedingungen steigern können.

Szenarien

Hier finden Sie häufige Szenarien, in denen Sie Change Data Capture und den Analysespeicher verwenden können.

Nutzen inkrementeller Daten aus Cosmos DB

Sie können Change Data Capture im Analysespeicher verwenden, wenn Sie derzeit Folgendes verwenden oder planen:

  • Erfassen inkrementeller Daten mit Azure Data Factory-Datenflüssen oder Copy-Aktivität.
  • Einmalige Batchverarbeitung mit Azure Data Factory.
  • Streamen von Cosmos DB-Daten
    • Der Analysespeicher hat eine Latenz von bis zu 2 Minuten, um Transaktionsspeicherdaten zu synchronisieren. Sie können Datenflüsse in Azure Data Factory jede Minute planen.
    • Wenn Sie das Streamen ohne die oben genannte Latenz ausführen müssen, empfehlen wir die Verwendung des Änderungsfeedfeatures des Transaktionsspeichers.
  • Erfassen von Löschvorgängen, inkrementellen Änderungen, Anwenden von Filtern auf Cosmos DB-Daten.
    • Wenn Sie Azure Functions-Trigger oder eine andere Option mit Änderungsfeed verwenden und Löschvorgänge, inkrementelle Änderungen, Transformationen usw. erfassen möchten, empfehlen wir die Change Data Capture-Funktion über den Analysespeicher.

Inkrementeller Feed an die Analyseplattform Ihrer Wahl

Die Change Data Capture-Funktion ermöglicht eine End-to-End-Analyselösung, die Ihnen die Flexibilität bietet, Azure Cosmos DB-Daten mit einem der unterstützten Senkentypen zu verwenden. Weitere Informationen zu unterstützten Senkentypen finden Sie unter Vom Datenfluss unterstützte Senkentypen. Change Data Capture ermöglicht es Ihnen außerdem, Azure Cosmos DB-Daten in einen zentralisierten Data Lake zu integrieren und die Daten mit Daten aus anderen verschiedenen Quellen zu verknüpfen. Sie können die Daten vereinfachen, partitionieren und weitere Transformationen entweder in Azure Synapse Analytics oder Azure Data Factory anwenden.

Change Data Capture in Azure Cosmos DB for MongoDB-Container

Die verknüpfte Dienstschnittstelle für die API für MongoDB ist in Azure Data Factory-Datenflüssen noch nicht verfügbar. Sie können Ihre API für den MongoDB-Kontoendpunkt mit der verknüpften Dienstschnittstelle Azure Cosmos DB for NoSQL als Umgehung verwenden, bis der verknüpfte Mongo-Dienst direkt unterstützt wird.

Wählen Sie in der Schnittstelle für einen neuen verknüpften NoSQL-Dienst Manuell eingeben aus, um die Azure Cosmos DB-Kontoinformationen bereitzustellen. Verwenden Sie hier den NoSQL-Dokumentendpunkt des Kontos (z. B. https://<account-name>.documents.azure.com:443/) anstelle des MongoDB-Endpunkts (z. B. mongodb://<account-name>.mongo.cosmos.azure.com:10255/).

Nächste Schritte