Freigeben über


Azure SQL Database CDC-Quelle zu einem Eventstream hinzufügen

In diesem Artikel erfahren Sie, wie Sie eine Azure SQL-Datenbank Change Data Capture (CDC)-Quelle zu einem Eventstream hinzufügen können.

Der Azure SQL Database CDC Source Connector für Microsoft Fabric-Eventstreams ermöglicht es Ihnen, einen Snapshot der aktuellen Daten in einer Azure SQL-Datenbank zu erfassen. Künftige Änderungen an diesen Daten auf Zeilenebene werden dann vom Konnektor überwacht und aufgezeichnet. Sobald die Änderungen im Eventstream erfasst sind, können Sie diese CDC-Daten in Echtzeit verarbeiten und an verschiedene Ziele innerhalb von Fabric zur weiteren Verarbeitung oder Analyse senden.

Voraussetzungen

  • Zugriff auf einen Arbeitsbereich im Fabric-Kapazitätslizenzmodus (oder) im Testlizenzmodus mit der Berechtigungsstufe „Mitwirkender“ oder höher.
  • Ein laufender Azure SQL-Server mit einer Azure SQL-Datenbank.
  • Ihre Azure SQL-Datenbank muss öffentlich zugänglich sein und darf sich nicht hinter einer Firewall oder in einem virtuellen Netzwerk befinden.
  • Aktiviert CDC in Ihrer Azure SQL-Datenbank durch Ausführen der gespeicherten Prozedur sys.sp_cdc_enable_db. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von Change Data Capture.
  • Wenn Sie keinen Eventstream haben, erstellen Sie einen Eventstream.

Beachten Sie, dass Sie Spiegelung in Ihrer Azure SQL-Datenbank nicht aktivieren dürfen.

Aktivieren von CDC in Ihrer Azure SQL-Datenbank

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure SQL-Datenbank-Instanz und wählen Sie Abfrage-Editor aus. Wählen Sie eine Authentifizierungsmethode aus, um sich einzuloggen.

    Screenshot der Öffnung von Azure SQL-Datenbank.

  2. Führen Sie die folgenden SQL-Befehle aus, um CDC in Ihrer Datenbank zu aktivieren:

    -- Enable Database for CDC
    EXEC sys.sp_cdc_enable_db;
    
    -- Enable CDC for a table using a gating role option
    EXEC sys.sp_cdc_enable_table
        @source_schema = N'dbo',
        @source_name   = N'MyTable',
        @role_name     = NULL
    GO
    

Starten des Assistenten zum Auswählen einer Datenquelle

Wenn Sie Ihrem Eventstream noch keine Quelle hinzugefügt haben, wählen Sie die Kachel "Externe Quelle verwenden " aus.

Screenshot, der die Auswahl der Kachel für die Verwendung einer externen Quelle zeigt.

Wenn Sie die Quelle zu einem bereits veröffentlichten Ereignisstream hinzufügen, wechseln Sie zum Bearbeitungsmodus . Wählen Sie im Menüband " Quelle>externe Quellen hinzufügen" aus.

Screenshot der Auswahl zum Hinzufügen externer Quellen.

Suchen Sie auf der Seite Datenquelle auswählen auf der Kachel Azure SQL DB (CDC) nach Verbinden, und wählen Sie Verbinden aus.

Screenshot der Auswahl von Azure SQL DB CDC als Quellentyp im Assistenten zum Abrufen von Ereignissen.

