💬 讨论 (10)
2 条回复 · 2 位参与者
讨论主要围绕在 iceberg-rust 中实现 RowDelta 提交和多表事务两项功能展开,作者提交了草稿 PR 以支持 Postgres 到 Iceberg 的 CDC 管道。Andrei 基于 iceberg-go 的开发经验提供了深入的代码审查和潜在陷阱提醒,Steve 随后采纳了部分建议并更新了代码。
@Steve (st...): 提交了 RowDeltaAction 和多表事务两个 PR,旨在填补 Rust 实现中写入/提交端的空白,并支持原子性地向多表提交行增量。
@Andrei Tserakhau: 指出序列号规则是正确性的核心,需确保相等删除仅应用于序列号更小的数据文件;同时警告仅测试位置删除可能会掩盖相等删除读取未实现的隐患。
@Steve (st...): 已根据反馈更新代码,包括修复操作类型选择逻辑、增加对无效相等键的校验,并明确了事务状态未知时的处理逻辑。
Steve 已根据反馈更新了 PR 代码,双方确认了序列号规则已正确实现。下一步 Steve 将参考 Andrei 在 Go 端的实现,重点跟进分区范围的冲突检测和压缩后孤立删除文件的清理逻辑。
1 条回复 · 2 位参与者
讨论旨在为 Iceberg 引入一等公民向量类型,以支持 AI/ML 场景中固定维度的向量嵌入,并配合 Parquet 社区的相关进展。提案建议采用固定维度、数值坐标的密集向量类型(如 float[768]),并明确了与底层文件格式的映射及模式演进方向。
@Yan Yan: 建议新增向量类型以解决现有 list 无法约束维度不变量的问题,首选方案是固定维度、元素非空的密集数值向量。
@Tanmay Rauth: 赞同保持初始类型范围最小化,建议明确 Parquet 映射规则,包括字段 ID 仅置于外层组、指标统计需符合向量语义而非元素级语义。
@Tanmay Rauth: 指出对于不支持向量的历史文件格式(如 Avro/ORC),新增向量列不应导致旧文件失效,但新写入必须使用支持的 Parquet 表示。
社区对引入向量类型的提案方向表示认可,后续将围绕提案文档中的 Parquet 字段 ID 映射规则、指标统计策略及文件格式兼容性细节进一步完善设计。
1 条回复 · 2 位参与者
社区讨论了在 Iceberg 官方博客中增加技术类文章的计划,Matt Butrovich 提交了首篇关于 DataFusion Comet 和 Iceberg Rust 的文章草稿以征集反馈。该举措旨在补充原有的版本公告内容,展示实际应用案例并吸引开发者参与贡献。
@Matt Butrovich: 提交了首篇技术博客 PR,从用户和开发者双视角探讨 DataFusion Comet 与 Iceberg Rust,希望为后续技术分享建立先例。
@Andrei Tserakhau: 高度支持此类内容,认为其填补了博客空白,建议保留“用户故事到开发者故事”的结构,并提议将其发展为“Iceberg Beyond the JVM”系列。
初步确立了技术博客的写作范式,Andrei 计划撰写关于 iceberg-go 的后续篇章,后续将同步协调文章结构以保持风格一致。
0 条回复 · 1 位参与者
本次讨论回顾了 Iceberg REST Catalog 中表与列标签元数据的同步会议进展,指出读取路径的设计已趋于稳定,目前的重点是推动规范 PR 的审查。讨论明确了优先聚焦读取路径、将延迟要求定义为实现指导而非规范要求,并将结构化标签等复杂议题留待后续跟进。
@Ryan Blue, Daniel Weeks: 反对在规范中强制规定延迟要求,认为延迟由实现定义,规范应将其作为实现指导而非规范性要求。
@Andrei Tserakhau: 建议优先审查读取路径的规范 PR,强调标签当前仅限于 LoadTableResponse 上的扁平化元数据交换,写入路径不应阻塞审查。
@Prashant Singh: 提出了结构化标签的需求,认为扁平视图无法满足复杂的标签管理,但这应作为后续独立议题处理。
初步结论是读取路径的表示形式已定稿(consolidated labels shape),下一步行动是号召社区(特别是 PMC 和 Committer)重点审查规范 PR #15750,同时将结构化标签等议题安排在后续同步会议中讨论。
0 条回复 · 1 位参与者
讨论主要关于 Iceberg 统计信息文件规范的改进,提议通过增加 'type' 字段来区分文件类型,并探讨了向后兼容性及不同实现(如 Spark 和 PyIceberg)处理未知 Blob 的差异。参与者还讨论了是否应复用现有框架来支持二级索引。
@dzeri96: 建议在统计文件元数据中增加 'type' 字段,定义 'iceberg-statistics-v1' 类型,并将 Blob 类型描述移至相应规范处。
@dzeri96: 认为旧版读取器可忽略 'type' 字段以保持向后兼容,且赞同 iceberg-spark 忽略未知 Blob 的处理方式。
@dzeri96: 认为二级索引应尽量复用现有的 statistics/puffin 文件框架,避免重复造轮子。
初步结论是建议通过增加元数据字段来优化规范,并倾向于采用 Spark 的容错处理逻辑,但邮件中未明确列出具体的下一步代码实施计划。
0 条回复 · 1 位参与者
William Hyun 发起关于 Iceberg REST Catalog 规范中文件级访问委托的讨论,针对预签名 URL 提出了“批量远程签名与缓存”的替代方案。他分析了作用域凭证分发在细粒度文件访问场景下的局限性(如 STS 频率和策略大小限制),并提交了一个 POC 代码以验证新方案的可行性。
@William Hyun: 作用域凭证分发适合少量稳定前缀的授权,但在大量特定文件的细粒度访问场景下,受限于 STS 请求频率和策略大小,不够实用。
@William Hyun: 远程签名结合缓存机制可以避免为每个文件集创建新的 STS 会话,是预签名 URL 的一个潜在实用替代方案。
@William Hyun: 已提交 POC PR 以具体展示远程签名加缓存的实现方式,旨在评估该方案在细粒度访问控制中的实际效果。
目前处于方案验证阶段,作者已发布 POC PR 供社区评估,欢迎社区提供反馈以决定是否采用该方向。
0 条回复 · 1 位参与者
讨论主要关于在 Iceberg 元数据中声明行级 bbox 覆盖列的机制,以支持行级空间预过滤。Sunmin Lee 提出利用独立 bbox 列进行行级过滤的需求,Tanmay Rauth 则澄清了 Iceberg 原生技术方向是通过几何列自身的统计信息进行剪枝。
@Sunmin Lee: 提出利用显式 bbox 覆盖列进行行级预过滤,以弥补现有文件级分区剪枝的不足,并询问是否有相关历史讨论。
@Tanmay Rauth: 指出 Iceberg v3 的原生方向是利用几何列自身的 Bounds 统计信息进行剪枝,而非依赖辅助列,但目前端到端功能尚未完全就绪。
初步结论是 Iceberg v3 规范倾向于使用几何列原生 Bounds 进行剪枝,但该功能尚在开发中;Sunmin Lee 表示若采用新设计将改用 Field ID 映射,并继续寻求行级过滤方案的指引。
0 条回复 · 1 位参与者
本次讨论旨在通过仅在主分支和夜间构建中运行 JDK 21 来减少 CI 运行时间。社区成员普遍支持在 PR 阶段移除 JDK 21 测试,相关 PR 已被合并。
@Kevin Liu: 已合并移除 PR 中 JDK 21 测试的代码,确保主分支合并时仍会运行 JDK 17 和 21 以发现潜在问题。
@Russell Spitzer: 赞同关闭 JDK 21 测试以降低成本,认为仅破坏 JDK 21 而不影响 JDK 17 的可能性极低。
@Danny Jones: 建议考虑使用 GitHub Merge Queue 功能,在轻量级测试通过后入队时再运行完整测试。
已决定并实施在 PR 的 CI 矩阵中移除 JDK 21,仅保留 JDK 17,同时保留主分支的完整测试覆盖。
0 条回复 · 1 位参与者
讨论旨在澄清 REST 规范中关于字段 `id` 的处理方式,以解决社区对此行为的疑问并确保表状态的一致性。作者通过 PR 提议明确区分 `CreateTableRequest`(重分配 ID)与 `AddSchemaUpdate`(保留 ID)的不同行为。
@Sung Yun: REST 规范需明确服务端如何处理字段 ID,例如 `CreateTableRequest` 会重分配 ID,而 `AddSchemaUpdate` 则保留客户端提供的 ID。
已提交 PR #17137 供社区审查,旨在通过规范澄清帮助不同实现保持表状态的一致性。
0 条回复 · 1 位参与者
讨论旨在解决 PR #13879(读限制)在投票前的结构性缺陷,即当前表达式引用列名而非字段 ID,可能导致策略在列重命名后失效。Nevin 提议在投票前同步更新该 PR,采用已通过的 Expressions Spec 语法并引入 IDReference,以确保策略与字段 ID 绑定。
@Prashant: 指出了 PR #13879 存在的关键缺口:表达式通过名称引用列,导致策略在列重命名或删除时可能失效。
@Ryan: 建议将采用新语法和引入 IDReference 结合进行,避免在已弃用的旧结构上增加新变体,这是更整洁的路径。
@Nevin Zheng: 计划与 Prashant 合作推进这些规范变更,目标是在 7 月 15 日之前提交初步版本供审查。
下一步行动是由 Nevin Zheng 与 Prashant 合作,在 7 月 15 日(或更早)前完成规范更新的初稿并提交审查,随后再进行社区投票。