翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
結合ヒント
結合ヒントは、クエリ実行の結合戦略を提案します。構文、引数、およびいくつかの例は、Apache Spark SQL リファレンス
ブロードキャスト
ブロードキャスト結合 AWS Clean Rooms を使用することをお勧めします。ヒントを含む結合側は、autoBroadcastJoinThreshold に関係なくブロードキャストされます。結合の両側にブロードキャストヒントがある場合、サイズが小さいもの (統計に基づく) がブロードキャストされます。
エイリアス: BROADCASTJOIN、MAPJOIN
パラメータ: テーブル識別子 (オプション)
例:
-- Broadcast a specific table SELECT /*+ BROADCAST(students) */ e.name, s.course FROM employees e JOIN students s ON e.id = s.id; -- Broadcast multiple tables SELECT /*+ BROADCASTJOIN(s, d) */ * FROM employees e JOIN students s ON e.id = s.id JOIN departments d ON e.dept_id = d.id;
MERGE
シャッフルソートマージ結合 AWS Clean Rooms を使用することをお勧めします。
エイリアス: SHUFFLE_MERGE、MERGEJOIN
パラメータ: テーブル識別子 (オプション)
例:
-- Use merge join for a specific table SELECT /*+ MERGE(employees) */ * FROM employees e JOIN students s ON e.id = s.id; -- Use merge join for multiple tables SELECT /*+ MERGEJOIN(e, s, d) */ * FROM employees e JOIN students s ON e.id = s.id JOIN departments d ON e.dept_id = d.id;
SHUFFLE_HASH
シャッフルハッシュ結合 AWS Clean Rooms の使用を提案します。両側にシャッフルハッシュヒントがある場合、クエリオプティマイザはビルド側として小さい側 (統計に基づく) を選択します。
パラメータ: テーブル識別子 (オプション)
例:
-- Use shuffle hash join SELECT /*+ SHUFFLE_HASH(students) */ * FROM employees e JOIN students s ON e.id = s.id;
SHUFFLE_REPLICATE_NL
ネストされたループ結合にshuffle-and-replicate AWS Clean Rooms を使用することをお勧めします。
パラメータ: テーブル識別子 (オプション)
例:
-- Use shuffle-replicate nested loop join SELECT /*+ SHUFFLE_REPLICATE_NL(students) */ * FROM employees e JOIN students s ON e.id = s.id;
Spark SQL のヒントのトラブルシューティング
次の表は、SparkSQL でヒントが適用されない一般的なシナリオを示しています。詳細については、「考慮事項と制限事項」を参照してください。
| ユースケース | クエリの例 |
|---|---|
| テーブルリファレンスが見つかりません |
|
| 結合オペレーションに参加していないテーブル |
|
| ネストされたサブクエリのテーブルリファレンス |
|
| テーブル参照の代わりに列名 |
|
| 必須パラメータのないヒント |
|
| テーブルエイリアスではなくベーステーブル名 |
|