
はじめに
CData Sync では、データをレプリケーションする処理を「ジョブ」という単位で実行します。ジョブにはいくつかの種類があり、代表的なのが標準ジョブとCDC ジョブです。この 2 つは変更されたデータ(差分)を検出する仕組みが根本的に異なります。
本記事では、標準ジョブと CDC ジョブの仕組みの違いと、ユースケース別の使い分けを解説します。
CData Sync のジョブの種類の全体像
CData Sync では、主に以下のジョブの種類でデータをレプリケーションします。
ジョブの種類 | 概要 |
|---|
標準ジョブ | 差分チェックカラムを使った差分検出、または全件レプリケーションでデータをレプリケーションする。デフォルトのジョブの種類 |
CDC ジョブ | データソースのネイティブな変更追跡メカニズムを直接利用して変更を検出し、削除されたレコードも追跡できる |
リバース ETL | データウェアハウスなどの中央リポジトリから、業務システムや SaaS などの運用システムへデータを書き戻すジョブ。一般的な ETL(ソース→データウェアハウス)とは逆方向のデータ連携を行う。詳細は リバース ETL のドキュメント を参照 |
すべて同期 | データソースのすべてのテーブルを自動的にタスクとしてジョブに追加するジョブ。新しいテーブルが追加された場合も次回実行時に自動でレプリケーション対象になる。レプリケーションの挙動は標準ジョブと同様。 |
本記事では主要なジョブの種類である「標準ジョブ」と「CDC ジョブ」の 2 種類に焦点を当てて解説します。
標準ジョブの仕組み

標準ジョブは、ソーステーブルのデータを同期先(データウェアハウスやデータレイクなど)にレプリケーションするジョブです。差分チェックカラムを設定するかどうかによって、全件を転送するか(全件レプリケーション)、変更されたレコードだけを転送するか(差分レプリケーション)が決まります。
差分チェックカラムとは
差分チェックカラムとは、レコードが新規作成または更新されたことを識別するための目印として使うカラムです。たとえば「レコードが最後に更新された日時」を記録する UpdatedAt のようなカラムが典型的な例です。CData Sync では、このカラムをジョブ設定で差分チェックカラムとして指定することで、前回のレプリケーション以降に変更されたレコードだけを取得できます。
差分チェックカラムの指定方法は、データソースの種類によって異なります。SQL Server・Oracle・PostgreSQL・MySQL などのリレーショナルデータベースでは、どのカラムを差分チェックカラムとして使うかをユーザーが明示的に指定する必要があります。一方、Salesforce や Marketo などの SaaS・API 系データソースでは、更新を識別できるカラムがコネクタ側で事前に定義されています。そのため、ユーザーが明示的に指定しなくても CData Sync が自動的に適切なカラムを検出する場合が多いです。
差分チェックカラムの設定による動作の違い
差分チェックカラムを指定されているかどうかによって、標準ジョブの動作は次のように変わります。
差分チェックカラムを指定されていない場合(全件レプリケーション)
ジョブが実行されるたびにソーステーブルの全件データを取得し、同期先に反映します。差分を検出する仕組みを持たないため、テーブルのすべてのレコードがレプリケーション対象となります。データ量が少ない場合や、テーブルの構造が単純な場合に有効です。
差分チェックカラムを指定されている場合(差分レプリケーション)
前回のジョブ実行時刻を基準に、指定した差分チェックカラムの値がその時刻以降に更新されたレコードだけを取得します。全件を転送する全件レプリケーションと比べて、ソースへのクエリ量とデータ転送量を大幅に削減できます。
差分レプリケーションを利用するには、ソーステーブルに日時型(または integer 型)の更新カラムが存在し、レコード更新時に自動で値が変わる設計になっていることが前提です。このカラムが存在しない場合や更新されない設計の場合は、差分を正しく検出できません。
取得レコードの条件による絞り込み
標準ジョブでは、クエリフィルタとして取得条件を指定することで、データソースから取得するレコードを絞り込めます。特定の条件に一致するレコードだけをレプリケーション対象にできます(例えば特定の地域や区分のデータだけを取得するなど)。
標準ジョブの制約
標準ジョブには以下の制約があります。
CDC ジョブの仕組み
CDC(Change Data Capture)とは、データソース上で発生したレコードの追加・変更・削除をリアルタイムまたは定期的に検出・追跡する技術の総称です。標準ジョブは差分チェックカラムの値を比較することで変更を検出します。一方 CDC ジョブはデータソース自身が持つ変更追跡の仕組みを直接利用する点が根本的に異なります。
CDC ジョブはデータソースのネイティブな変更追跡メカニズムを直接利用して差分を検出します。ただし、その具体的な仕組みはデータソースの種類によって異なります。大きく分けると次の 2 つの方式があります。
CDC エンジンを使う方式
DB2・DB2 for i・Informix・MySQL・Oracle・PostgreSQL などが該当します。
CDC エンジンとは、データソースのトランザクションログを継続的に監視し、発生した変更(追加・更新・削除)を検出して取り込むコンポーネントです。Oracle の LogMiner、PostgreSQL の論理レプリケーション、MySQL のバイナリログなどがその例です。
トランザクションログとは、データベースが行ったすべての変更操作を順番に記録したファイルです。データベースはこのログを使って障害時の復旧などを行います。CDC エンジンはこのトランザクションログを継続的に監視し、変更を検出します。
ステージングエリアとは、CDC エンジンが検出した変更イベントを一時的に蓄積しておく領域です。ログから検出した変更はステージングエリアへ順番に蓄積されます。CDC エンジンはほぼリアルタイムでステージングエリアに変更イベントを蓄積し続けます。ジョブが実行されると、ステージングエリアに蓄積された変更イベントを読み込み、同期先へ適用します。
ステージングエリアへの変更イベントの蓄積を防ぐため、CDC ジョブは頻繁に実行することをおすすめします。

