s3分区上的Hive查询太慢了

时间:2018-04-10 03:21:19

标签: amazon-web-services amazon-s3 hive amazon-emr

我按日期对数据进行了分区,这是它在s3中的存储方式。

s3://dataset/date=2018-04-01
s3://dataset/date=2018-04-02
s3://dataset/date=2018-04-03
s3://dataset/date=2018-04-04
...

在此基础上创建了hive外部表。我正在执行此查询,

select count(*) from dataset where `date` ='2018-04-02' 

这个分区有两个这样的拼花文件,

part1 -xxxx- .snappy.parquet
part2 -xxxx- .snappy.parquet

每个文件大小为297MB.,因此不是一个大文件,也不是很多要扫描的文件。

查询返回12201724条记录。然而,返回此需要3.5分钟,因为一个分区本身需要这个时间,即使对整个数据集(7年)的数据进行计数查询也需要数小时才能返回结果。无论如何,我可以加快这个吗?

1 个答案:

答案 0 :(得分:0)

亚马逊雅典娜实际上是托管的Presto服务。它可以查询存储在Amazon S3中的数据,而无需运行任何集群。

根据从磁盘读取的数据量收费,因此在使用分区和镶木地板文件时它会非常有效地运行。

请参阅:Analyzing Data in S3 using Amazon Athena | AWS Big Data Blog