
こんにちは、プロダクトマネージメントチームの宮本です!
CData Sync V24.2 では、CDC モードでの初回実行時の全件レプリケーションをスキップさせることができるようになりました!これにより、既に変更データを集約しているようなテーブルへのCDC ジョブの実行だったり、他のツールなどとの組み合わせで初回移行を行うことが可能になります。
それでは使い方についてご紹介していきます。
シナリオ

MySQL → Snowflake へのレプリケーションという構成で行います。既に何かしらの手段でSnowflake に連携データが格納されており、そこに対してSync のCDC ジョブで続きの差分レコードを連携させていきます。
設定方法
ジョブ作成(既存テーブルの選択まで)
変更データキャプチャモードでジョブを作成します。

MySQL 側のテーブルを選択します。

次にSnowflake 側のテーブル作成の設定になりますが、既に別な方法でSnowflake 側には連携済みテーブルがあるというシナリオなので、そのテーブルを選択します。そのためにはタスク詳細ページの概要タブにある同期先情報を変更します。

TestTable1 というテーブルへ連携したいので選択します。

これで、MySQL の accountsample テーブルから、Snowflake のTestTable1 というテーブルにレプリケーションする設定ができました。

ただし、この設定のままでは全件レプリケーションになりますので、現在MySQL に保存されている分はレプリケーションをスキップするよう指定する必要があります。
初回連携をスキップさせる方法
それではCDC モード時に初回レプリケーションをスキップさせる方法です。レプリケートタスクの設定画面を開き、高度な設定タブを表示します。

レプリケートオプションの編集画面を開き、下記2つのパラメータを指定します。
skipsnapshot=true,replicateversion=2

これで保存したらジョブ設定が完了です。
ではジョブを実行して確認してみましょう。
ジョブ実行
MySQL側では現在レコードが格納されている状態となります。この状態でジョブを実行し、結果がゼロ件となれば初回連携のスキップが成功といえます。

それではレプリケートタスクを実行してみると、確かに実行結果がゼロ件となりました。

2回目以降は差分連携できるのか、確認のためにMySQL に1件レコードを追加してみます。

結果はちゃんと1件の連携だけが行われました。

おわりに
いかがでしたでしょうか。今回ご紹介した初回スキップ機能を用いることで、CDCジョブを運用開始するまでの選択肢の幅が広がります!CDataSync は30日間の無償トライアルが可能です。ぜひお試しくださいませ!
関連コンテンツ