更新时间:2026-07-09 GMT+08:00
分享

Iceberg Native核心功能

Iceberg Native加速层主要提供了三大核心功能:向量化读取加速、异步写入加速和Iceberg Native Compaction。

向量化读取加速

Native Layer 的读取加速依托于 DataFusion 的向量化执行能力。针对 Iceberg v2和v3表支持的三种删除文件类型,Native Layer已实现全面兼容,具体支持的文件类型清单请参见表1 Native Layer支持的文件类型

表1 Native Layer支持的文件类型

类型

版本

核心机制

读性能

写性能

存储开销

位置删除(Position Delete)

v2

文件路径 + 行号匹配

中等:行号匹配过滤,需遍历删除文件行号

中等:需定位行号,生成行号记录

中等:行号 + 文件路径为明文,占用一定空间

等值删除(Equality Delete)

v2

主键等值谓词匹配

较差:全表行级主键匹配,无索引时扫描开销大

优秀:仅记录主键值,无需定位行 / 文件,写入快

小:仅存储主键值,列数少、数据量小

向量删除(Deletion Vector)

v3

位图(Bitmap)位运算

优秀:位图位运算过滤,跳过行的效率极高

中等:需合并历史位图,生成新位图

极小:位图紧凑编码,按 bit 存储,空间利用率最高

Iceberg v3引入的Deletion Vector是位置删除的升级版,采用位图紧凑存储,一个删除文件专属一个数据文件(一对一),位运算过滤效率极高,空间利用率也极高。Native Layer建议用户从位置删除迁移到向量删除,以获得最佳读取性能。

异步写入加速

Native Layer的写入加速核心是利用Arrow2 AsyncWriter接口实现高性能 Parquet异步写入。写入接口支持丰富的Parquet参数配置,具体请参见表2 Arrow2写入接口Parquet参数配置

表2 Arrow2写入接口Parquet参数配置

参数

说明

典型值

row_group_size

行组大小

128MB

page_size

数据页大小

1MB

page_row_limit

页行数限制

20,000

dict_page_size

字典页大小

1MB

codec

压缩格式

zstd

dictionary_enabled

是否开启字典编码

true

bloom_filter_max_bytes

Bloom Filter 大小

可选

Iceberg Native Compaction

Compaction是Iceberg运维的核心操作,用于合并小文件、优化查询性能。整个合并过程全部在Native层执行,不涉及数据对象跨语言的所有权转移,避免了JNI边界的数据复制开销,性能提升可达1-2倍。

相关文档