実戦シナリオ定義問題

あるLogistics企業が「オンプレミスのデータベース(SQL Server)のテーブル変更をほぼリアルタイムでAzure Event Hubsに送信し、Azure Stream Analyticsで処理したい」という要件があります。SQL Serverの変更データをリアルタイムでEvent Hubsに送信するための最適なアプローチはどれか?

A.Azure Data Factory(スケジュール実行、5分ごとにSQL ServerをポーリングしてEvent Hubsに送信)
✗ 5分ごとのポーリングはほぼリアルタイムではなく、変更の遅延が発生する。ポーリング間隔を短くするとSQL Serverへの負荷も高くなる。
B.SQL ServerのChange Data Capture(CDC)とDebezium(またはADF CDCコネクタ)を使用してトランザクションログから変更を捕捉し、Event Hubsに送信← 正解
✓ 正解。SQL ServerのCDC(Change Data Capture)機能はトランザクションログを監視して変更されたレコード(INSERT/UPDATE/DELETE)を捕捉する。DebeziumやADF CDCコネクタを使ってその変更をEvent Hubsにほぼリアルタイムで送信できる。ポーリングより低遅延・低負荷。
C.Azure SQL Database Managed InstanceのSQL Server Agentジョブで5分ごとにクエリを実行
✗ SQL Server Agentジョブで5分ごとのクエリも可能だが、ほぼリアルタイムとは言えず変更の検出精度も低い。
D.Azure Synapse Analytics Pipelinesで定期的にSQL Serverのデータをミラーリング
✗ Synapse Pipelinesのミラーリングは定期的なバッチ同期であり、ほぼリアルタイムの変更捕捉には適さない。

DP-900:Microsoft Azure Data Fundamentals の問題一覧