压缩管理 - AWS Glue

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

压缩管理

使用 Apache Iceberg 等开放表格式的 Amazon S3 数据湖会将数据存储为 S3 对象。如果数据湖表中包含成千上万个 Amazon S3 小对象,则会增加元数据开销并影响读取性能。AWS Glue Data Catalog 为 Iceberg 表提供了托管式压缩功能,可将小对象压缩成较大的对象,以便提高 Amazon Athena 和 Amazon EMR 等 AWS 分析服务以及 AWS Glue ETL 作业的读取性能。Data Catalog 会在不干扰并发查询的情况下执行压缩,并且仅支持 Parquet 格式表的压缩。

表优化器会持续监控表分区,并在超过文件数量和文件大小阈值时启动压缩进程。如果 write.target-file-size-bytes 属性中指定的文件大小在 128 MB 到 512 MB 的范围内,则 Iceberg 表符合压缩条件。在 Data Catalog 中,如果表中有超过五个文件,每个文件都小于 write.target-file-size-bytes 属性的 75%,则会开始压缩过程。

例如,在 write.target-file-size-bytes 属性中,表的文件大小阈值设置为 512 MB(在 128 MB 到 512 MB 的规定范围内),该表包含 10 个文件。如果这 10 个文件中有 6 个文件,每个文件均小于 384 MB(0.75*512),则 Data Catalog 会触发压缩。

有关支持的数据类型、压缩格式和限制,请参阅托管式数据压缩的支持的格式和限制