Amazon web services 查询按年、月、日分区的Athena表

Amazon web services 查询按年、月、日分区的Athena表,amazon-web-services,presto,amazon-athena,Amazon Web Services,Presto,Amazon Athena,我有一个雅典娜表,按年、月、日划分,定义如下 CREATE EXTERNAL TABLE`my_TABLE`( `价格(双倍) 被( `年份'int, `整月, `日(国际) 行格式SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 以输入格式存储 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 输出格式 'org.apache.ha

我有一个雅典娜表,按年、月、日划分,定义如下

CREATE EXTERNAL TABLE`my_TABLE`(
`价格(双倍)
被(
`年份'int,
`整月,
`日(国际)
行格式SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
以输入格式存储
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
输出格式
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
我需要在日期之间查询它。例如,在我看来,这些选项是:

选择平均值(价格)
从我的桌子上
其中年份=2018,月份=1
结果:运行时间:4.89秒,扫描数据:20.72MB

选择平均值(价格)
从我的桌子上
其中cast(日期解析(concat(cast(年份为varchar(4)),“-”,
演员阵容(月份为varchar(2)),“-”,
演员阵容(第二天)
),“%Y-%m-%d”)作为日期)
日期“2018-01-01”和日期“2018-01-31”之间
结果:运行时间:8.64秒,扫描数据:20.72MB

所以,我猜雅典娜足够聪明,即使在转换连接的分区列时也可以使用分区功能,那么为什么它需要大约两倍的时间呢?后台到底发生了什么


非常感谢。

您能发送表格的定义吗?(SHOW CREATE TABLE TABLE)这或多或少是定义中最重要的部分:
CREATE EXTERNAL TABLE TABLE(price double)被(year int、month int、day int)分区行格式SERDE'org.apache.hadoop.hive.ql.io.parquet.SERDE.ParquetHiveSerDe'存储为INPUTFORMAT'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.parquet.mapredparquetoutformat'