【发布时间】:2019-03-01 23:09:34
【问题描述】:
我有两个表,netpack_busstop的表有100,000,000,ic_card_trade的另一个表有100,000。我的查询SQL是这样的:
SELECT
count(*)
FROM
ic_card_trade tmpic
LEFT JOIN netpack_busstop tmpnp
ON tmpic.line_no = tmpnp.line_no
AND tmpic.bus_no = tmpnp.bus_no
我在 hadoop 上运行这个工作超过 40 分钟,太长了。
我想快速处理hive sql,用更少的时间。我不知道如何通过sql来做到这一点。
【问题讨论】:
-
您是否在
line_no和bus_no列上创建了聚集索引或非聚集索引? -
我没有在 line_no 和 bus_no 列上创建聚集或非聚集索引。
-
我在 hive 中创建外表,用 hdfs 映射表
-
阅读这些关于使用 UNION ALL 解决倾斜连接的答案:stackoverflow.com/a/51061613/2700344 和这个stackoverflow.com/a/40103932/2700344