查询并行度(#virtual segment)决定规则
依据:磐维OLAP用户手册 · 查询优化章节(手册页30-31)
查询的表集合
▼
含 UDF / 外部表 ?
#vseg = max_nvseg_perquery / max_nvseg_perquery_perseg(及外部表 ON/location 数)
只含 Hash 分布表 ?
bucket 相同 N
→ N 个 vseg
→ N 个 vseg
bucket 不同
→ 最大 bucket 个 vseg
→ 最大 bucket 个 vseg
Hash + Random 混合 ?
random 总大小 ≤ hash×1.5
→ 用 hash 的 bucket 数
→ 用 hash 的 bucket 数
否则 → hash 表当 random 处理(按表大小)
只含 Random 分布表 ?
#vseg 按表大小(1 HDFS block ≈128M → 1 vseg),受 max_nvseg_perquery / max_nvseg_perquery_perseg 限制
查询结果是 hash 分布的表 ?
#vseg = 该结果表 bucket 数(强制)
浙公网安备 33010602011771号