Hinzufügen einer Oracle Database CDC-Quelle zu einem Eventstream (Vorschau)

In diesem Artikel wird gezeigt, wie Sie einem Eventstream eine Oracle Database Change Data Capture (CDC)-Quelle hinzufügen.

Mit dem Oracle Database CDC-Quellkonnektor für Microsoft Fabric Eventstream können Sie eine Momentaufnahme der aktuellen Daten in einer Oracle-Datenbank erfassen. Künftige Änderungen an diesen Daten auf Zeilenebene werden dann vom Konnektor überwacht und aufgezeichnet. Nachdem die Änderungen im Ereignisstream erfasst wurden, können Sie diese CDC-Daten in Echtzeit verarbeiten und an verschiedene Ziele innerhalb Fabric zur weiteren Verarbeitung oder Analyse senden. Der Connector unterstützt Oracle-Datenbanken, unabhängig davon, ob sie lokal oder in der Cloud sind.

Voraussetzungen

  • Zugriff auf einen Arbeitsbereich im Fabric-Kapazitäts-Lizenzmodus oder im Testlizenzmodus, wenn Mitwirkende- oder höhere Berechtigungen vorliegen.
  • Ein ausgeführter Oracle-Datenbankserver (lokal oder in der Cloud gehostet).
  • Ihre Oracle-Datenbank sollte öffentlich zugänglich und weder hinter einer Firewall noch durch ein virtuelles Netzwerk geschützt sein. Wenn es sich in einem geschützten Netzwerk befindet, stellen Sie mithilfe der Eventstream Connector virtual network Injection eine Verbindung mit ihr her.
  • Oracle LogMiner ist in Ihrer Datenbank für die CDC-Aufnahme aktiviert.
  • Ein Datenbankbenutzer mit den erforderlichen Berechtigungen für CDC-Vorgänge.

Unterstützte Oracle-Versionen

Der Oracle Database CDC-Connector unterstützt die folgenden Oracle-Datenbankversionen:

  • Oracle Database 12c (12.1) und höher
  • Oracle Database 19c
  • Oracle Database 21c
  • Oracle Autonomous Database

Aktivieren von CDC in Ihrer Oracle-Datenbank

Um Änderungsdaten aus Oracle zu erfassen, müssen Sie die ergänzende Protokollierung aktivieren und LogMiner konfigurieren.

Zusätzliche Protokollierung aktivieren

  1. Stellen Sie eine Verbindung mit Ihrer Oracle-Datenbank als Benutzer mit DBA-Berechtigungen her.

  2. Aktivieren Sie die zusätzliche Protokollierung auf Datenbankebene, indem Sie die folgenden SQL-Befehle ausführen:

    -- Enable minimal supplemental logging at the database level
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    
    -- Enable supplemental logging for all columns (recommended for CDC)
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    
  3. Überprüfen Sie, ob die zusätzliche Protokollierung aktiviert ist:

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;
    

    Die Abfrage sollte für beide Spalten YES zurückgeben.

Archivprotokollmodus aktivieren

Damit CDC ordnungsgemäß funktioniert, muss sich die Datenbank im ARCHIVLOG-Modus befinden.

  1. Überprüfen Sie den aktuellen Archivprotokollmodus:

    SELECT LOG_MODE FROM V$DATABASE;
    
  2. Wenn sie noch nicht im ARCHIVLOG-Modus vorhanden ist, aktivieren Sie sie:

    -- Shut down the database
    SHUTDOWN IMMEDIATE;
    
    -- Start in mount mode
    STARTUP MOUNT;
    
    -- Enable archivelog mode
    ALTER DATABASE ARCHIVELOG;
    
    -- Open the database
    ALTER DATABASE OPEN;
    

Erstellen eines CDC-Benutzers mit erforderlichen Berechtigungen

Erstellen Sie einen dedizierten Benutzer für den CDC-Connector mit den erforderlichen Berechtigungen:

-- Create a user for CDC
CREATE USER fabric_cdc IDENTIFIED BY <your_password>;

-- Grant basic privileges
GRANT CREATE SESSION TO fabric_cdc;
GRANT SELECT ON V_$DATABASE TO fabric_cdc;
GRANT SELECT ON V_$LOG TO fabric_cdc;
GRANT SELECT ON V_$LOGFILE TO fabric_cdc;
GRANT SELECT ON V_$ARCHIVED_LOG TO fabric_cdc;
GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO fabric_cdc;

-- Grant LogMiner privileges
GRANT EXECUTE ON DBMS_LOGMNR TO fabric_cdc;
GRANT EXECUTE ON DBMS_LOGMNR_D TO fabric_cdc;
GRANT SELECT ANY TRANSACTION TO fabric_cdc;
GRANT LOGMINING TO fabric_cdc;

-- Grant SELECT on tables you want to capture
GRANT SELECT ON <schema>.<table_name> TO fabric_cdc;

Ersetzen Sie <your_password>, <schema> und <table_name> durch Ihre tatsächlichen Werte.

Starten Sie den Assistenten zum Auswählen einer Datenquelle

Wenn Sie Ihrem Eventstream noch keine Quelle hinzugefügt haben, wählen Sie die Kachel "Datenquellen verbinden" aus . Sie können auch "Quelle hinzufügen"> und "Datenquellen verbinden" auf dem "Ribbon" auswählen.

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 hinzufügen; Datenquellen verbinden" aus.

Screenshot der Auswahl zum Hinzufügen externer Quellen.

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

