【问题标题】:combine like and not like in regexp_like for optimizing hive query in Amazon Athena在 regexp_like 中组合 like 和 not like 以优化 Amazon Athena 中的配置单元查询
【发布时间】:2018-07-24 14:08:26
【问题描述】:

我需要以优化的方式重写配置单元查询。我的查询的 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%'

雅典娜文档说我们可以优化配置单元查询https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/。请参考第 9 点。

谁能帮我写一个更优化的查询。此查询超时(超过 30 分钟)

【问题讨论】:

    标签: hive amazon-athena


    【解决方案1】:

    我会选择一个正则表达式并使用正/负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)')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 2021-05-03
      • 2015-08-23
      • 2010-09-20
      相关资源
      最近更新 更多