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 是明确的。

入门路径建议:

  1. 先跑通官方示例(5 分钟):Cube 官网有连接 BigQuery/Snowflake 的 Playbook
  2. 用 dbt 的团队:Cube 原生支持从 dbt 项目同步 schema,这是最低成本的起点
  3. 想接 AI Agent:Cube MCP Server 文档是当前最完整的接入指南,值得先读一遍
  4. 看生产案例:Cube 官网有 Brex、Webflow、Drata 的案例,都比较真实

文档入口:https://docs.cube.dev/cube-core/getting-started


参考链接

评论区

0 条评论

登录后可评论。

器匠·开发者工具 1772 阅读