こんにちは、プロダクトマネージメントチームの宮本です!
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日間の無償トライアルが可能です。ぜひお試しくださいませ!
関連コンテンツ