HeadlinesBriefing favicon HeadlinesBriefing.com

Apache Iceberg 压缩:1000 文件到 6,查询影响

Towards Data Science •
×

当处理存储在 Apache Iceberg 等表格式中的大型分析数据集时,存在一个已知问题,称为小文件问题。当数据被写入大量小文件而不是数量较少且大小合理的文件时,就会发生这种情况。这会增加元数据开销,并可能减慢查询规划和执行速度。为了解决这个问题,使用了一种称为压缩的过程,它将所有较小的文件合并为少量较大的文件。

我专注于 Apache Iceberg,因为它正迅速成为大规模分析数据的领先开放表格式之一。重要的是,尽管 Iceberg 支持压缩,但它不会自动为我们执行。Iceberg 提供了 rewrite_data_files 过程,但我们作为系统管理员仍然必须执行该过程。

我们将创建一个包含 5000 万 行、分布在 1000 个小文件中的 Iceberg 表。这些文件将保持不动,直到我们发出压缩命令。我们将在重写前后测量三个 SQL 工作负载。一切都在本地运行;您不需要云账户、Docker、Hadoop 集群或付费服务。