Screenshot, der die Auswahl von Oracle Database (CDC) als Quelltyp im Assistenten zum Abrufen von Ereignissen zeigt.

Konfigurieren und Herstellen einer Verbindung mit Oracle Database CDC

  1. Geben Sie auf der Seite "Verbinden " in Server Ihren Oracle-Endpunkt ein.

    Sie können nur den Hostnamen angeben oder Host, Port und Dienst/SID in einen einzelnen Wert einschließen. Beispiel: your-oracle-host.example.com:1521/ORCL.

  2. Wählen Sie unter "Verbindungsanmeldeinformationen" eine vorhandene Verbindung aus, oder erstellen Sie eine neue Verbindung:

    • Um eine neue Verbindung zu erstellen, wählen Sie "Neue Verbindung " aus, und geben Sie Folgendes ein:
      • Verbindungsname: Ein Name für diese Verbindung.
      • Benutzername: Der Oracle-Datenbankbenutzer mit CDC-Berechtigungen.
      • Kennwort: Das Kennwort für den Datenbankbenutzer.
  3. Wählen Sie Verbinden aus.

    Screenshot der neuen Verbindungsseite.

  4. Nachdem die Verbindung hergestellt wurde, wählen Sie die zu erfassenden Tabellen aus, indem Sie "Alle Tabellen" oder " Tabellennamen eingeben" auswählen. Wenn Sie "Tabellennamen eingeben" auswählen, geben Sie eine optionale durch Trennzeichen getrennte Liste mit vollständigen Tabellenbezeichnern (schemaName.tableName) für die zu überwachenden Oracle-Datenbanktabellen ein.

  5. Sie können erweiterte Einstellungen erweitern, um auf weitere Konfigurationsoptionen für die Oracle Database CDC-Quelle zuzugreifen:

    • Snapshot-Sperrmodus: Steuert, ob und wie lange der Connector eine Tabellensperre aufrechterhält. Tabellensperren verhindern, dass bestimmte Arten von Tabellenvorgängen ausgeführt werden, während der Konnektor eine Momentaufnahme erstellt.
      • Shared (Standard): Ermöglicht gleichzeitigen Zugriff auf die Tabelle, verhindert jedoch, dass eine Sitzung eine exklusive Tabellensperre erhält. Der Konnektor setzt eine Sperre auf ROW-SHARE-Ebene, während er das Tabellenschema erfasst.
      • None: Verhindert, dass der Konnektor während des Snapshots keine Tabellensperren bezieht. Verwenden Sie diese Einstellung nur, wenn während der Erstellung von Momentaufnahmen keine Schemaänderungen vorgenommen werden können.
    • Dezimalbehandlungsmodus: Gibt an, wie der Verbinder Gleitkommawerte für NUMBER, DECIMALund NUMERIC Spalten behandeln soll. Sie können eine der folgenden Optionen festlegen:
      • Precise (Standard): Stellt Werte präzise dar, indem java.math.BigDecimal Werte verwendet werden, die in Änderungsereignissen in Binärform dargestellt werden.
      • Double: Stellt Werte mithilfe von doppelten Werten dar. Die Verwendung doppelter Werte ist einfacher, kann aber zu einem Genauigkeitsverlust führen.
      • String: Codiert Werte als formatierte Zeichenfolgen. Die Verwendung der String Option ist einfacher zu verwenden, führt jedoch zu einem Verlust semantischer Informationen über den tatsächlichen Typ.
    • Momentaufnahmemodus: Gibt den Modus an, den der Connector zum Erstellen von Momentaufnahmen einer erfassten Tabelle verwendet.
      • Initial (Standard): Die Momentaufnahme enthält die Struktur und Daten der erfassten Tabellen. Geben Sie diesen Wert an, um Themen mit einer vollständigen Darstellung der Daten aus den erfassten Tabellen aufzufüllen. Wenn der Snapshot erfolgreich abgeschlossen wurde, führt der Connector den Snapshot beim nächsten Start nicht erneut durch.
      • InitialOnly: Der Snapshot enthält die Struktur und die Daten der erfassten Tabellen. Der Konnektor führt eine erste Momentaufnahme durch und hält anschließend an, ohne spätere Änderungen zu verarbeiten.
      • NoData: Die Momentaufnahme enthält nur die Struktur der erfassten Tabellen. Geben Sie diesen Wert an, wenn der Connector Daten nur für Änderungen erfassen soll, die nach der Momentaufnahme auftreten.
  6. Klicken Sie auf Weiter, um fortzufahren.

    Screenshot der Seite

  7. Überprüfen Sie bei "Überprüfen+ Verbinden" Ihre Einstellungen.

  8. Wählen Sie Add (Eventstream) oder Connect (Real-Time Hub) aus.

    Bildschirmfoto der Seite „Oracle CDC-Quelle Überprüfen + verbinden“.

Aktualisierten Ereignisstream anzeigen

  1. Sie können die Oracle Database CDC-Quelle sehen, die Ihrem Eventstream im Bearbeitungsmodus hinzugefügt wurde.

    Screenshot der Streaming-Oracle-Database-CDC-Quelle in der Bearbeitungsansicht.

  2. Um diese neu hinzugefügte Oracle Database CDC-Quelle zu implementieren, wählen Sie "Veröffentlichen" aus. Nachdem Sie diese Schritte ausgeführt haben, steht Ihre Oracle Database CDC-Quelle für die Visualisierung in der Liveansicht zur Verfügung.

    Screenshot der Streaming-CDC-Quelle für Oracle Database in der Liveansicht.

Andere Konnektoren: