把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

Amazon S3 新增排序和 Z-Order 压缩功能,提升 Apache Iceberg 查询性能

  • 2025-07-17
    北京
  • 本文字数:1333 字

    阅读完需:约 4 分钟

大小:665.55K时长:03:47
Amazon S3新增排序和Z-Order压缩功能,提升Apache Iceberg查询性能

AWS 最近宣布 Amazon S3 支持 Apache Iceberg 表的排序和叠放顺序压缩功能。这些新功能能够有效减少数据扫描时间,降低引擎成本,适用于 S3 表和以及通过 AWS Glue 数据目录优化的传统 S3 存储桶。


排序压缩能够显著减少查询引擎扫描的数据文件数量,而叠放顺序压缩则通过高效的文件修剪,在跨多列查询时进一步提升性能。AWS 首席开发者布道师 Sébastien Stormacq 解释道

在处理高吞吐量或频繁更新的数据集时,数据湖往往会积累大量小文件,这些文件会对查询成本和性能产生负面影响。尽管默认的 binpack 策略结合托管压缩能够显著提升性能,但为 S3 和 S3 表引入排序和叠放顺序压缩功能,可以为涉及多个维度过滤的查询带来更大的性能提升。


排序压缩会按照用户定义的列顺序对文件进行组织。当表指定了排序顺序后,S3 表的压缩操作会在执行过程中通过排序将相似值聚集在一起。


Apache Iceberg 中,压缩功能可用于将小文件合并为大文件(bin packing)、将删除文件与数据文件合并、根据查询模式对数据进行排序,或通过使用空间填充曲线对数据进行聚类以优化不同的查询模式(叠放顺序排序)。


S3 表提供了托管体验,在压缩过程中会根据定义的表元数据自动进行分层排序。对于需要平等优先处理多个查询谓词的场景,可以通过维护 API 启用叠放顺序压缩。对于通用型 S3 存储桶中的 Iceberg 表,可以在 Glue 数据目录控制台配置压缩方法。Stormacq 还提到:

根据我的经验,根据数据布局和查询模式的不同,从 Binpack 切换到排序或叠放顺序压缩时,性能提升可达三倍甚至更多。


宝马的产品经理 Ruben Simon 评论道

在宝马最大的大数据分析平台上,我们使用了数千个 S3 存储桶和 Iceberg 表,通过采用叠放顺序优化,实现了显著的查询性能提升。如果再加上布隆过滤器,效果会更强大。


"S3 Managed Tables, Unmanaged Costs: The 20x Surprise with AWS S3 Tables" 这篇文章中,Onehouse.ai 的软件工程师 Vinish Reddy Pannala 和产品副总裁 Kyle Weller 对压缩的可配置选项不足提出了质疑:

在表创建大约 3 小时后,S3 表最终触发了压缩,执行了 10 次替换操作,并在 1 小时内压缩了大约 100 GB 的数据。这暴露了 S3Tables 方法的一个深层次问题,即它没有考虑到理想的压缩配置应当根据不同类型的读取器和写入器进行调整。


现有的压缩文件将保持不变,只有在启用排序或叠放顺序后写入的新数据才会受到影响,除非客户使用标准的 Iceberg 工具显式重写数据,或者通过调整表维护设置中的目标文件大小来改变这一情况。AWS 首席分析专家 Yonatan Dolan 警告

每个人都在谈论 Apache Iceberg 中的排序、叠放顺序和 binpack 压缩对查询性能带来的优化。没错,排序确实有效(前提是操作正确),叠放顺序在某些查询上可以超越 binpack。但在我的基准测试中,使用 TPC-H SF100 lineitem 数据集(约 6 亿行 / 17 GB 压缩),我发现了一个更具影响力的因素:文件在压缩前的初始大小会对成本产生巨大影响。


来源:Yonatan Dolan 的帖子


这些新的压缩功能已在支持 S3 表的所有区域推出,并适用于支持与 Glue 数据目录集成的标准 S3 存储桶。使用这些功能无需额外费用。


【声明:本文由 InfoQ 翻译,未经许可禁止转载。】


原文链接:

https://www.infoq.com/news/2025/07/amazon-s3-iceberg-compaction/

2025-07-17 13:009994

评论

发布
暂无评论
发现更多内容

速拼商城APP系统开发介绍

袋鼠云:基于Flink构建实时计算平台的总体架构和关键技术点

Apache Flink

flink

利用亚马逊云科技的 Cloudify 实施 5G 网络切片

亚马逊云科技 (Amazon Web Services)

Magician 1.1.16 is released, the handler adopts annotation configuration

Magician网络编程包

Java nio

亚马逊云科技携手 Vodafone Business 向欧洲企业推广边缘计算

亚马逊云科技 (Amazon Web Services)

捕货拼团软件系统开发详情

阿里“保姆级”教程,这份SpringBoot应用到实战手册,满满的精华

Java架构师迁哥

U评海洋软件系统开发搭建

全球对话式AI平台评估报告出炉 Gartner:百度位居领先阵营

百度大脑

人工智能 智能客服

架构训练营 - 模块二 - 作业

姑射仙人

架构训练营

便捷赔付,自在出行!亚马逊云科技助力车险业务因“云”而变

亚马逊云科技 (Amazon Web Services)

DMDOGEplus钻石狗软件系统开发需求

2021挚物· AIoT 产业领袖峰会亮点:EMQ 映云科技赋能传统工业

EMQ映云科技

物联网 AIOT 云边一体 边云协同

“低代码开发”与“传统IT开发”的区别是什么?

优秀

低代码

Python OpenCV 基于图像边缘提取的轮廓发现函数

梦想橡皮擦

7月日更

高能预警!以阿里社招前端面试为例,详讲面对面试官到面试中到面试结束

前端依依

程序员 面试 大前端 阿里 经验分享

Web UI自动化的设计和实践

GrowingIO技术专栏

云原生数据库的幕后英雄—浅谈分布式数据库的计算和存储分离

ONE红地球/ONE Network系统APP开发费用

2021年6月券商App行情刷新及交易体验评测报告

博睿数据

博睿数据 博睿指数 券商App

智能合约DAPP系统开发技术搭建

薇電13242772558

区块链 智能合约

第四周作业-知识星球加入星球的用例文档

小夏

产品经理训练营 邱岳

OD万基国际系统软件开发搭建

乐活星球系统APP开发简介

网易云信线上万人连麦技术大揭秘

网易云信

网易 视频 音频技术

模块二作业:微信朋友圈高性能复杂度架构设计

Felix

Polar Network/PN币挖矿APP系统开发搭建

IPFS矿机多少钱1T?IPFS矿机多少钱一台?

分布式存储 IPFS fil fil矿机 ipfs矿机

批量下载gitlab代码

阿呆

#GitLab

Lamda(拉姆达)表达式演化过程

叫练

jdk8 JDK1.8新特性

Magician 1.1.16 发布,handler采用注解配置

Magician网络编程包

Java 网络编程 nio

Amazon S3新增排序和Z-Order压缩功能,提升Apache Iceberg查询性能_亚马逊云科技_Renato Losio_InfoQ精选文章