[Talend] CDC(Change Data Capture)を使ったデータ連携(2/3)
- [Talend] CDC(Change Data Capture)を使ったデータ連携(1/3)
- [Talend] CDC(Change Data Capture)を使ったデータ連携(2/3)
- [Talend] CDC(Change Data Capture)を使ったデータ連携(3/3)
OracleにCDCを定義する
前回の記事ではテーブルスキーマを定義するまでを定義したので、今回はoracleのテーブルに対して実際にCDCの定義以降を行います。
・STEP2:下記画面が表示されたら Create Subscriber をクリックします。
・STEP4:TSUBSCRIBERSが追加されていることを確認します。
・STEP6:下記画面が表示されるので Execute でSQLを実行します。
・STEP7:下記のように追加されていることを確認します。 以上でCDCの定義までは完了したので、次は実際に動作の確認を行ってみます。
データ変更用のTalend JOBを作成
customersテーブルに変更を加えるジョブを作成します。Create JobでModifyTablesOracleとしてここでは作成します。
- Delete用のSubJobを作成
- Update用のSubjobを作成
- Insert用のSubJobを作成
各サブジョブ作成後はOnSubjobOKのトリガで順にプロセスが流れるようにTalend上で定義します。
まずはDataOracleメタデータをドラッグ&ドロップでジョブデザイナーエリアに配置します。(tOracleInputを指定します。)同様にDataOracleメタデータをドラッグ&ドロップで配置します。(tOracleOutputを指定します。)
配置したtOracleInput_1のプロパティ ※クエリには where ID='1' を追加していることに注意
配置したtOracleOutput_1のプロパティ ※Action on dataのプロパティを delete に変更していることに注意
同じようにDataOracleメタデータをドラッグ&ドロップで配置してUpdate用のSubjobも作ります。
配置したtOracleInput_2のプロパティ ※クエリには where ID='2' を追加していることに注意
配置したtOracleOutput_2のプロパティ ※Action on dataのプロパティを update に変更していることに注意
最後にcustomersテーブルにレコードを追加するSubjobを作成します。 tRowGeneratorとDataOracleメタデータをドラッグ&ドロップで配置してtOracleOutputコンポーネントを配置します。
配置したtOracleOutput_3のプロパティ ※Action on dataのプロパティを insert に変更していることに注意
tRowGeneratorとtOracleOutputにメインで関係線を結び、各SubjobがOKなら次のSubjobへ処理が移るようにトリガを設定します。
ジョブの完成系は以下の感じになります。