20,862 颗星、3 种 API、一个 Rust 内核:Cube Core 想让「指标定义」在 BI 和 AI Agent 之间只写一次
Cube Core(cube-js/cube)正在用 Rust 重写它的计算内核,但真正值得关注的不只是性能——而是在 AI 时代,语义层正在从”BI 的底层”变成”AI 的信任基础设施”。
Cube Core 的核心边界:它到底解决什么问题
Cube Core 的本质是一个代码化(code-first)的语义层:你在 YAML 或 JavaScript 里定义一次指标(measures)、维度(dimensions)、关联(joins)和访问规则(access rules),然后通过 REST API、GraphQL、SQL 或 MCP 把这些定义暴露给任何下游——内部 BI 报表、客户嵌入式分析、AI Agent。
这意味着同一个”收入”定义,可以同时出现在 Superset 看板、React 后台仪表盘、Slack 机器人和 Claude Codex 的对话里,而不需要在每个地方单独维护 SQL 逻辑。
GitHub 数据(截至 2026-09-18):
| 指标 | 数值 |
|---|---|
| Stars | 20,862 |
| Forks | 2,140 |
| 最新版本 | v1.7.40(2026-09-16) |
| 核心语言 | Rust(计算内核)+ TypeScript(客户端/服务端包) |
| License | Apache 2.0(后端)+ MIT(客户端) |
| 发布频率 | 约每 2 天一个版本 |
| Issue 数 | 1,184(活跃维护) |
谁在用:真实生产场景
Brex 的 Staff Software Engineer 说过一句话很直接:
“LLM 是引擎,语义层是地图。一个定义良好的本体,决定了 AI 是回答’我不理解这个问题’,还是给出一个有图表支撑的正确答案。”
Webflow 用 Cube Cloud 管理客户指标:以前一个核心业务指标需要写 20 条不同的 SQL 查询,现在在 Cube 里定义一次,所有下游工具直接引用同一个计算逻辑。
Drata 的数据团队把 Cube 作为指标单一数据源(SSOT),从客户仪表盘到 AI 驱动的季度业务复盘,都跑在同一个语义层上。
Cube Core 和 Cube 的区别:容易混淆、必须说清
Cube Core(开源)是语义层本身——定义指标、暴露 API、无自带 UI。你在代码里建模,然后用 REST/GraphQL/SQL/MCP 去取数据。
Cube(商业产品)是基于 Cube Core 构建的”智能分析平台”——加了 Analytics Chat(对话式分析)、工作簿、仪表盘、Creator Mode、MCP Server,以及托管部署能力。两者数据模型完全兼容,在 Cube Core 写的模型可以直接跑在 Cube 上,反之亦然。
简单说:Cube Core 是基础设施,Cube 是加了 UI 和 AI 的完整产品。 如果你只需要语义层 API 而不需要平台,选 Core 就够了。
为什么在 2026 年这个时间点值得关注
三个驱动力:
1. AI Agent 需要”信任的基础设施”
LLM 能写 SQL,但不知道你的”活跃用户”怎么定义、join 路径怎么走、哪些行谁能看到。Cube 的语义层就是给 AI 看的”地图”——Agent 通过 MCP Server(支持 Claude、Codex、ChatGPT 等)连接 Cube,所有查询都带着行级安全和访问控制,AI 拿到的永远是被治理过的、一致的答案,而不是在原始表结构里瞎猜。
Colrows(一家语义执行层初创)在对比分析里说得很清楚:Cube 的治理发生在”查询时”(query time),不是”编译时”。这是它和真正的 AI 原生语义层的差距——但对于大多数场景,查询时治理已经足够。
2. 嵌入式分析(Embedded Analytics)需求爆发
B2B SaaS 产品的标配正在变成”给客户一个内置数据看板”。Cube 多租户隔离、Row-Level Security、预聚合缓存(pre-aggregation)都是为这个场景设计的。一个查询,不同租户只能看到自己的数据,而且被缓存加速过,延迟远低于直连数据仓库。
3. Rust 内核正在改变性能方程
Cube v1.7 版本的计算内核从 Node.js 向 Rust 迁移。v1.7.40 的 changelog 里大量 bugfix 集中在 cubestore 和 cubesql 模块,ClickHouse driver 有多次 streaming 性能优化(2.2x 加速)。虽然客户端/ schema 部分还是 TypeScript,但核心查询引擎的 Rust 化会让高并发场景下的延迟和内存表现大幅改善。
真实使用门槛
不是所有场景都适合上 Cube。以下是实际踩坑点:
不适合的情况:
- 你的团队每周还在改核心业务指标的定义——语义层会把不稳定的逻辑固定下来,但不会让不稳定的逻辑变好
- 只有一个分析师、一套内部看板——直接连仓库跑 SQL 更简单
- 数据仓库本身还在剧烈变动( schema 每周改)——语义层需要稳定的底层
- 团队没有工程师维护——Cube Core 需要有人管部署、监控预聚合命中率和缓存命中率
适合的情况:
- 3 个以上团队在用同一套数据,但大家对”活跃用户”定义不一致
- 需要给客户做嵌入式分析,且有租户隔离需求
- AI Agent 需要访问业务指标,但不想让 Agent 直连原始数据库
- 已经有 dbt 模型,Cube 可以直接读取,不需要重复建模
快速上手:5 分钟跑起来
# 需要先装 Docker
docker run -p 4000:4000
-p 15432:15432
-v ${PWD}:/cube/conf
-e CUBEJS_DEV_MODE=true
cubejs/cube
然后打开 http://localhost:4000 进入 Playground,在里面写 schema 定义、预览 SQL、调试查询。
⚠️
CUBEJS_DEV_MODE=true会关闭所有鉴权——不要在生产环境暴露这个端口,也不要把它当正式部署方式。
竞品速览:什么时候选 Cube Core 而不是替代品
| 工具 | 最适合 | 差距 |
|---|---|---|
| dbt Semantic Layer | 已经在用 dbt 的团队 | 没有 API,只有 GraphQL,且需 dbt Cloud |
| LookML(Looker) | Google Cloud 重度用户 | 专有语法、贵、Looker 绑定 |
| 仓库内置语义层(Databricks/Snowflake) | 单平台、不需要嵌入式分析 | 绑定单一仓库 |
| AtScale | 大企业 OLAP + Excel/Power BI | 贵、无开源核心 |
| Cube Core | 需要开源、多仓库、嵌入式分析、API-first | 需要自运维(但门槛不高) |
下一步建议
如果你看完觉得 Cube Core 可能是你的菜,别急着 docker run,先问自己一个问题:你的团队是否已经在为一个指标定义争吵过? 如果答案是”是”,那 Cube Core 的 ROI 是明确的。
入门路径建议:
- 先跑通官方示例(5 分钟):Cube 官网有连接 BigQuery/Snowflake 的 Playbook
- 用 dbt 的团队:Cube 原生支持从 dbt 项目同步 schema,这是最低成本的起点
- 想接 AI Agent:Cube MCP Server 文档是当前最完整的接入指南,值得先读一遍
- 看生产案例:Cube 官网有 Brex、Webflow、Drata 的案例,都比较真实
文档入口:https://docs.cube.dev/cube-core/getting-started
参考链接
- GitHub:https://github.com/cube-js/cube
- 官网:https://cube.dev
- 文档:https://docs.cube.dev
- 官方博客(语义层深度文章):https://cube.dev/articles/what-is-a-semantic-layer
- Cube Core vs Cube 官方说明:https://cube.dev/blog/cube-core-and-cube
- Brex 工程博客(语义层选型):https://cube.dev(案例页面)
- dbt 语义层替代方案对比(2026):https://d2r5aiwjuigpvk.cloudfront.net/articles/dbt-semantic-layer-alternatives-2026
- Colrows 对 Cube 的深度分析(AI Agent 视角):https://colrows.com/colrows-vs-cube
- GitHub Releases(查看最新版本):https://github.com/cube-js/cube/releases
评论区
登录后可评论。