Konfigurieren und Verbinden mit Azure SQL Database CDC

  1. Wählen Sie auf der Seite Verbinden die Option Neue Verbindung aus.

    Screenshot, der Verbindungsseite des Assistenten zum Abrufen von Ereignissen mit hervorgehobenem Link **Neue Verbindung**.

  2. Geben Sie im Abschnitt Verbindungseinstellungen die folgenden Werte für Ihre Azure SQL-Datenbank ein:

    • Server: Geben Sie den Namen des Azure SQL-Servers aus dem Azure-Portal ein. Es befindet sich in dieser Form: mysqlservername.database.windows.net.

    • Datenbank: Geben Sie den Azure SQL-Datenbanknamen aus dem Azure-Portal ein.

      Screenshot der Verbindungseinstellungen auf der Seite „Neue Verbindung“.

  3. Scrollen Sie nach unten und gehen Sie im Abschnitt Anmeldedaten für die Verbindung folgendermaßen vor:

    • Geben Sie für Verbindungsname einen Namen für die Verbindung ein.

    • Wählen Sie für Authentifizierungsart die Option Standard aus.

      Hinweis

      Derzeit unterstützt Fabric Eventstream nur die Standardauthentifizierung .

    • Geben Sie den Benutzernamen und das Kennwort für die Datenbank ein.

  4. Wählen Sie Verbinden.

    Screenshot, der den Bereich Verbindungs-Anmeldedaten auf der Seite „Neue Verbindung“ zeigt.

  5. Wählen Sie nun auf der Seite "Verbinden " die Option "Alle Tabellen" aus, oder geben Sie tabellennamen ein. Wenn Sie letzteres auswählen, geben Sie Tabellen mithilfe einer durch Trennzeichen getrennten Liste mit vollständigen Tabellenbezeichnern (schemaName.tableName) oder gültigen regulären Ausdrücken an. Beispiel:

    • Verwenden Sie dbo.test.*, um alle Tabellen auszuwählen, deren Namen mit dbo.test beginnen.
    • Verwenden Sie dbo\.(test1|test2), um dbo.test1 und dbo.test2 auszuwählen.

    Sie können beide Formate mithilfe von Kommas mischen. Die Gesamtzeichenbeschränkung für den gesamten Eintrag beträgt 102.400 Zeichen.

  6. Sie können erweiterte Einstellungen erweitern, um auf zusätzliche Konfigurationsoptionen für die Azure SQL-Datenbank-CDC-Quelle zuzugreifen:

    • Dezimalbehandlungsmodus: Definiert, wie der Konnektor DECIMAL und NUMERIC Spaltenwerte verarbeitet:
      • Precise: Stellt Werte mithilfe exakter Dezimaltypen dar (z. B. Java BigDecimal), um die volle Genauigkeit und Genauigkeit in der Datendarstellung sicherzustellen.
      • Double: Wandelt Werte in Gleitkommazahlen mit doppelter Genauigkeit um. Diese Einstellung verbessert die Benutzerfreundlichkeit und Leistung, kann aber zu einem Genauigkeitsverlust führen.
      • String: Codiert Werte als formatierte Zeichenfolgen. Diese Einstellung erleichtert die Nutzung in nachgeschalteten Systemen, verliert jedoch semantische Informationen über den ursprünglichen numerischen Typ.
    • Momentaufnahmemodus: Geben Sie die Kriterien für das Ausführen einer Momentaufnahme an, wenn der Connector gestartet wird:
      • Initial: Der Connector führt eine Momentaufnahme nur aus, wenn keine Offsets für den logischen Servernamen aufgezeichnet wurden oder wenn erkannt wird, dass eine frühere Momentaufnahme nicht abgeschlossen werden konnte. Nach Abschluss der Momentaufnahme beginnt der Connector, Ereignisdatensätze für nachfolgende Datenbankänderungen zu streamen.
      • InitialOnly: Der Connector führt eine Momentaufnahme nur aus, wenn für den logischen Servernamen keine Offsets aufgezeichnet wurden. Nach Abschluss der Momentaufnahme stoppt der Verbinder. Es wechselt nicht zum Streaming, um Änderungsereignisse aus dem Binlog zu lesen.
      • NoData: Der Connector führt eine Momentaufnahme aus, die nur das Schema, aber keine Tabellendaten erfasst. Legen Sie diese Option fest, wenn Sie keine konsistente Momentaufnahme der Daten benötigen, sondern nur die Änderungen, die seit dem Start des Connectors vorgenommen werden.
    • Liste "Spalten ausschließen": Gibt Spalten an, die von Änderungsereigniswerten mit vollqualifizierten Namen (schemaName.tableName.columnName) ausgeschlossen werden sollen.
    • Database applicationIntent: Bestimmt das Routingverhalten in SQL Server AlwaysOn-Verfügbarkeitsgruppen:
      • ReadWrite: Stellt eine Verbindung mit dem primären Replikat her. Verwenden Sie dies, wenn die Verbindung Lese- und Schreibvorgänge ausführen muss.
      • ReadOnly: Ermöglicht das Routing an ein lesbares sekundäres Replikat für schreibgeschützte Vorgänge. Verwenden Sie es, um CDC direkt auf Replikaten zu aktivieren. Es ist erforderlich, "snapshot.isolation.mode" auf "snapshot" festzulegen, da dies der einzige Transaktionsisolationsmodus ist, der für lesende Replikate unterstützt wird.
    • Snapshot-Abfrageanweisung überschreiben: Verwenden Sie die Eigenschaft, wenn Sie möchten, dass ein Snapshot nur einen Teil der Zeilen in einer Tabelle enthält. Diese Eigenschaft wirkt sich nur auf Momentaufnahmen aus. Sie gilt nicht für Ereignisse, die der Connector aus dem Protokoll liest.
  7. Wählen Sie Weiter aus.

    Screenshot der Verbindungsseite des Assistenten zum Abrufen von Ereignissen.

  8. Überprüfen Sie auf der Anzeige Überprüfen und Erstellen die Zusammenfassung, und wählen Sie dann Hinzufügen aus.

    Screenshot der Seite „Überprüfen und erstellen“ des Assistenten zum Abrufen von Ereignissen.

Erfassen von Änderungsdaten aus Azure SQL-Datenbanken mit automatischer Tabellenschemaregistrierung über CDC in Eventstream.

  1. Wählen Sie auf der Seite Verbinden die Option Neue Verbindung aus.

    Screenshot der Seite

  2. Geben Sie im Abschnitt Verbindungseinstellungen die folgenden Werte für Ihre Azure SQL-Datenbank ein:

    • Server: Geben Sie den Namen des Azure SQL-Servers aus dem Azure-Portal ein. Es befindet sich in dieser Form: mysqlservername.database.windows.net.

    • Datenbank: Geben Sie den Azure SQL-Datenbanknamen aus dem Azure-Portal ein.

      Screenshot der Verbindungseinstellungen auf der Seite „Neue Verbindung“.

  3. Scrollen Sie nach unten und gehen Sie im Abschnitt Anmeldedaten für die Verbindung folgendermaßen vor:

    • Geben Sie für Verbindungsname einen Namen für die Verbindung ein.

    • Wählen Sie für Authentifizierungsart die Option Standard aus.

      Hinweis

      Derzeit unterstützt Fabric Eventstream nur die Standardauthentifizierung .

    • Geben Sie den Benutzernamen und das Kennwort für die Datenbank ein.

  4. Wählen Sie Verbinden.

    Screenshot, der den Bereich Verbindungs-Anmeldedaten auf der Seite „Neue Verbindung“ zeigt.

  5. Wählen Sie nun auf der Seite "Verbinden " die Option "Alle Tabellen" aus, oder geben Sie tabellennamen ein. Wenn Sie letzteres auswählen, geben Sie Tabellen mithilfe einer durch Trennzeichen getrennten Liste mit vollständigen Tabellenbezeichnern (schemaName.tableName) oder gültigen regulären Ausdrücken an. Beispiel:

    • Verwenden Sie dbo.test.*, um alle Tabellen auszuwählen, deren Namen mit dbo.test beginnen.
    • Verwenden Sie dbo\.(test1|test2), um dbo.test1 und dbo.test2 auszuwählen.

    Sie können beide Formate mithilfe von Kommas mischen. Die Gesamtzeichenbeschränkung für den gesamten Eintrag beträgt 102.400 Zeichen.

  6. Sie können erweiterte Einstellungen erweitern, um auf zusätzliche Konfigurationsoptionen für die Azure SQL-Datenbank-CDC-Quelle zuzugreifen:

    • Dezimalbehandlungsmodus: Definiert, wie der Konnektor DECIMAL und NUMERIC Spaltenwerte verarbeitet:
      • Precise: Stellt Werte mithilfe exakter Dezimaltypen dar (z. B. Java BigDecimal), um die volle Genauigkeit und Genauigkeit in der Datendarstellung sicherzustellen.
      • Double: Wandelt Werte in Gleitkommazahlen mit doppelter Genauigkeit um. Diese Einstellung verbessert die Benutzerfreundlichkeit und Leistung, kann aber zu einem Genauigkeitsverlust führen.
      • String: Codiert Werte als formatierte Zeichenfolgen. Diese Einstellung erleichtert die Nutzung in nachgeschalteten Systemen, verliert jedoch semantische Informationen über den ursprünglichen numerischen Typ.
    • Momentaufnahmemodus: Geben Sie die Kriterien für das Ausführen einer Momentaufnahme an, wenn der Connector gestartet wird:
      • Initial: Der Connector führt eine Momentaufnahme nur aus, wenn keine Offsets für den logischen Servernamen aufgezeichnet wurden oder wenn erkannt wird, dass eine frühere Momentaufnahme nicht abgeschlossen werden konnte. Nach Abschluss der Momentaufnahme beginnt der Connector, Ereignisdatensätze für nachfolgende Datenbankänderungen zu streamen.
      • InitialOnly: Der Connector führt eine Momentaufnahme nur aus, wenn für den logischen Servernamen keine Offsets aufgezeichnet wurden. Nach Abschluss der Momentaufnahme stoppt der Verbinder. Es wechselt nicht zum Streaming, um Änderungsereignisse aus dem Binlog zu lesen.
      • NoData: Der Connector führt eine Momentaufnahme aus, die nur das Schema, aber keine Tabellendaten erfasst. Legen Sie diese Option fest, wenn Sie keine konsistente Momentaufnahme der Daten benötigen, sondern nur die Änderungen, die seit dem Start des Connectors vorgenommen werden.
    • Liste "Spalten ausschließen": Gibt Spalten an, die von Änderungsereigniswerten mit vollqualifizierten Namen (schemaName.tableName.columnName) ausgeschlossen werden sollen.
    • Database applicationIntent: Bestimmt das Routingverhalten in SQL Server AlwaysOn-Verfügbarkeitsgruppen:
      • ReadWrite: Stellt eine Verbindung mit dem primären Replikat her. Verwenden Sie dies, wenn die Verbindung Lese- und Schreibvorgänge ausführen muss.
      • ReadOnly: Ermöglicht das Routing an ein lesbares sekundäres Replikat für schreibgeschützte Vorgänge. Verwenden Sie es, um CDC direkt auf Replikaten zu aktivieren. Es ist erforderlich, "snapshot.isolation.mode" auf "snapshot" festzulegen, da dies der einzige Transaktionsisolationsmodus ist, der für lesende Replikate unterstützt wird.
    • Snapshot-Abfrageanweisung überschreiben: Verwenden Sie die Eigenschaft, wenn Sie möchten, dass ein Snapshot nur einen Teil der Zeilen in einer Tabelle enthält. Diese Eigenschaft wirkt sich nur auf Momentaufnahmen aus. Sie gilt nicht für Ereignisse, die der Connector aus dem Protokoll liest.
  7. Aktivieren Sie die Ereignisschemazuordnung.

  8. Wählen Sie für "Arbeitsbereich" einen Fabric-Arbeitsbereich für den Schemasatz aus.

  9. Bei Schemasatz ist +Erstellen standardmäßig ausgewählt, wodurch ein neuer Schemasatz erstellt wird. Sie können ihn ändern, um einen vorhandenen Ereignisschemasatz auszuwählen.

  10. Wenn Sie im vorherigen Schritt die Option +Erstellen ausgewählt haben, geben Sie einen Namen für den Schemasatz ein.

    Screenshot der Schemaeinstellung für eine Azure SQL-Datenbank-CDC-Quelle.

  11. Wählen Sie auf der Seite Überprüfen und Verbinden die Option Hinzufügen aus.

    Screenshot der Seite

    Für alle Tabellen oder ausgewählten Tabellen in der Azure SQL-Datenbank erkennt der Connector automatisch und erstellt Schemas und registriert sie in der Schemaregistrierung.

  12. Wählen Sie den Eventstream-Knoten in der Mitte aus, und wechseln Sie im unteren Bereich zur Registerkarte " Zugeordnete Schemas ".

    Screenshot des Fensters

