问题描述
我们在雅典娜中有一个视图,该视图在processing_date上已分区(数据类型:字符串-格式20201231) 我们正在寻找2020年的数据。
为了探索,我们需要所有列。
查询:
select * from online_events_dw_view
where from_iso8601_date(processing_date) > from_iso8601_date('20191231')
错误:
Query exhausted resources at this scale factor
有没有更好的方法来优化查询
解决方法
您正在对分区列应用函数,这很可能导致雅典娜扫描所有数据,因此您遇到了问题。
为什么不简单:processing_date like '2020%'
如果您只对列感兴趣,也许还可以尝试使用limit 1000
来限制数据量。
对具有很多列的结果集进行排序时,通常会导致错误“以此比例因子查询耗尽的资源”。
由于您没有发布视图SQL,因此无法确定是否是您的问题,但是几乎总是存在宽行和排序,因此我假设您的计算机中有ORDER BY
视图。尝试将其删除,然后查看查询是否正确执行。
有没有更好的方法来优化查询
您需要发布更多信息,以便我们为您提供帮助。没有视图的SQL,就什么都说不了。还要为所有涉及的表发布SQL,并提供有关分区,数据量,文件格式等的一些上下文。