这篇先记录“已经完成并提交 PR”的工作,不等 merge 再写,确保过程可追踪。
- Issue: delta-io/delta-kernel-rs#1787 PR: delta-io/delta-kernel-rs#1812
- Issue: delta-io/delta-kernel-rs#1727 PR: delta-io/delta-kernel-rs#1813
- Issue: delta-io/delta-kernel-rs#1788 PR: delta-io/delta-kernel-rs#1814
🔍 分析 (Analyze)
这三单都属于“低风险、可快速评审”的改进型任务:
- #1787:增强可观测性,不改业务语义;
- #1727:去掉示例中的冗余/unsafe 路径,收敛到统一 API;
- #1788:补齐协议配置项在 Kernel 写路径里的落地,属于能力对齐。
共同目标是减少维护成本、提高可调试性,并让行为更贴近 Delta 协议预期。
📍 定位 (Locate)
核心改动位置:
uc-catalog/src/committer.rs(提交/发布 tracing)kernel/examples/checkpoint-table/src/main.rs(示例写 checkpoint 逻辑)kernel/src/table_properties.rskernel/src/table_properties/deserialize.rskernel/src/transaction/mod.rskernel/src/engine/default/{mod.rs,parquet.rs,stats.rs}
🛠️ 执行 (Execute)
- #1787:给
UCCommitter::commit/publish增加 span 与关键字段日志,覆盖 staged commit、UC commit、publish copy 等关键步骤。 - #1727:示例默认走 Tokio multi-thread executor,真实写 checkpoint 改用
snapshot.checkpoint(&engine),去除重复实现路径。 - #1788:
- 解析
delta.dataSkippingStringPrefixLength; - 将 prefix length 从 table properties 传递到
WriteContext、Parquet 写入与collect_stats; - 字符串 min/max 截断逻辑改为使用传入长度;
- 补单测覆盖解析与自定义 prefix 截断。
- 解析
本地验证包含 cargo fmt --all 和针对性 cargo test -p delta_kernel ...。
✅ 总结 (Summary)
这轮不是“堆功能”,而是把可维护性和协议一致性往前推了一步:
- 诊断链路更清晰(tracing);
- 示例更稳健、可作为推荐用法;
- 字符串统计前缀长度支持表级配置,避免硬编码 32 的行为偏差。
后续按 reviewer 反馈继续小步迭代,优先追求高通过率和低返工。