AWS Athena查询挂起并重新读取大量查询大小的数据

问题描述 投票:0回答:1

我在Athena中设置了一个新的日志表,如下图所示,其中Athena位于BucketName/的顶部

我有一个运行良好的Athena系统,基于相同的数据,但没有下面列出的子目录结构。现在有了这个新的子目录结构,我可以看到数据在我执行select * from table_name limit 100时正确显示但是当我执行类似count(x) by week的查询时,查询会挂起。

S3中的数据在GZipped文件夹中不超过100GB,但查询挂起超过20分钟并且说6.5TB扫描,这听起来像是循环并扫描相同的数据。我的猜测是它与这个目录结构有关,但是从我在其他线程中看到的是Athena应该能够通过指向基础文件夹BucketName/来解析子目录

BucketName | | |---Year(2016) | | | |---Month(11) | | | | | |---Daily File Format YYYY-MM-DD-Data000.gz

任何意见,将不胜感激!

创建表DDL

CREATE EXTERNAL TABLEtest_table( foo1string, foo2string, foo3string, datestring, ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' MAP KEYS TERMINATED BY '\u0003' WITH SERDEPROPERTIES ( 'collection.delim'='\u0002') STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://Listen_Data/2018/01' TBLPROPERTIES ( 'has_encrypted_data'='false', )

amazon-web-services amazon-athena
1个回答
0
投票

通过添加修复

PARTITIONED BY ( `year` string, `month` string)

在DDL语句中的模式定义之后。

© www.soinside.com 2019 - 2024. All rights reserved.