在Regexp_like中结合使用,以优化亚马逊雅典娜的Hive查询



我需要以优化的方式重写Hive查询。我的查询条款是

WHERE counters is NOT null AND info LIKE '%sub-page-type=ext-rlol_%' AND info LIKE '%page-type=Faceout%' AND info NOT LIKE '%page-type=FaceoutRAW%'

雅典娜医生说,我们可以优化Hive查询https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tuning-tuning-tuning-tips-for-amazon-azon-athena/。请参阅第9点。

有人可以帮助我编写更优化的查询。此查询正在计时(超过30分钟(

我会选择一个正则表达式,并使用正/负lookahead patterns。从理论上讲,这将读取文本数据的3倍:

WHERE 
counters is NOT null
AND info RLIKE 
'(?=.*sub-page-type=ext-rlol_)(?=.*page-type=Faceout)(?!.*page-type=FaceoutRAW)'

编辑:显然,您的亚马逊文档指出您不使用Hive,而是使用Presto。然后在其他语法时使用同样的应用:

WHERE 
counters is NOT null
AND  regexp_like (info,
'(?=.*sub-page-type=ext-rlol_)(?=.*page-type=Faceout)(?!.*page-type=FaceoutRAW)')

最新更新