如何提高来自Athena的s3数据的查询性能

时间:2017-03-28 11:35:40

标签: amazon-s3 hive amazon-athena

我已经以像这样的hive格式分区存储在S3中的数据。

bucket/year=2017/month=3/date=1/filename.json
bucket/year=2017/month=3/date=2/filename1.json
bucket/year=2017/month=3/date=3/filename2.json

每个分区都有大约1,000,000条记录。我为此在Athena创建了表格和分区。

现在从Athena运行查询

select count(*) from mts_data_1 where year='2017' and month='3' and date='1'

此查询需要1800秒才能扫描1,000,000条记录。

所以我的问题是如何改善此查询性能?

1 个答案:

答案 0 :(得分:1)

我认为问题是Athena必须从S3读取这么多文件。 250 MB不是那么多数据,但是1,000,000个文件是很多文件。如果减少文件数量,Athena查询性能将大大提高,压缩聚合文件将有所帮助。一天的分区需要多少个文件?即使只有一分钟的分辨率,您也需要不到1,500个文件。如果当前查询时间大约为30分钟,那么您可以轻松地开始使用。

汇总和压缩记录有很多选项: