私はいくつかのアプリに取り組み、データウェアハウジングのいくつかの詳細に問題を抱えている他の開発者と話をしました。
私が見た主な問題は、運用データストアの変更データ検出(CDC)に関するものです。 更新とハード削除は、運用データストアで検出するのが難しい場合があります。
更新は、updated_at列を現在のタイムスタンプで自動的に更新するトリガーをすべてのテーブルに挿入することで処理できます。ただし、削除はより困難です。1つの解決策は、削除されたID、テーブル、およびタイムスタンプで監査テーブルを更新するトリガーを設定することです。
トリガーを使用することは、変更データの検出を行うための最も合理的な方法のようですが、私が見たもう1つのオプションは、データベーストランザクションログファイルを解析することです。ただし、運用データストアデータベースの更新が難しくなる可能性があります。
私の質問は、人々は通常この問題をどのように処理するのかということです。私はかなりの調査を行いましたが、データウェアハウジングを行っている多くの企業が、独自の次善のソリューションを展開しているようです。
CDCに関連する問題を回避するために私が見た別の解決策は、データウェアハウス全体(またはソースデータに関連する部分)を時々再構築することです。これにより、すべてのデータが最新であり、バグがないことが保証されます。運用データストアでCDCを実行するコード内。