Oracle Database CDC ソースをイベントストリームに追加する (プレビュー)

この記事では、Oracle Database Change Data Capture (CDC) ソースをイベントストリームに追加する方法について説明します。

Microsoft Fabric eventstream 用の Oracle Database CDC ソース コネクタを使用すると、Oracle データベース内の現在のデータのスナップショットをキャプチャできます。 コネクタは、このデータに対する将来の行レベルの変更を監視し、記録します。 イベントストリームで変更がキャプチャされたら、この CDC データをリアルタイムで処理し、Fabric内のさまざまな宛先に送信して、さらに処理または分析することができます。 コネクタは、オンプレミスでもクラウドでも Oracle データベースをサポートします。

Prerequisites

  • 共同作成者以上のアクセス許可を持つファブリック容量ライセンス モードまたは試用版ライセンス モードのワークスペースへのアクセス。
  • 実行中の Oracle データベース サーバー (オンプレミスまたはクラウドでホスト)。
  • Oracle データベースにはパブリックにアクセスでき、ファイアウォールの内側や仮想ネットワーク内でセキュリティ保護されないようにする必要があります。 保護されたネットワークに存在する場合は、 Eventstream コネクタの仮想ネットワークインジェクションを使用して接続します。
  • CDC キャプチャのためにデータベースで Oracle LogMiner が有効になっています。
  • CDC 操作に必要なアクセス許可を持つデータベース ユーザー。

サポートされている Oracle のバージョン

Oracle Database CDC コネクタでは、次の Oracle データベース バージョンがサポートされています。

  • Oracle Database 12c (12.1) 以降
  • Oracle Database 19c
  • Oracle Database 21c
  • Oracle 自律データベース

Oracle データベースで CDC を有効にする

Oracle から変更データをキャプチャするには、補足ログを有効にして LogMiner を構成する必要があります。

補足ログを有効にする

  1. DBA 特権を持つユーザーとして Oracle データベースに接続します。

  2. 次の SQL コマンドを実行して、データベース レベルで補足ログを有効にします。

    -- 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. 補足ログが有効になっていることを確認します。

    SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;
    

    クエリは両方の列の YES を返す必要があります。

アーカイブ ログ モードを有効にする

CDC が正常に機能するためには、データベースが ARCHIVELOG モードである必要があります。

  1. 現在のアーカイブ ログ モードを確認します。

    SELECT LOG_MODE FROM V$DATABASE;
    
  2. ARCHIVELOG モードでない場合は、有効にします。

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

必要な特権を持つ CDC ユーザーを作成する

必要なアクセス許可を持つ CDC コネクタの専用ユーザーを作成します。

-- 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;

<your_password><schema><table_name> は実際の値に置き換えてください。

データ ソースの選択ウィザードを起動する

まだ eventstream にソースを追加していない場合は、[ データ ソースの接続 ] タイルを選択します。 リボンの [ ソースの追加>データ ソースの接続 ] を選択することもできます。

外部ソースを使用するためのタイルの選択を示すスクリーンショット。

既に公開されているイベントストリームにソースを追加する場合は、 編集 モードに切り替えます。 リボンで、[ソースの追加] >[データ ソースの接続] を選択します。

外部ソースを追加するための選択を示すスクリーンショット。

[データ ソースの選択] ページで、Oracle DB (CDC) タイルで [接続] を検索して選択します。

イベントの取得ウィザードでソースの種類として Oracle Database (CDC) を選択したことを示すスクリーンショット。

Oracle Database CDC の構成と接続

  1. [ 接続 ] ページの [サーバー] に、Oracle エンドポイントを入力します。

    ホスト名のみを指定するか、ホスト、ポート、サービス/SID を 1 つの値に含めることができます。 たとえば、 your-oracle-host.example.com:1521/ORCLと指定します。

  2. [ 接続資格情報] で、既存の接続を選択するか、新しい接続を作成します。

    • 新しい接続を作成するには、[ 新しい接続 ] を選択し、次のように入力します。
      • 接続名: この接続の名前。
      • ユーザー名: CDC アクセス許可を持つ Oracle データベース ユーザー。
      • パスワード: データベース ユーザーのパスワード。
  3. 接続を選択します。

    新しい接続ページのスクリーンショット。

  4. 接続が確立されたら、[ すべての テーブル] または [テーブル名の入力] を選択して、キャプチャする テーブルを選択します[テーブル名の入力] を選択した場合は、監視する Oracle データベース テーブルの完全なテーブル識別子 (schemaName.tableName) のコンマ区切りの省略可能な一覧を入力します。

  5. [詳細設定] を展開すると、Oracle Database CDC ソースのその他の構成オプションにアクセスできます。

    • スナップショット ロック モード: コネクタがテーブル ロックを保持するかどうかを制御します。 テーブル ロックを使用すると、コネクタがスナップショットを実行している間に、特定の種類のテーブル操作が実行されなくなります。
      • Shared (既定値): テーブルへの同時アクセスを有効にしますが、セッションが排他テーブル ロックを取得できないようにします。 コネクタは、テーブル スキーマをキャプチャするときに ROW SHARE レベルのロックを取得します。
      • None: スナップショット中にコネクタがテーブル ロックを取得できないようにします。 この設定は、スナップショットの作成時にスキーマの変更が発生しない場合にのみ使用します。
    • 10 進処理モード: NUMBERDECIMAL、および NUMERIC 列の浮動小数点値をコネクタで処理する方法を指定します。 次のいずれかのオプションを設定できます。
      • Precise (既定値): 変更イベントで表される java.math.BigDecimal 値をバイナリ形式で使用して、値を正確に表します。
      • Double: double 値を使用して値を表します。 double 値を使用する方が簡単ですが、精度が低下する可能性があります。
      • String: 値を書式設定された文字列としてエンコードします。 String オプションの使用は簡単ですが、実際の型に関するセマンティック情報が失われます。
    • スナップショット モード: キャプチャされたテーブルのスナップショットを取得するためにコネクタが使用するモードを指定します。
      • Initial (既定値): スナップショットには、キャプチャされたテーブルの構造とデータが含まれます。 キャプチャされたテーブルのデータを完全に表現してトピックを設定するには、この値を指定します。 スナップショットが正常に完了した場合、コネクタは次回の起動時にスナップショットを再度実行しません。
      • InitialOnly: スナップショットには、キャプチャされたテーブルの構造とデータが含まれます。 コネクタは初期スナップショットを実行した後、後続の変更を処理せずに停止します。
      • NoData: スナップショットには、キャプチャされたテーブルの構造のみが含まれます。 スナップショットの後に発生した変更のデータのみをコネクタでキャプチャする場合は、この値を指定します。
  6. [次へ] を選択して続行します。

    Oracle CDC ソースの [詳細設定] ページのスクリーンショット。

  7. [ 確認と接続] で、設定を確認します。

  8. [ 追加] (Eventstream) または [接続 ] (Real-Time ハブ) を選択します。

    Oracle CDC ソースのレビューと接続ページのスクリーンショット。

更新されたイベントストリームを表示する

  1. 編集モードで Eventstream に追加された Oracle Database CDC ソースを確認できます。

    [編集] ビューでの Oracle Database CDC ソースのストリーミングのスクリーンショット。

  2. この新しく追加された Oracle Database CDC ソースを実装するには、[発行] を選択 します。 これらの手順を完了すると、Oracle Database CDC ソースを ライブ ビューで視覚化できるようになります。

    ライブ ビューでの Oracle Database CDC ソースのストリーミングのスクリーンショット。

その他のコネクタ。