首页 > 解决方案 > 为什么使用 Amazon Athena 复制 Parquet 文件大小会变小

问题描述

我有一个由 Hive 填充的 Hive 分区表,并作为 Parquet 存储在 S3 上。特定分区的数据大小为 3GB。然后我用 Athena 复制一份:

CREATE TABLE tmp_partition
AS SELECT *
FROM original_table
where hour=11

生成的数据大小不到一半 (1.4GB)。可能是什么原因?

编辑:相关配置单元表定义语句:

ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://...'
TBLPROPERTIES (
  'parquet.compress'='SNAPPY', 
  'transient_lastDdlTime'='1558011438'
)

标签: amazon-web-servicesamazon-s3hiveparquetamazon-athena

解决方案


不同的压缩设置是一种可能的解释。如果您的原始文件没有被压缩或用 Snappy 压缩,那可以解释它。如果您不指定要使用的压缩方式,Athena 将默认为 gzip,它的压缩效果比 Snappy 好。

如果您想要一个更彻底的答案,您将不得不向我们提供更多细节。你是如何创建原始文件的,它们是否被压缩,什么压缩,数据是什么样的,等等。


推荐阅读