変更データ キャプチャ(CDC)は、トランザクション データベース、データ ウェアハウス、SaaS アプリケーションなどのソースシステム内のデータに加えられた変更を追跡してキャプチャするために使用されるプロセスです。CDC は変更をリアルタイムで記録するため、システムを同期させ、分析を強化し、AI モデルをトレーニングし、シームレスなデータ移行をサポートできます。
データベースで発生する変更を把握することは、データの完全性を維持し、ワークフローを最適化し、リアルタイムの分析情報を引き出すために不可欠です。典型的な例は小売業です。顧客が注文すると、CDC はその販売をトランザクション データベースから発生した瞬間にキャプチャします。Google Cloud の Datastream などの CDC サービスは、オンプレミスの PostgreSQL データベースからの変更を BigQuery データ ウェアハウスにレプリケートし、分析ダッシュボードをほぼリアルタイムで強化して、夜間の遅いバッチジョブを待つ必要をなくします。
変更データ キャプチャ(CDC)は、ソースシステムからのデータの変更(挿入、更新、削除など)を特定してキャプチャするために使用されるプロセスです。多くの場合、準リアルタイムで行われます。CDC は以下で有名です。
ETL プロセスは「抽出、変換、読み込み」の略で、ソースシステムから未加工データを抽出し、必要な構造に変換してから、通常はデータ ウェアハウスである宛先システムに読み込むプロセスです。ETL は、データが整理され、クリーンな状態になり、分析やアプリケーションでのダウンストリーム使用の準備が整うようにするのに役立ちます。
従来、ETL は大規模なスケジュールされたバッチで実行され、多くの場合、夜間に行われます。つまり、ターゲット システムのデータは、最新のバッチ実行時のデータと同じ鮮度になります。
主な違いは、CDC がデータを抽出する方法です。CDC では、データセットをバッチで抽出するのではなく、変更が発生したときにキャプチャするため、定期的なバッチ処理に依存するのではなく、常に最新のデータをクエリできます。これにより、変化に迅速に対応し、より正確な分析情報を得ることができます。
変更データ キャプチャは主に、ソースシステムへの負荷を最小限に抑えるために、ソース データベースからすべての増分変更を効率的に抽出することに重点を置いたプロセスです。多くの場合、ほぼリアルタイムで抽出されます。
一方、変化が緩やかなディメンション(SCD)は、ターゲットのデータ ウェアハウスまたは分析システムに適用されるデータ モデリング手法であり、ディメンション データ(顧客レコードや商品属性など)の過去の状態を時間の経過とともに保存および管理する方法に重点を置いています。
CDC は変更の効率的なデータ転送のためのツールですが、これらの変更は通常、特定の SCD 戦略を使用して適用され、移行先システム内で完全かつ正確な履歴が維持されます。
変更データ キャプチャは、最新のデータスタックやデータクラウドを構成する多様なシステムを接続する強力なブリッジとなります。CDC ツールは、特定のデータベースに限定されることなく、さまざまなソースや宛先で動作するように設計されています。
トランザクション データベースは CDC の最も一般的なソースであり、日々のビジネス オペレーションを実行するシステムからの挿入、更新、削除をすべてキャプチャします。
多くの場合、CDC データの主な宛先となるこれらのシステムは、ビジネス インテリジェンス、分析、AI のために複数のソースから情報を統合します。
CDC を使用して、重要なビジネス プラットフォームから変更データを(多くの場合、API または webhook 経由で)プルし、組織全体で顧客、販売、サポートのデータを同期します。
ストリーミング プラットフォームとメッセージング プラットフォームは、多くの場合、リアルタイムのメッセージング バスとして機能し、ソースから変更イベントを受信して、複数のダウンストリーム コンシューマーに同時に配信します。
未加工の CDC イベントログの一般的な保存先。オブジェクト ストレージは、データレイクを構築するためのスケーラブルで費用対効果の高い基盤を提供します。
CDC は、データの継続性の確保からリアルタイム分析や AI の強化まで、幅広い重要なユースケースを実現できます。
CDC は、変更が発生したときにそれをキャプチャして伝播することで、複数のシステム(プライマリ データベースとバックアップ、またはプライマリ データベースと分析プラットフォームなど)が常に同期されるようにします。これにより、データの不一致が解消され、すべてのプラットフォームでデータの完全性が維持されます。
変更データ キャプチャは、ソース データベースのデータに対する変更を、以下を含むさまざまな方法で識別、追跡、抽出することで機能します。
データベースは、すべてのデータベースに共通するコア コンポーネントであるトランザクション ログがあるため、変更データ キャプチャの最も一般的で信頼性の高いソースです。このログは、すべての変更の不変の順序付きレコードであり、データベースのパフォーマンスに影響を与えることなく、データ変更を正確かつ効率的にキャプチャするための完璧な基盤となります。主なコンセプトについて詳しく見ていきましょう。
実際のデータベース テーブルにデータが書き込まれる前に、変更(挿入、更新、削除)がトランザクション ログに記録されます。最新の CDC ツールは、このログを利用して、非侵入的に変更をキャプチャします。これはデータベース レプリケーション技術の中核をなす部分であり、コンセプトは普遍的ですが、このログの名前は一般的なデータベースによって異なります。代表的な例:
大規模な既存のデータベースの場合、ネットワーク パフォーマンスやその他の制約により、トランザクション ログから履歴全体を読み取ることは現実的ではない可能性があります。実際の一般的なパターンは、最初に一括読み込みを実行し、次に CDC を使用して同期することです。このプロセスには以下の操作が含まれます。
この「スナップショットとキャッチアップ」方式により、宛先には履歴データが完全にシードされ、その後はすべてのライブ変更と完全に同期されます。Google Cloud の Datastream や Database Migration Service などのマネージド サービスは、このようにしてシームレスで信頼性の高いバックフィルを実行します。
このプロセスを確実に管理するために、CDC はトランザクション ログ内の一意の識別子(通常はログ シーケンス番号(LSN)と呼ばれる)に依存しています。これらの数値は、変更ストリームの正確なブックマークとして機能します。以下の点で重要です。
トランザクション ログ、初期スナップショット、ログ シーケンス番号というこれらのメカニズムが連携して機能することで、データベース CDC の効率性と信頼性が高まります。
CDC には、最新のデータ ワークフローに欠かせないいくつかの利点があります。
システム間のデータの整合性
変更が発生すると同時に同期されるため、不一致が減り、プラットフォーム全体でより正確なデータが確保されます。
効率的なデータ移動
データセット全体ではなく変更のみをキャプチャするため、システムの負荷とネットワークの使用量を大幅に削減できます。
シームレスな統合
事前構築されたコネクタのライブラリを使用してシステムを接続します。多くのプラットフォームでは、パイプラインを構成するためのノーコード インターフェースが提供されており、スキーマのドリフト検出や処理中のデータ変換などの複雑なバックエンド タスクが自動的に管理されるため、データが中断なく流れます。
業務のレジリエンス
手動操作なしでシステムとバックアップを自動的に同期し、障害復旧とレプリケーションの取り組みをサポートします。
リアルタイムの分析情報
最新のデータにほぼ瞬時にアクセスできるため、より迅速かつ情報に基づいた意思決定が可能になります。このアジリティは、データの価値が数秒で低下する金融取引、e コマース、ロジスティクスなどのペースの速い環境で、重要な優位性をもたらします。
CDC と重複または補完するテクノロジーは複数あり、データ変更の管理とリアルタイム処理の実現にさまざまなアプローチを提供しています。CDC と他の主要なアプローチの比較:
HTAP は、トランザクション(OLTP)ワークロードと分析(OLAP)ワークロードを単一のシステムに統合し、データに対する即時の分析を提供します。HTAP は自己完結型の環境で統合分析を行うのに適していますが、組織全体に存在する多様で分散されたデータソースとの同期には苦労する可能性があります。一方、CDC は複数のシステム間でデータの整合性を維持し、分散ワークフローを可能にするのに優れています。
フェデレーション クエリ(および「外部テーブル」と呼ばれる同様のアプローチ)を使用すると、データ ウェアハウスやクエリエンジンは、クエリが実行された瞬間に、トランザクション データベースなどの外部ソースシステムから直接データを読み取ることができます。このアプローチでは、データをコピーまたは移動する必要がなく、情報が保存されている場所でライブアクセスできます。
この方法は、レプリケーション パイプラインのセットアップなしで即座にアクセスできるため、アドホック分析や一時的なクエリに最適です。ただし、頻繁に使用されるクエリやパフォーマンスが重要なクエリの場合、クエリごとにソースの運用システムに直接負荷がかかるため、非効率的になる可能性があります。CDC は、最適化された分析のために変更のストリームを宛先にプロアクティブにプッシュしますが、フェデレーションはオンデマンドでデータをプルするため、高頻度のワークロードには適さない場合があります。
Kafka は、高スループットのデータ ストリーミングと処理のために設計されたオープンソース プラットフォームです。Kafka は大規模なデータフローを効率的に管理しますが、CDC を置き換えるのではなく、CDC を補完します。CDC は、データベースの正確な変更をリアルタイムでキャプチャすることに重点を置いていますが、Kafka は、ウェブサイトのクリック、IoT センサーの読み取り、ショッピング カートへのアイテムの追加など、より広範なイベントデータをストリーミングします。これらのテクノロジーを組み合わせることで、リアルタイム ワークフローのための強力な組み合わせが実現します。
CDC はノーコード アプローチを使用してデータを複製しますが、アプリケーション レイヤで接続する統合テクノロジーは、ローコード アプローチを使用してシステムと SaaS プラットフォームを接続します。プラットフォーム間を移動する際にデータを変換する機能が必要な場合は、Google Cloud の Application Integration などのアプリケーション レベルの統合プロダクトが適しています。
Datastream は、Google Cloud の信頼性が高く、使いやすいサーバーレスの変更データ キャプチャ(CDC)およびレプリケーション サービスです。さまざまなデータベースやアプリケーション間でデータを同期しながら、レイテンシを最小限に抑えます。使い始める際に役立つ情報をご紹介します