join查询关联条件中存在or导致Hive SQL运行慢
现象描述
MRS 3.2.0-LTS及之后版本,当Hive SQL中存在join语句,且join关联的条件中包含or语句时,会导致SQL任务运行缓慢,SQL示例如下:
原因分析
Hive SQL的join on条件中包含or语句,在进行join操作时会由于没有join key导致产生笛卡尔积。 该问题可以打印执行计划进行确认,例如,图2中的该类SQL join语句对应的task中无key值。
处理步骤
整改Hive SQL,可以根据实际场景使用UNION或UNION ALL语句替代or语句。
