这个项目能做什么

delta-explain 是一款只读诊断工具,旨在使 Delta Lake 的剪枝过程可视化。它通过解析 Delta 表的事务日志(或云存储路径),展示分区剪枝和列统计信息如何针对给定的 SQL 风格谓词缩小候选文件集。 用户可以通过 Shell(delta-explain ./my-table --where "age > 40 AND country = 'DE'")、Python(from delta_explain import explain; report = explain(...))运行该工具,或将其嵌入 CI 作为门控(--min-pruning 90 --assert-stats)。该工具从不触碰 Parquet 数据文件,仅读取日志,从而保持了较小的攻击面和明确的保证。 安装方式包括 Homebrew、PyPI、Cargo、Docker 和预编译二进制文件。它支持本地路径和云 URI(S3、Azure、GCS),并具备特定于提供商的凭据处理能力。报告以版本化的 JSON 契约形式输出;内置的 HTML 查看器可渲染剪枝漏斗、逐文件详细信息及诊断结果。 性能随日志条目数量而非数据量扩展。在处理 20 万个文件时,该工具运行时间约为 1-2 秒,内存占用约 300 MB。宽模式或大量文件会线性增加内存使用,输出大小可通过 --limit 参数限制。该项目还可作为 GitHub Action 用于 CI 门控,将剪枝百分比和文件计数作为步骤输出。 主要功能包括: * 分步剪枝可视化(先分区后统计信息) * 详细的逐文件列表(保留/丢弃原因、大小、统计范围) * 基于阈值的 CI 门控(--min-pruning, --assert-stats) * JSON 模式验证报告及 HTML 查看器 * 跨平台二进制文件(Linux、macOS、Windows)和 Docker 镜像 * 完整的文档、示例及设计深度解析文章。 该工具基于 delta-kernel-rs 构建,严格只读,并以 MIT 许可证发布。