发布
社区首页 >问答首页 >AWS雅典娜查询where子句中使用的parquet文件列

AWS雅典娜查询where子句中使用的parquet文件列
EN

Stack Overflow用户
提问于 2020-07-13 06:54:25
回答 1查看 1.4K关注 0票数 1

我们计划在S3中使用雅典娜作为数据的后端服务(存储在分区中的拼花文件)。

我们感兴趣的一些事情是在查询的where子句中添加额外的列如何影响查询运行时。例如,我们在一个单元分区中有1000万条记录(基于列‘date’的分区)

下面的所有查询都返回相同的卷-1,000万。当我们在where子句中添加额外的列时(因为parquet是列fomar),所有这些查询会占用相同的时间还是会减少查询的运行?我试着测试这个,但是结果不一致,因为我想也有一些排队时间。

  1. select * from table where date='20200712'
  2. select * from table where date='20200712' and type='XXX'
  3. select * from table where date='20200712' and type='XXX' and subtype='YYY'
EN

回答 1

Stack Overflow用户

发布于 2020-07-13 08:13:28

拼花文件包含页面“索引”(最小、最大和布卢姆过滤器)。例如,如果在insert期间按有问题的列对数据进行排序,例如:

代码语言:javascript
代码运行次数:0
复制
insert overwrite table mytable partition (dt)
select col1, --some columns
       type, 
       subtype, 
       dt
 distribute by dt
       sort by type, subtype

然后,这些索引可以有效地工作,因为数据具有相同的类型,子类型将加载到相同的页面中,数据页将使用索引进行选择。参见这里的一些基准测试:https://blog.cloudera.com/speeding-up-select-queries-with-parquet-page-indexes/

开关谓词下推:https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cdh_ig_predicate_pushdown_parquet.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62870653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档