用途:守护生产 Databricks 数据管道,针对 Delta Lake、Liquid Clustering、Structured Streaming、Auto Loader 和 DLT 的十二类“陷阱”(D01–D12)提供触发时拦截与确定性恢复。多数陷阱是平台设计决策而非 bug。
主要能力:D01 手动 OPTIMIZE 与自动压缩冲突(ConcurrentDeleteDeleteException);D02 Liquid Clustering 表上的 ConcurrentAppendException;D03 VACUUM 删除检查点固定文件(DELTA_FILE_NOT_FOUND_DETAILED);D04 检查点静默损坏/重置;D05 RocksDB 堆外状态 OOM;D12 CREATE OR REPLACE 换 UUID 导致消费者失败(DIFFERENT_DELTA_TABLE_READ_BY_STREAMING_SOURCE);D06 LC 迁移隐藏重写成本;D07 时间旅行因 VACUUM 越界失效;D10 Auto Loader 新列导致 UnknownFieldException;D08 DLT @dlt.table 线程竞争;D09 全量刷新丢数据;D11 重建成本(与 databricks-cost-leak-hunter 共担)。
使用方式:安装后 PreToolUse 钩子(hooks/streaming-guard-hook.py)拦截对正被流读取的表执行 DROP TABLE、CREATE OR REPLACE TABLE、VACUUM 的 Bash 命令,确认消费者后阻止,无法验证时放行(fail open)。手动检查可查询 system.streaming.query_progress。写入冲突用 scripts/pre-optimize-check.sh --table main.sales.orders 探测自动压缩;LC 的 MERGE 交给 merge-rewriter 子代理按聚类键收窄谓词。流故障用 python3 scripts/recover-streaming-source.py --failure file-not-found --time-travel yes(或 uuid-changed / checkpoint-reset / transient)获得恢复层级。
前提:需注册 databricks-workspace-mcp(clusters_events、pipelines_get);Databricks CLI 已认证并安装 jq,设置 DATABRICKS_WAREHOUSE_ID。缺失则进入建议模式。
限制:钩子仅在确认不安全时阻止,其余静默;无法验证消费者时放行,需人工核对。资料未提供价格、平台支持范围等更多信息。