我需要查询大量联接的结果。当前,列数应导致大约30个连接产生约339列和10亿行。但是,此查询在Beeline CLI中引发了我的Stackoverflow异常。我目前为Hive堆大小设置了10G。
Error: Error running query: java.lang.StackOverflowError
(state=,code=0)
到目前为止,我已经改变了
hive.fetch.task.conversion = none
和
hive.auto.convert.join = false
基于我在网上找到的建议,但并不高兴。
每当我减少行数或连接数时,我都不会收到此错误。但是即使只有10.000行,也再次引发错误。
我的查询与此类似
select * from schema1.view_1
JOIN `schema1`.`table1` ON (`view1`.`column1` = `table1`.`column1`)
JOIN `schema1`.`table2` ON (`view1`.`column2` = `table2`.`column2`)
JOIN `schema1`.`table3` ON (`view1`.`column3` = `table3`.`column3`)
...
JOIN `schema2`.`table4` ON (`view1`.`column1` = `table4`.`column1`)
JOIN `schema2`.`table5` ON (`view1`.`column2` = `table5`.`column2`)
JOIN `schema2`.`table6` ON (`view1`.`column3` = `table6`.`column3`)
我希望Tableau可以使用此查询来创建提取并发布它。我知道Tableau可以像我之前所做的那样处理数据量。知道我是否可以在Beeline上运行此查询,我很高兴。有什么建议吗?