今日のビジネス、特にデジタル変革を優先する企業は、リアルタイム データを緊急に必要としています。従来の毎週および毎月のバッチ処理では、需要を満たすことができなくなりました。ただし、複数のソースからリアルタイム データを取得し、それを使用してプロセスを自動化し、意思決定を動的に最適化することは簡単ではありません。
最近、お客様のレガシー システムを再構築し、モノリシック アーキテクチャをマイクロサービスに分割する際に課題に直面しました。私たちはデータベースに変更を加え、モジュールごとにシステムを最新化することに着手しました。この段階では、異なるモジュールが同じデータを必要とする可能性があるため、両方のデータベースが同期していることを確認する必要があります。つまり、古いシステムは新しいデータベースで新しいシステムによって生成されたデータを必要とし、その逆も同様です。
私たちは、Change Data Capture (CDC) テクノロジーを調査して、それがニーズに合うかどうかを判断しました。この記事では、CDC の定義、テストしたツール、その仕組みとその利点について詳しく説明します。同時に、他の技術者が特定の状況で適切な CDC ツールを選択できるようにするために、いくつかの事例と提案を共有しました。
データ キャプチャとは、ソース システムの変更を検出してキャプチャし、これらの変更をほぼリアルタイムでターゲット システムに配信するプロセスを指します。これらの変更には、挿入、削除、更新操作、およびデータベース構造に対する DDL 変更が含まれる場合があります。
CDC ツールは、ソース システムのデータ変更を監視することによって機能を実装します。変更が検出されると、CDC ツールは変更をキャプチャし、データベースやログ ファイルなどの指定された場所に記録します。処理および変換されたデータは、データ ウェアハウスや分析プラットフォームなどのターゲット システムにロードされます。
データベースの変更をキャプチャする方法はたくさんあります。そのうちのいくつかを見てみましょう:
この方法では、ソース内の CREATED_AT、LAST_UPDATED、または DATE_MODIFIED に類似した監査列をいくつか維持し、ソース内のデータをクエリしてデータ変更をキャプチャすることで、これらの列の変更を検出します。この方法では削除操作が記録されないことに注意してください。
トリガーは、特定のイベントに基づいて操作を実行するデータベース内の関数です。削除操作などの変更をキャプチャするのには便利ですが、各イベントで複数の書き込みが必要になるため、データベースのパフォーマンスが低下します。
データベースには、クラッシュ時の回復用のトランザクション ログが含まれており、すべてのイベントが保存されます。ログベースの CDC を使用すると、新しいデータベース トランザクションがネイティブ ログから直接読み取られるため、ソース テーブルをスキャンせずに変更をキャプチャできるため、より効率的になります。
このアプローチは、イベント駆動型アーキテクチャにおけるイベント ソーシングに似ており、システムの状態が変化するたびに、それをイベントとして記録します。記録されたイベントは、いつでも同じ順序で再生してシステム状態を再構築できます。
CDC は、状況、アプリケーション、アーキテクチャ、ビジネス ニーズに応じて、多くのシナリオで重要です。 CDC がエンジニアリング プロセスを支援する方法の一部を以下に示します:
市場には、Oracle Golden Gate、Debezium、IBM Infosphere、Striim、StreamSets、Qlik Replicate など、いくつかの CDC ツールがあります。これらのツールはオープンソースまたは有料の場合があります。通常、オンプレミス環境とクラウド環境をサポートし、さまざまなデータ ソースを処理できます。選択するときは、次の点を考慮してください:
ビジネスがテクノロジー主導になるにつれて、過去および現在のデータが重要な差別化要因になります。正確、タイムリー、効率的かつコスト効率の高い変更データのキャプチャを実現することは、テクノロジー変革の取り組みにおいて重要な部分となります。このような状況に直面したとき、この記事があなたのお役に立てれば幸いです。
以上が変更データ キャプチャ: 概要、理由、ベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。