メイン コンテンツをスキップする 補完的コンテンツへスキップ

チェンジデータキャプチャー(CDC)

CDCアーキテクチャーの概要

データウェアハウジングでは、データを分析するため、1つ(または複数)のデータベースからデータを抽出しターゲットシステムへ転送する必要があります。ただし、これには膨大な量のデータを抽出し転送する必要があり、リソースと時間の両方においてかなりのコストがかかります。

変更されたソースデータのみをキャプチャーし、それをリアルタイムにソースからターゲットシステムに移動する機能は、チェンジデータキャプチャー(CDC)として知られています。変更をキャプチャーすることで、ネットワークを経由するトラフィックが削減されるため、ETL時間を短縮できます。

Talend Studioで導入されたCDC機能は、最終抽出以降の変更データを識別するプロセスを簡易化します。Talend StudioのCDCは、データベーステーブルで追加、アップデート、または削除されたデータを迅速に識別してキャプチャーし、その後アプリケーションまたは個々のユーザーがこの変更データを使用できるようにします。CDC機能は、Oracle、MySQL、DB2、PostgreSQL、Sybase、MS SQL Server、Informix、Ingres、Teradata、およびAS/400に対応しています。

情報メモWarning: CDC機能は、同じサーバー上で実行されているデータベースシステムでのみ動作します。

Talend Studioでは、3種類のCDCモードを使用できます:

  • [Trigger] (トリガー): このモードはCDCコンポーネントが使用するデフォルトモードです。

  • [Redo/Archive log] (再実行/アーカイブログ): このモードはOracle v11とそれ以前のバージョンおよびAS/400で使用されます。

  • [XStream]: このモードはOracle v12のOCIでのみ使用されます。

これらの3つのモードの詳細は、以下のセクションを参照してください。

トリガーモード

このモードは以下のデータベースに対応しています: MySQL, Oracle, DB2, PostgreSQL, Sybase, MS SQL Server, Informix, Ingres, およびTeradata。

[Trigger] (トリガー)モードは、各監視対象ソーステーブルでのCDCの開始をトリガーします。これによってデータベースストラクチャーが変更されることはほとんどありません。

このモードでは、ソーステーブルで生じた[Insert] (挿入)[Update] (アップデート)、または[Delete] (削除)操作について同時にデータ抽出され、変更データはデータベース内の変更テーブルに保存されます。変更されたデータはキャプチャーされ、その後、サブスクライバービューを使用して管理された方法でターゲットシステムで使用できる状態にします。

[Trigger] (トリガー)モードでは、CDCのパブリッシャーは1つのみですが、多数のサブスクライバーを保持できます。CDCは、サブスクライバーテーブルを作成してターゲットシステムによる変更テーブルデータへのアクセスを制御します。ターゲットシステムは、ソースシステムからキャプチャーされたデータを使用する必要のある任意のアプリケーションです。

下図は、における[Trigger] (トリガー)Talend StudioモードのCDC環境の基本的なアーキテクチャーを示しています。

[Trigger] (トリガー)モードでのCDC環境の基本アーキテクチャー。

この例では、CDCはProductテーブルに加えられた変更を監視しています。変更が取得されると、2つのサブスクライバーがアクセス可能な変更テーブルに公開されます。CRMアプリケーションと会計アプリケーション。これらの2つのシステムは変更をフェッチし、それらを使用してデータを更新します。

CDC再実行/アーカイブログモード

[Redo/Archive log] (再実行/アーカイブログ)モードは、OracleデータベースEnterprise Editions v11およびAS/400データベースでのみ使用可能です。OracleのアーカイブログモードおよびAS/400のジャーナルモードと同等です。

情報メモNote: Oracle v11とOracle用の再実行/アーカイブログモードは非推奨です。

