<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/jp/ui/ContentDefault.master" Inherits="BasePage" Title="" %> <%@ Register Assembly="RSSBus.Engine" Namespace="RSSBus" TagPrefix="cc1" %> CData Sync で差分更新を設定
 

CData Sync で差分更新を設定

この記事では、CData Sync で差分更新を設定する方法をご紹介します。

公開日: 1/13/2022    最終更新日: 1/23/2022


REPLICATE クエリを使用する際、Sync はテーブル全体ではなく、できる限り最近変更されたレコードだけを取得しようとします。多くのデータソースでは、この設定はデフォルトです。設定は、クエリをクリックしてタスク設定からチェックできます。

Sync の差分更新に関する動作は、データソースのテーブルが持つ、通常DATETIME 型やINTEGER 型で作られる、行が最後に更新された日時を表すカラムに依存します。汎用のデータベースソースのようないくつかのコネクタでは、手動でカラムを指定する必要があります。この設定は、IncrementalCheckColumns のジョブオプションを使用してジョブまたはテーブルレベルで指定できます。

オプション1:ジョブレベル

ご利用のテーブルが使用したいチェックカラムと同名のカラム名を使用している場合、各テーブルでの設定は必要なく、ジョブレベルで一度チェックカラムを設定すれば済みます。カンマ区切りリストで複数のカラムを指定すれば、Sync は最初に使用可能なカラムをチェックカラムとして使用します。高度なジョブ設定にある追加の設定項目に、以下を追加します。

IncrementalCheckColumns='updated,modified,changedAt'

オプション2:テーブルレベル

次のような構文を使うことで、クエリ内でチェックカラムを指定できます。

REPLICATE [table] WITH IncrementalCheckColumns = 'updated'

クエリをクリックするとタスクの設定が表示され、多くのデータベースの場合は「差分チェックカラム」の隣にドロップダウンがあり、UI 上でカラムを選択できます。カラムを選択すると、上部に自動でクエリが記述されます。

Source テーブルの良いIncrementalCheckColumns カラムは、次の条件を満たします。

  1. Source テーブルに行が追加されたとき、このカラム値が現在のDATETIME に設定される。
  2. Source テーブルの行が変更されたとき、このカラムの値が現在のDATETIME に更新される。
  3. Source テーブルをクエリする際、このカラムはSource テーブルに渡すための適切なフィルタとなる。

SQL Server Source の例

テーブルの定義

デフォルトでは、各ジョブ実行時にすべての行が取得されます。

IncrementalCheckColumns プロパティを設定します。

Source テーブル内のいくつかのレコードを更新します。

UPDATE IncrementalTable SET job_title='Software Engineer', modified=CURRENT_TIMESTAMP WHERE id=0 UPDATE IncrementalTable SET job_title='CEO', modified=CURRENT_TIMESTAMP WHERE id=5

これで、以後ジョブ実行時には以前のジョブ実行後に更新されたレコードのみが、取得されます。


本記事に関するご意見、ご質問は弊社サポートチーム support@cdata.co.jp までご連絡ください。