Schemasatz

  1. Navigieren Sie zum Arbeitsbereich, den Sie im vorherigen Schritt ausgewählt haben. Im folgenden Beispiel ist es "Mein Arbeitsbereich".

  2. Wählen Sie den Schemasatz aus, den der erstellte Azure SQL-Datenbankconnector (CDC) erstellt hat.

    Screenshot, der den generierten Schemasatz auf der Seite

  3. Die Schemas werden im Schemasatz wie in der folgenden Abbildung dargestellt angezeigt.

    Screenshot, der Schemas im generierten Schemasatz zeigt.

  4. Um die JSON-Version des Schemas anzuzeigen, wechseln Sie zur JSON-Schemaansicht .

    Screenshot der JSON-Schemaansicht.

    Ändern Sie diese ermittelten Schemas nicht mit diesem Editor, da sie nicht mit dem Schema der Tabellen in der Azure SQL-Datenbank konform sind.

Anzeigen des aktualisierten Eventstreams

  1. Sie können die Azure SQL-Datenbank (CDC)-Quelle sehen, die Ihrem Eventstream im Bearbeitungsmodus hinzugefügt wurde.

    Screenshot des Streamings Azure SQL-Datenbank CDC-Quelle in der Bearbeitungsansicht.

  2. Um diese neu hinzugefügte Azure SQL-Datenbank CDC-Quelle zu implementieren, wählen Sie "Veröffentlichen" aus. Nachdem Sie diese Schritte ausgeführt haben, ist Ihre Azure SQL-Datenbank CDC-Quelle für die Visualisierung in der Liveansicht verfügbar.

    Screenshot des Streamings der Azure SQL-Datenbank-CDC-Quelle in der Liveansicht.