CDC エンジンを使わない方式
SAP HANA・SAP ERP・Dynamics 365 などが該当します。各データソースが独自に提供する変更追跡の仕組みを直接利用します。たとえば SAP HANA のトリガーベース CDC、SAP ERP の変更ポインター機能、Dynamics 365 の変更追跡などがあります。CDC エンジンとステージングエリアは介在しません。データソースが提供する変更情報をジョブ実行時に直接読み取って同期先へ適用します。

削除レコードの追跡
標準ジョブの差分レプリケーションは差分チェックカラムの変化を手がかりとして変更を検出します。そのため、ソースで削除されたレコードは差分チェックカラムの値が変わらないまま消えてしまい、追跡が難しいという制約があります。一方 CDC ジョブはデータソースのトランザクションログや変更追跡メカニズムを監視するため、削除操作そのものを検出して同期先に反映できます。
CDC ジョブの対応データソース
設定方法はデータソースごとに異なります。対応データソースの詳細および各データソースでの設定手順は CData Sync - 変更データキャプチャ を参照してください。
CDC ジョブの制約
一方で CDC ジョブには以下の制約があります。
標準ジョブと CDC ジョブの違い(比較表)
比較項目 | 標準ジョブ | CDC ジョブ |
|---|
差分検出方式 | 差分チェックカラム(更新日時等)の値で比較 | データソースのネイティブな変更追跡メカニズムを直接利用 |
削除の検出 | ⚠️ 困難(全件洗い替えにより対応可能だが高コスト) | ✅ 削除されたレコードを差分として検出できる |
データソースへの負荷 | ⚠️ ソースに対してクエリを実行するため負荷がかかり、特に全件レプリケーション時は全件スキャンとなり負荷が大きい | ✅ トランザクションログや変更追跡メカニズムを使うため、ソースへのクエリ負荷が低い |
取得レコードの条件による絞り込み | ✅ 可能 | ❌ 不可 |
データソース側の事前設定 | ✅ ほとんどの場合不要 | ⚠️ 変更追跡メカニズムの有効化が必要 |
対応データソース | ✅ ほとんどのデータソースで利用可能 | ⚠️ 変更追跡メカニズムをサポートするデータソースに限定 |
どちらを選ぶべきか(ユースケース別の使い分け)
以下の判断軸を参考に、ジョブの種類を選択してください。
標準ジョブが向いているケース
削除レコードの同期先への反映が不要で手軽にデータをレプリケーションしたい
利用するデータソースが変更追跡メカニズムを持たない、または有効化できない環境
特定の条件に一致するレコードだけをデータソースから取得してレプリケーションしたい
データ量が少なく、全件レプリケーションでもデータソースの負荷やパフォーマンスを許容できる
CDC ジョブが向いているケース
まとめ
標準ジョブと CDC ジョブは、差分検出の仕組みが根本的に異なります。
データソースの種類・削除追跡の要否・ソース負荷などの観点から、最適なジョブの種類を選択してください。
CData Sync の 30 日間無償トライアルはこちらからダウンロードいただけます。ご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。