無限ノック › DEA 練習問題一覧 › 問題
DEAデータストアの管理

ある小売企業のデータエンジニアリングチームは、Amazon Redshiftで次の2つのテーブルを管理しています。 ・sales_fact テーブル(20億行): 売上トランザクションを格納 ・products テーブル(50万行): 商品マスターデータ 多くの分析クエリは product_id でJOINし、sale_date による範囲フィルタリングを行います。現在これらのクエリが非常に遅い状態です。最もパフォーマンスを向上させるテーブル設計はどれですか?

A
sales_fact: DISTSTYLE KEY (product_id)、SORTKEY (sale_date)、products: DISTSTYLE ALL
✓ 正解
sales_factをproduct_idでKEY分散させることで、JOINキーが同じスライスに配置されデータ移動が最小化されます。またSORTKEY (sale_date)を設定することでゾーンマップが活用され、日付範囲フィルタリングのスキャン量が大幅に削減されます。小さなdimensionテーブル(products)にDISTSTYLE ALLを設定するとすべてのノードに複製され、JOINのデータ移動がゼロになります。
B
sales_fact: DISTSTYLE EVEN、SORTKEY (product_id)、products: DISTSTYLE KEY (product_id)
DISTSTYLE EVENはデータを均等分散しますが、JOINキーが異なるノードに分散するためコロケーションの恩恵が得られず、クエリ実行時にネットワーク再分散コストが発生します。
C
sales_fact: DISTSTYLE ALL、SORTKEY (sale_date)、products: DISTSTYLE EVEN
DISTSTYLE ALLを20億行の大きなfactテーブルに適用すると、全ノードへのデータ複製でストレージコストが膨大になり現実的ではありません。
D
両テーブル: DISTSTYLE AUTO、SORTKEY (sale_date)
DISTSTYLE AUTOは有効な選択肢ですが、最適なアクセスパターンが既知の場合は明示的な設定の方がより確実にパフォーマンスを向上させられます。

解説

sales_factをproduct_idでKEY分散させることで、JOINキーが同じスライスに配置されデータ移動が最小化されます。またSORTKEY (sale_date)を設定することでゾーンマップが活用され、日付範囲フィルタリングのスキャン量が大幅に削減されます。小さなdimensionテーブル(products)にDISTSTYLE ALLを設定するとすべてのノードに複製され、JOINのデータ移動がゼロになります。 選択肢BのDISTSTYLE EVENはデータを均等分散しますが、JOINキーが異なるノードに分散するためコロケーションの恩恵が得られず、クエリ実行時にネットワーク再分散コストが発生します。 選択肢CのDISTSTYLE ALLを20億行の大きなfactテーブルに適用すると、全ノードへのデータ複製でストレージコストが膨大になり現実的ではありません。 選択肢DのDISTSTYLE AUTOは有効な選択肢ですが、最適なアクセスパターンが既知の場合は明示的な設定の方がより確実にパフォーマンスを向上させられます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DEA の問題一覧に戻る