難問・アンチパターン定義問題

Azure Synapse Analytics Dedicated SQL Poolの「HASH分散」テーブルで最もパフォーマンスが向上するシナリオはどれか?

A.数行しかないルックアップテーブル(コード・マスターテーブル)
✗ 数行のルックアップテーブルはREPLICATE分散が適切(全ノードにコピーしてJOINを高速化)。
B.毎日数百万行を追加する大規模なファクトテーブルで、JOINに使う列をHASH分散キーにする← 正解
✓ 正解。HASH分散は指定した列のハッシュ値で行を分散ノードに振り分ける。大規模ファクトテーブルで、JOINに使う列(例:顧客ID)をHASH分散キーにすることで、JOINの際に関連データが同一ノードに配置されデータ移動が最小化されパフォーマンスが最大化される。
C.1回だけデータをロードして削除するステージングテーブル
✗ ステージングテーブルは一時的なのでROUND_ROBINが適切(設定が簡単で均等分散)。
D.データが均等に分散されることが確認されていないが取り敢えず主キーをHASH分散キーにする
✗ HASHが均等に分散しない列(ホットスポットになる列)を選ぶとパフォーマンスが悪化する。スキュー(データ偏り)のない列を選ぶことが重要。

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