Oracleデータベースでは、[Redo log] (再実行ログ)は、データに加えられた変更の履歴を記録したファイルです。AS/400データベースでは、これらの変更は自動的にデータベースの内部ログブック(ジャーナル)に記録されます。これらの変更には、データに対して実行された可能性のある挿入、アップデート、および削除操作が含まれます。

[Redo/Archive log] (再実行/アーカイブログ)モードは[Trigger] (トリガー)モードとは対照的でデータベースストラクチャーを変更する必要がないため、[Trigger] (トリガー)モードより透過的です。

この[Redo/Archive log] (再実行/アーカイブログ)モードをOracleに対して設定する場合は、1つのサブスクライバーのみが変更テーブルへのアクセス権限を保持できます。このサブスクライバーは、サブスクリプション権限を保持するデータベースユーザーである必要があります。また、サブスクライバー変更テーブルへのアクセスを制御するサブスクリプションテーブルもあります。サブスクリプション変更テーブルは、[Redo/Archive log] (再実行/アーカイブログ)オプションが有効になった時点でのOracleデータベースの状態を反映する包括的な内部テーブルです。

このモードをAS/400に対して設定すると、fitcdc.savfという名前のTalend Studioで提供される保存ファイルがAS/400上で復元され、RUNCDCと呼ばれるプログラムのインストールに使用されます。サブスクライバーが変更を表示([View all changes] (すべての変更を表示))するか、それらを(tAS400CDCコンポーネントを使用して)再利用すると、RUNCDCプログラムはソーステーブルからログブック(ジャーナル)と接続されたレシーバーを読み取って分析し、それに従って変更テーブルをアップデートします。AS/400 [CDC Redo/Archive log] (CDC再実行/アーカイブログ)モード(ジャーナル)では、サブスクリプションテーブルが作成され、許可されていないターゲットシステムが変更テーブルのデータにアクセスするのを防ぎます。ターゲットシステムとは、ソースシステムでキャプチャーされたデータの使用を試みるアプリケーションを指しています。

[Redo/Archive log] (再実行/アーカイブログ)モードでのCDC環境の基本アーキテクチャー。

この例では、CDCは、データベースのログブック(ジャーナル)に含まれるデータを利用して、Productテーブルに加えられた変更を監視しています。CDCはログブックを読み取り、データに加えられた変更を記録します。これらの変更は収集されると、CRMアプリケーションと会計アプリケーションの2つのサブスクライバーがアクセス可能な変更テーブルに公開されます。これらの2つのシステムは変更をフェッチし、それらを使用してデータを更新します。

XStreamモード

XStreamは、OracleデータベースとOracle以外のデータベースやサードパーティソフトウェアアプリケーションなど他のシステムとの間で、データ変更のリアルタイム共有のためのパフォーマンスおよび有用性に優れたフレームワークを提供します。XStreamは次の2つの主要な機能で構成されています: XStream OutおよびXStream In

XStream Outは、Oracleデータベースで行われたデータの変更を他のシステムと共有するためのOracle Databaseコンポーネントおよびアプリケーションプログラミングインターフェイスを提供します。また、OracleデータベースのREDOログからキャプチャーした変更をアウトバウンドサーバーによりクライアントアプリケーションにストリーミングするためのトランザクションベースのインターフェイスも提供します。アウトバウンドサーバーは、クライアントアプリケーションにデータの変更を送信するオプションのOracleバックグラウンドプロセスです。

XStream Inは、他のシステムで行われたデータの変更をOracleデータベースと共有するためのOracle Databaseコンポーネントおよびアプリケーションプログラミングインターフェイスを提供します。また、インバウンドサーバーによりクライアントアプリケーションからOracleデータベースに情報を送信するためのトランザクションベースのインターフェイスも提供します。インバウンドサーバーは、クライアントアプリケーションからデータの変更を受信するオプションのOracleバックグラウンドプロセスです。

では、XStreamTalend StudioモードはOracle v12のOCIでのみ使用できます。For more information about the XStream mode, see Database XStream Guide.

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。