Show HN:Rocky —— 用 Rust 写的 SQL 引擎,支持分支、回放与列级血缘

查看原文 HN 讨论

文章摘要

Rocky 由 Hugo Correia 开发,定位是”数据仓库流水线的信任系统”——一个用 Rust 写的转换/控制平面,本身不存数据也不做计算,而是把存储和计算依然交给 Databricks、Snowflake 这类现有数仓,只在上层叠加治理、血缘、契约和实验能力。它要解决的是 dbt 这一类工具长期欠缺的问题:编译期保证、列级影响分析、安全的实验分支。

核心特性可以分四块。第一,列级血缘:Rocky 的编译器解析 SQL 时会穿越 join、CTE、window function,把每一列从下游事实表反向追到源头 seed,因此可以在合并前就回答”修改这一列会炸掉哪些下游”,比基于运行日志事后解析的表级工具粒度细得多。第二,编译期数据契约:缺失列、不安全的类型变更会以诊断码形式在转换执行前报错,而不是上线后才出问题;上游 schema 漂移也能被立即侦测,必要时重建目标表。第三,分支与回放:通过 schema 前缀建逻辑表副本(计划接入 Delta SHALLOW CLONE 与 Snowflake zero-copy clone),可以隔离地跑实验、看结果,再决定 promote 或丢弃;同时引擎能完整回放某次 SQL 跑过的输入和过程。第四,治理面:列分类标签、按环境的脱敏策略、8 字段审计轨迹、合规汇总、按模型的成本归因,以及 PR 时的血缘 diff(与 GitHub 集成),还包括 LLM 辅助生成模型的反馈校验循环。

工程结构是个多语言 monorepo:Rust 引擎是包含 20 个 crate 的工作区,对外暴露 CLI;Python 端用 wheel 包封装 CLI 与 Dagster 集成;编辑器侧是 VS Code 扩展(TypeScript),通过 LSP 和 AI 接入。

HN 评论精华