返回
RSS Apache Iceberg Blog AI 逐段翻译 发布 2026-09-03 08:00 收录于 09-16

Apache Iceberg Python 0.12.0 发布

DataHot 速览

Apache Iceberg 社区发布 Apache Iceberg Python 0.12.0,覆盖 2026 年 2 月初至 8 月底的开发,合并 58 位贡献者的 470 多个 PR,其中 40 多位是首次贡献者。该版本新增 REST Catalog 的 Iceberg 视图支持,可通过 View 对象创建、加载、列出、注册和删除视图。写入侧加入并发提交重试与冲突校验,并新增 incremental_append_scan 增量追加扫描。还支持 v3 geometry/geography 类型、开始用 File Format Writer API 处理 Parquet,以及 REST loadCredentials 等改进。

为什么值得关注:Iceberg 是湖仓表格式核心项目,Python 客户端此次补齐视图、并发写入重试、增量扫描和凭证加载等能力,直接影响数据平台接入与生产可靠性。

本文目录 13 节
  1. 版本亮点🔗
  2. REST Catalog 视图支持🔗
  3. 提交重试与并发验证🔗
  4. 增量追加扫描🔗
  5. Geometry 和 Geography 类型🔗
  6. 文件格式写入器 API🔗
  7. Catalog 和 REST 改进🔗
  8. CLI🔗
  9. 缺陷修复🔗
  10. 破坏性变更🔗
  11. 基础设施改进🔗
  12. 贡献者🔗
  13. 参与其中🔗

译文

AI 逐段翻译

Apache Iceberg 社区很高兴地宣布 Apache Iceberg Python 0.12.0 版本发布。

0.12.0 版本涵盖了从 2026 年 2 月初到 8 月末的开发工作,是合并了来自 58 位贡献者的超过 470 个拉取请求 的成果,其中包括 40 多位首次贡献者。

这些说明涵盖了重点内容。完整列表请参阅 变更日志

版本亮点🔗

REST Catalog 视图支持🔗

此版本增加了对 Iceberg 视图的读取支持。视图可以通过 REST catalog 创建、加载、列出、注册和删除,并通过 View 对象对外暴露。

view=catalog.create_view(identifier=("default","recent_orders"),schema=schema,view_version=view_version,)view=catalog.load_view("default.recent_orders")view.sql_for("spark")

对于支持视图端点但在 ConfigResponse 中未声明它们的较旧 REST 服务器,请设置 view-endpoints-supported catalog 属性。

提交重试与并发验证🔗

写入操作现在会在并发提交时 重试并验证冲突。当 catalog 提交因 CommitFailedException 失败时,Transaction.commit_transaction() 会刷新表、检查冲突并重试提交。

增量追加扫描🔗

Table.incremental_append_scan()#3512)读取在某个快照范围内由追加快照添加的行,并映射到表的当前 schema 上。

scan=table.incremental_append_scan(from_snapshot_id_exclusive=last_processed_snapshot_id,to_snapshot_id_inclusive=table.current_snapshot().snapshot_id,)new_rows=scan.to_arrow()

Geometry 和 Geography 类型🔗

v3 geometrygeography 原始类型现在已得到支持:schema 解析和序列化、通过 WKB 字节的 Avro 映射,以及 PyArrow/Parquet 集成。

文件格式写入器 API🔗

PyIceberg 已开始使用 文件格式 API 来处理 Parquet 文件。

Catalog 和 REST 改进🔗

CLI🔗

缺陷修复🔗

此版本中值得注意的正确性修复:

破坏性变更🔗

基础设施改进🔗

贡献者🔗

$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn pyiceberg-0.11.0..pyiceberg-0.12.0
    44  Kevin Liu
    36  Yuya Ebihara
    12  Anas Khan
    11  Alex Stephen
     7  geruh
     5  Minh Vu
     5  Neelesh Salian
     4  Gabriel Igliozzi
     3  Fokko Driesprong
     3  GayathriSrividya
     3  Junwang Zhao
     3  Sotaro Hikita
     3  jj.lee
     3  vishnu prakash
     2  Aaron Niskode-Dossett
     2  ChangHyeon Im
     2  David
     2  David Dallakyan
     2  Jared Yu (余启正)
     2  Mrutunjay Kinagi
     2  Paul Mathew
     2  Sreesh Maheshwar
     2  Tanmay Rauth
     2  Yingjian Wu
     1  Adam
     1  Antonio
     1  Ben Lai
     1  BharatDeva
     1  CalebWeisgerber
     1  Chris Qiu
     1  David Zhao
     1  Federico
     1  James Bornholt
     1  Jared Yu
     1  Koen Denecker
     1  Kristofer Gaudel
     1  Marcin Szymański
     1  Ménélik Vero
     1  Noritaka Sekiyama
     1  Platon G. Gimp
     1  Pucheng Yang
     1  R. Conner Howell
     1  Rob Reeves
     1  Ruiyang Wang
     1  Sam Verhasselt
     1  Sidra
     1  Sumanth
     1  Sung Yun
     1  Thomas Pfeiffer
     1  Vova Kot
     1  Yong Zheng
     1  abnobdoss
     1  achasnovskiy
     1  antonlin1
     1  barking-code
     1  committobetter
     1  rcjverhoef
     1  shiwk
     1  spr0els

我们感谢所有贡献者为促成此版本所做的努力!

参与其中🔗

PyIceberg 项目欢迎贡献!我们使用 GitHub issues 来跟踪工作,并使用 Apache Iceberg 社区 Slack 进行讨论。

最简单的入门方式是:

  1. 在您的工作负载中试用 PyIceberg 并报告您遇到的任何问题
  2. 阅读 贡献者指南
  3. 寻找 适合新手的问题

代码审查也是非常受欢迎的贡献——请在您觉得合适的拉取请求上提供反馈!

了解更多信息,请访问 PyIceberg 仓库文档

这篇内容对你有用吗?

反馈只用于改善内容筛选,不等同于收藏

分享这条资讯
分享海报
保存图片
iOS 也可以长按图片保存