腾讯云数据仓库 TCHouse-X Hints

提示(Hints)为用户提供了一种建议 Spark SQL 使用特定方法生成执行计划的方式。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

一、语法

/*+ hint [ , … ] */

二、分区提示类型

子句/关键字 说明
COALESCE 减少分区数量
REPARTITION 使用指定表达式重新分区
REPARTITION_BY_RANGE 使用范围分区
REBALANCE 重新平衡输出分区大小

三、JOIN 提示类型

子句/关键字 说明
BROADCAST/BROADCASTJOIN/MAPJOIN 建议使用广播 JOIN
MERGE/SHUFFLE_MERGE/MERGEJOIN 建议使用排序合并 JOIN
SHUFFLE_HASH 建议使用 Shuffle Hash JOIN
SHUFFLE_REPLICATE_NL 建议使用 Shuffle-and-Replicate 嵌套循环 JOIN

四、示例

— 创建测试表CREATE EXTERNAL TABLE hint_t1 (key INT, val STRING) USING PARQUET LOCATION 'cosn://<your_cos_bucket>/test_hints/hint_t1';CREATE EXTERNAL TABLE hint_t2 (key INT, val STRING) USING PARQUET LOCATION 'cosn://<your_cos_bucket>/test_hints/hint_t2';INSERT INTO hint_t1 VALUES (1,'a'),(2,'b');INSERT INTO hint_t2 VALUES (1,'x'),(3,'y');– 分区合并 COALESCESELECT /*+ COALESCE(1) */ * FROM hint_t1;– 强制重分区(必触发 shuffle)SELECT /*+ REPARTITION(2) */ * FROM hint_t1;– 强制广播 JoinSELECT /*+ BROADCAST(hint_t1) */ * FROM hint_t1 INNER JOIN hint_t2 ON hint_t1.key = hint_t2.key;– 强制 Sort Merge JoinSELECT /*+ SHUFFLE_MERGE(hint_t1) */ * FROM hint_t1 INNER JOIN hint_t2 ON hint_t1.key = hint_t2.key;– 强制 Shuffle Hash JoinSELECT /*+ SHUFFLE_HASH(hint_t1) */ * FROM hint_t1 INNER JOIN hint_t2 ON hint_t1.key = hint_t2.key;

赞 (0)
上一篇 4天前
下一篇 4天前