Azureリレーショナル応用

ある e-コマース企業がAzure SQL Databaseで注文データを管理しており、「毎月末に月間売上報告書を生成するバッチ処理」を実行しています。バッチ処理中にOLTP取引が遅延し、顧客体験が悪化しています。リソース競合を緩和し、バッチと取引の分離を図るために、最適なアーキテクチャはどれですか?

A.バッチ用に別のAzure SQL Databaseを作成し、レプリケーション機能で月初に同期
✗ 別データベース作成では同期後のデータ差分が発生し、報告書の正確性が損なわれる可能性があります。
B.読み取り専用レプリカ(Hyperscale)上でバッチを実行し、OLTP用データベースへの影響を最小化する← 正解
✓ 正解です。読み取り専用レプリカでバッチを実行すれば、OLTP用プライマリへの負荷が遮断されます。
C.バッチ処理を夜間に移動し、実行時刻を変更する
✗ 夜間移動は時刻の問題解決に過ぎず、リソース競合の根本的な解決にはなりません。
D.クエリのタイムアウト設定を延長し、バッチの実行時間を確保する
✗ タイムアウト延長はバッチ長期化を許容するだけで、OLTP遅延の改善にはつながりません。

この問題のポイント

読み取り専用レプリカでバッチを実行すれば、OLTP用プライマリへの負荷が遮断されます。

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