この記事では、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 を構成する必要があります。
補足ログを有効にする
DBA 特権を持つユーザーとして Oracle データベースに接続します。
次の 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;補足ログが有効になっていることを確認します。
SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL FROM V$DATABASE;クエリは両方の列の
YESを返す必要があります。
アーカイブ ログ モードを有効にする
CDC が正常に機能するためには、データベースが ARCHIVELOG モードである必要があります。
現在のアーカイブ ログ モードを確認します。
SELECT LOG_MODE FROM V$DATABASE;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 エンドポイントを入力します。
ホスト名のみを指定するか、ホスト、ポート、サービス/SID を 1 つの値に含めることができます。 たとえば、
your-oracle-host.example.com:1521/ORCLと指定します。[ 接続資格情報] で、既存の接続を選択するか、新しい接続を作成します。
- 新しい接続を作成するには、[ 新しい接続 ] を選択し、次のように入力します。
- 接続名: この接続の名前。
- ユーザー名: CDC アクセス許可を持つ Oracle データベース ユーザー。
- パスワード: データベース ユーザーのパスワード。
- 新しい接続を作成するには、[ 新しい接続 ] を選択し、次のように入力します。
接続を選択します。
接続が確立されたら、[ すべての テーブル] または [テーブル名の入力] を選択して、キャプチャする テーブルを選択します。 [テーブル名の入力] を選択した場合は、監視する Oracle データベース テーブルの完全なテーブル識別子 (
schemaName.tableName) のコンマ区切りの省略可能な一覧を入力します。[詳細設定] を展開すると、Oracle Database CDC ソースのその他の構成オプションにアクセスできます。
-
スナップショット ロック モード: コネクタがテーブル ロックを保持するかどうかを制御します。 テーブル ロックを使用すると、コネクタがスナップショットを実行している間に、特定の種類のテーブル操作が実行されなくなります。
-
Shared(既定値): テーブルへの同時アクセスを有効にしますが、セッションが排他テーブル ロックを取得できないようにします。 コネクタは、テーブル スキーマをキャプチャするときに ROW SHARE レベルのロックを取得します。 -
None: スナップショット中にコネクタがテーブル ロックを取得できないようにします。 この設定は、スナップショットの作成時にスキーマの変更が発生しない場合にのみ使用します。
-
-
10 進処理モード:
NUMBER、DECIMAL、およびNUMERIC列の浮動小数点値をコネクタで処理する方法を指定します。 次のいずれかのオプションを設定できます。-
Precise(既定値): 変更イベントで表されるjava.math.BigDecimal値をバイナリ形式で使用して、値を正確に表します。 -
Double: double 値を使用して値を表します。 double 値を使用する方が簡単ですが、精度が低下する可能性があります。 -
String: 値を書式設定された文字列としてエンコードします。Stringオプションの使用は簡単ですが、実際の型に関するセマンティック情報が失われます。
-
-
スナップショット モード: キャプチャされたテーブルのスナップショットを取得するためにコネクタが使用するモードを指定します。
-
Initial(既定値): スナップショットには、キャプチャされたテーブルの構造とデータが含まれます。 キャプチャされたテーブルのデータを完全に表現してトピックを設定するには、この値を指定します。 スナップショットが正常に完了した場合、コネクタは次回の起動時にスナップショットを再度実行しません。 -
InitialOnly: スナップショットには、キャプチャされたテーブルの構造とデータが含まれます。 コネクタは初期スナップショットを実行した後、後続の変更を処理せずに停止します。 -
NoData: スナップショットには、キャプチャされたテーブルの構造のみが含まれます。 スナップショットの後に発生した変更のデータのみをコネクタでキャプチャする場合は、この値を指定します。
-
-
スナップショット ロック モード: コネクタがテーブル ロックを保持するかどうかを制御します。 テーブル ロックを使用すると、コネクタがスナップショットを実行している間に、特定の種類のテーブル操作が実行されなくなります。
[次へ] を選択して続行します。
[ 確認と接続] で、設定を確認します。
[ 追加] (Eventstream) または [接続 ] (Real-Time ハブ) を選択します。
更新されたイベントストリームを表示する
編集モードで Eventstream に追加された Oracle Database CDC ソースを確認できます。
この新しく追加された Oracle Database CDC ソースを実装するには、[発行] を選択 します。 これらの手順を完了すると、Oracle Database CDC ソースを ライブ ビューで視覚化できるようになります。
関連するコンテンツ
その他のコネクタ。