在regexp\u like中组合like和not like以优化amazontathena中的配置单元查询

mpbci0fu  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(270)

我需要以优化的方式重写配置单元查询。我的查询的where子句是 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-tips-for-amazon-athena/ . 请参阅第9点。
有人能帮我写一个更优化的查询吗。此查询超时(超过30分钟)

erhoui1w

erhoui1w1#

我将使用一个正则表达式,并使用正/负 lookahead patterns . 理论上,这将是阅读文本数据的3倍:

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

编辑:显然你的amazon文档说明你使用的不是hive而是presto。同样的语法也适用于其他语法:

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

相关问题