1日2万回の更新を、4時間ごとに見に行って拾いました。取れたのは69.1%です。
落ちたのは5480回ぶんの中間の状態と、974回の削除でした。削除は間隔を変えても取れません。
定期的に見に行く方式は、最後の状態しか取れません。途中の変化と、消えた行は残りません。
CDC(変更データキャプチャ)を、定期的に元の表を見に行く形で作ることがあります。何が落ちるのかを実際に数えました。
レコード5000件に対し、1日に2万回の更新が起きる場を作りました。そのうち974回は削除です。
見に行く方式は「前回より後に更新された行」を拾います。同じ区間に同じ行が複数回変われば、最後の状態だけが取れます。
レコード 5000件。1日に 20000回の更新があり、うち 974回は削除 見に行く間隔 拾えた変更 取りこぼした中間 削除の取りこぼし 拾えた割合 1分 19006件 23件 974件 95.0% 5分 18920件 115件 974件 94.6% 15分 18667件 385件 974件 93.3% 60分 17535件 1585件 974件 87.7% 240分 13827件 5480件 974件 69.1%
4時間ごとだと、拾えたのは69.1%です。中間の状態が5480回ぶん残りません。
1分ごとまで縮めても23回は落ちます。同じ分の中で2回変わった行があるためです。
右から2列目を見てください。削除の取りこぼしは974回のままで、どの間隔でも変わりません。
更新時刻を見て拾う方式では、行そのものが消えたことを知る手がかりがないからです。
出典はログから拾う方式について元の表に対して行われた挿入や削除のそれぞれが、変更表の中の1行として現れると説明しています。削除も1行として残ります。
間隔を縮めれば中間は減る。削除は減らない。
Each insert or delete operation that is applied to a source table appears as a single row within the change table.原文Microsoft Learn「What is change data capture (CDC)?」 この内容の有効期限2027-02-18
元の仕組みが持っている記録を読みます。表を見に行くのではなく、起きた操作の並びを読む形です。
CDC(変更データキャプチャ)の本来の作りは、データベースが持っている記録を読むものです。
出典もこの点を変更データキャプチャにとっての変更データの出どころは、トランザクションログであると明記しています。
前の節で落ちた2種類が、どちらもここで解決します。取りこぼしの原因が、方式そのものにあったということです。
ログから拾っても、即座に届くわけではありません。記録を読み取って書き出すまでの時間がかかります。
ただし、この遅れは取りこぼしではありません。遅れて全部届くのと、すぐ届くが一部落ちるのは別の話です。
ログを読む方式には条件があります。元のシステムがその記録を持っていて、読ませてくれることです。
外部の仕組みや、権限が絞られた相手では使えないことがあります。その場合は見に行く方式しか選べません。
The source of change data for change data capture is the SQL Server transaction log.原文Microsoft Learn「What is change data capture (CDC)?」 この内容の有効期限2027-02-18
1回の更新が1行になるとは限りません。受け取る側で差を判断できるように、前後の両方が記録されます。
CDC(変更データキャプチャ)で受け取る記録の形は、操作の種類によって違います。
出典は記録される対象を追跡している元の表に挿入・更新・削除が適用されると、それらの変更を記述する項目がログへ追加されると説明しています。
3番目が扱いを分けます。1回の更新で2行来るので、そのまま数えると件数が合いません。
前後の両方があるのは、受け取る側で何が変わったかを判断できるようにするためです。片方だけでは差が出せません。
記録は放っておくと積み上がります。保持の期間を決めて、それより古いものは消します。
期間が短すぎると、受け取る側が止まっているあいだに必要な記録が消えます。止まってよい時間の上限にもなります。
受け取ったあとの反映そのものは同期パイプラインの記事で扱っています。反映の遅れが結果にどう出るかを測っています。
取りこぼしの種類は、方式を選んだ時点で決まる。
更新は時間に対して一様に起きるという置き方です。実際には夜間の一括処理などで集中するので、その時間帯の取りこぼしはここより多くなります。削除の割合も5%として置いたものです。ここで見せているのは、見に行く方式が構造として中間と削除を落とすという関係です。
As inserts, updates, and deletes are applied to tracked source tables, entries that describe those changes are added to the log.原文Microsoft Learn「What is change data capture (CDC)?」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る