Konfigurieren von Eventstream-Zielen für die Verwendung von Schemas

Derzeit werden für Eventstreams mit aktivierten erweiterten Features nur Eventhouse, benutzerdefinierte Endpunkte und abgeleitete Stream-Ziele unterstützt. In diesem Abschnitt wird gezeigt, wie Sie ein Eventhouse-Ziel hinzufügen und konfigurieren, wenn erweiterte Features (z. B. die Schemaunterstützung) für den Eventstream aktiviert sind.

Konfigurieren eines Schemas für ein benutzerdefiniertes Endpunktziel

  1. Wählen Sie Transformationsereignisse aus, oder fügen Sie das Ziel hinzu, und wählen Sie dann "CustomEndpoint" aus.

  2. Geben Sie im Bereich "Benutzerdefinierter Endpunkt " einen Namen für das Ziel an.

  3. Wählen Sie für das Eingabeschema das Schema für Ereignisse aus. Sie treffen eine Auswahl in diesem Feld, wenn Sie die Schemaunterstützung für einen Eventstream aktivieren.

Screenshot des Bereichs zum Konfigurieren eines benutzerdefinierten Endpunkts.

Ausführliche Schritte zum Konfigurieren eines benutzerdefinierten Endpunktziels finden Sie unter Hinzufügen eines benutzerdefinierten Endpunkts oder benutzerdefinierten App-Ziels zu einem Eventstream.

Konfigurieren von Schemas für ein Eventhouse-Ziel

  1. Wählen Sie Transformationsereignisse aus, oder fügen Sie das Ziel hinzu, und wählen Sie dann Eventhouse aus.

  2. Konfigurieren Sie im Eventhouse-Bereich die folgenden schemabezogenen Einstellungen:

    1. Wählen Sie für das Eingabeschema ein oder mehrere Schemas aus der Dropdownliste aus.

      Screenshot des Ereignishauskonfigurationsbereichs mit ausgewähltem Eingabeschema.

      Hinweis

      Wenn Sie das dynamische Schema über die Headeroption beim Konfigurieren einer Event Hubs-Quelle ausgewählt haben, haben Sie möglicherweise mehrere Schemas für die Quelle konfiguriert und sie verschiedenen Eigenschaften und deren Werten zugeordnet.

    2. Wählen Sie für die Tabellenerstellungsmethode entweder eine einzelne Tabelle, in der alle Schemata kombiniert werden, oder separate Tabellen für jedes einzelne Schema aus, je nach Ihren Anforderungen.

      Screenshot des Ereignishaus-Konfigurationsbereichs mit Tabellenerstellungsmethoden.

    3. Wählen Sie für Write data with eine der folgenden Optionen aus:

      • Nur Nutzlast: Schreiben extrahierter Nutzlastdaten in die Tabelle. Wenn mehrere Eingabeschemas vorhanden sind, werden Daten an mehrere Tabellen gesendet.
      • Metadaten und Nutzlast: Schreiben von Metadaten und Nutzlastdaten in eine einzelne Tabelle. Beispielspalten umfassen source , , subject, typeund data.

      Screenshot des Ereignishauskonfigurationsbereichs mit den Optionen zum Schreiben von Daten.

Ausführliche Schritte zum Konfigurieren eines Eventhouse-Ziels finden Sie unter Hinzufügen eines Eventhouse-Ziels zu einem Eventstream.

Andere Connectors: