# @finos/legend-cube-builder 中文文档

规范地址：https://npmcn.com/package/%40finos/legend-cube-builder/

版本：0\.0\.14
npm 元数据更新时间：2026-11-12T13:45:29.066Z
中文译文更新时间：2026-11-14T19:45:33.410Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40finos/legend-cube-builder
原文对照：https://npmcn.com/package/%40finos/legend-cube-builder/?lang=original
项目主页：https://github.com/finos/legend-studio/tree/master/packages/legend-cube-builder
源码仓库：https://github.com/finos/legend-studio

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：6.7 MB，1399 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：21 个
- peer 依赖：react ^19\.0\.1
- 首次发布：2026-10-08T15:46:27.932Z
- 最新版本发布：2026-11-12T13:45:28.856Z
- 近 30 天下载量：2695（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

图例 Cube 构建器: 画布 UI 和 图例 Cube 查询构建器的图例引擎适配器

## 安装

```sh
npm install @finos/legend-cube-builder
```

也可以使用：`pnpm add @finos/legend-cube-builder`、`yarn add @finos/legend-cube-builder`、`bun add @finos/legend-cube-builder`

## README

# @ finos/ legend- 立方体构建器

UI和"传奇魔方"的"传奇"引擎适配器,一个基于画布的视觉查询构建器. 域模型生活在 无主机 [`@finos/legend-cube`](https://npmcn.com/package/%40finos/legend-cube)。 。 。 .

它持有页面(画布,调色板,侧面板编辑器,取源器和结果网格),它的MobX 库,引擎端口及其 `v1/` 适配器和捆绑的模型目录 图例分析器主机页面 `/analytics/`,而"传奇工作室"从摄入定义的编辑器中打开(参见: [托管](https://npmcn.com/package/%40finos/legend-cube-builder/docs/hosting.md)) (中文(简体) ).

**状态 :** 工作正在进行,第0.0.x版。 此版本有关系表( 从模型或直接连接到 H2 ) 或DuckDB),所部署数据产品的访问点和所部署的摄入量定义(两者均为β)的数据集, 加入、 排序、 组合、 中枢( 在运行它的数据库上)、 过滤、 限制、 重命名、 区分、 丢弃、 限制、 切片、 串接、 比较列值( 偏差) , 窗口函数(Apply Window 函数),计算列(外出列,其表达式为引擎检查)和 由纯条件(Filter by Expression,引擎也检查该条件)保存的行,每个查询有一个模型,一个运行时间和一个数据库,数据产品项目或生产者部署. 一个立方体只通过它的规格的进出口来保存,标记为"(dev)",直到 立方体商店存在。 一个被粘贴的模型保存在立方体中. 结果网格默认在服务器侧工作:一个标题 排序和每个从屏幕运行到引擎上的钻入级; 本地模式组、 pivots 并过滤 运行浏览器中的行。 网格通过引擎将整个查询导出为 CSV , 并显示为 Excel, 列表 最新运行的SQL,格式列(一个数字,一个ISO货币或一个百分比)。 还没有页面的链接,没有重做, Cube 没有发送遥测.

## 版式

| 文件夹 | 持有 |
| --- | --- |
| `src/components/` | 该页, `CubeEditor`及其各部分: `canvas/`, (中文(简体) ), `palette/`, (中文(简体) ), `editors/`, (中文(简体) ), `source-picker/`, (中文(简体) ), `grid/`, (中文(简体) ), `show-pure/`, (中文(简体) ), `spec-transfer/` |
| `src/stores/` | 页面的 MobX 状态、其部分和节点编辑器; `editors/` (节点草稿); `LocalModelCatalog` 财务报告和审定财务报表 `fixtures/` (捆绑的模型); `CubeHost` |
| `src/graph-manager/` | 引擎端口( x)`CubeEngine.ts`),连接探索器,数据产品目录和摄入目录端口,及其构建者 |
| `src/graph-manager/protocol/pure/v1/` | 发动机适配器, `V1_LegendCubeEngine`: lambda 序列器,结果和关系类型读取器,错误映射 |
| `src/__lib__/` | 标签、 帮助文本、 命令配置和测试 id |
| `src/__test-utils__/` | 假引擎和测试的助手 |
| `style/` | 样式表,构建为 `lib/index.css` |

这取决于 `@finos/legend-cube`传奇地图 传奇应用 传奇艺术 传奇莱戈 传奇共享 仓库、湖屋和仓库客户,永远不要 在一个应用程序包上(`legend-application-*`)或作"传说-克瑞-建设者".

**V1规则:** `V1_*` 协议代码生活在 `src/graph-manager/protocol/pure/v1/`。外部的一个产品文件 它的名称 `V1_*` 是连接 `src/graph-manager/protocol/pure/CubeEngineBuilder.ts`数字 : `buildCubeEngine` 是唯一一个 产品代码 `V1_LegendCubeEngine`因此,主机从不命名 `V1_*` 符号。 归宿 `enforce-module-import-hierarchy` 提示规则禁止在 `stores/` 或者说 `components/` 财务报告和审定财务报表 `v1/`两种方式. 发动机辅助测试 `src/__tests__/` 他们需要适配器和 `stores/`。 。 。 .

## 公共 API

`src/index.ts` 输出 :

-   `CubeEditor`,页,和 `CubeHost`宿主给了它什么; `CubeEntrySource`,一个源的链接要求页面 以( e) 开头`initialSource`),以及 `formatCubeAccessPointEntryId` 联合国 `CubeAccessPointEntry`,写着 数据产品访问点的链接 id ([主办时间:](https://npmcn.com/package/%40finos/legend-cube-builder/docs/hosting.md)(三);
-   发动机端口,所有在 `CubeEngine.ts` (单位:千美元)`CubeEngine`, (中文(简体) ), `CubeEngineError`, (中文(简体) ), `CubeEngineErrorKind`, (中文(简体) ), `CubeResult`, (中文(简体) ), `CubeModelOutline`,与 `buildCubeEngine` 财务报告和审定财务报表 `CubeEngineConfig`· ;
-   连接探索器端口, 所有在 `CubeConnectionExplorer.ts`,与 `buildCubeConnectionExplorer`· ;
-   数据产品: `CubeDataProduct.ts` (模型类型、运行时路径、环境类型、 仓库规则)和 `CubeDataProductCatalog.ts` (目录端口及其类别) `buildCubeDataProductCatalog`, (中文(简体) ), `buildCubeLakehouseEnvironment`, (中文(简体) ), `CubeLakehouseServices`, (中文(简体) ), `CubeLakehouseEnvironment` 财务报告和审定财务报表 `getCubeRememberedWarehouse`· ;
-   摄入数据集: `CubeIngest.ts` (模型类型、运行时路径、保存的设置)和 `CubeIngestCatalog.ts` (目录端口及其类别) `buildCubeIngestCatalog`· ;
-   已公布的项目:所有项目 `CubeProject.ts` (指针模型及其检查)和 `CubeProjectCatalog.ts` (目录端口),带有 `buildCubeProjectCatalog`· ;
-   `LocalModelCatalog` 财务报告和审定财务报表 `BUNDLED_MODELS`· ;
-   `LEGEND_CUBE_COMMAND_CONFIG` 财务报告和审定财务报表 `LEGEND_CUBE_COMMAND_KEY`,页面的快捷键;
-   `LEGEND_CUBE_TEST_ID`· ;
-   0.0.2发布但包外无任何内容的帮助者尚未使用: `getRuntimesForDatabase`, (中文(简体) ), `createTextModel`, (中文(简体) ), `BundledModel`和捆绑的模型的 `CUBE_NORTHWIND_MODEL`, (中文(简体) ), `CUBE_NORTHWIND_DATABASE` 财务报告和审定财务报表 `CUBE_NORTHWIND_RUNTIME`。 。 。 .

节点类型的注册(草稿、编辑器、帮助文本和图标)是内部的:没有用于节点类型的插件 API 还没有.

## 来源

立方体读取一种来源:关系表(来自模型,或通过直接连接从数据库) 已部署数据产品的接入点,或已部署的摄入定义数据集(两者均为β;Plan§6.7;§6.8). “ 添加源” 对话框每个方式都有查找源的标签, 每个执行 `CubeSourcePickerTab` (单位:千美元)`src/stores/source-picker/`:模型,数据库连接,数据产品和Ingest. 主办方提供最后三个 给出页a `connectionExplorer`页:1 `dataProductCatalog` 还有一个 `ingestCatalog` (见 [托管](https://npmcn.com/package/%40finos/legend-cube-builder/docs/hosting.md)) (中文(简体) ).

新型来源需要,在核心中,a `SourceDefinition` (节点、编码器、发射器及其查询规则) 构建器,一个标签,一个源面板编辑器,帮助文本和一个图标,及其在引擎执行中的分支,它 构建每个调用从立方体保存的模型类型上运行的模型(`src/graph-manager/CubeDirectConnection.ts`, (中文(简体) ), `CubeDataProduct.ts` 财务报告和审定财务报表 `CubeIngest.ts` 以实例为准).

已公布项目数据库的表格来自项目数据库分页(PLAN §6.3),该分页扩展了样本数据分页: 立方体将引擎的指针保存在已发布的版本上,并保存主机的指针 `projectCatalog` 列出项目, 其库中的版本和大纲.

## 样本和实例

样本数据分页捆绑了三个数据集:北风(没有Cube的测试表)和两个编造,种子样本,运动和交易 (单位:千美元)`src/stores/fixtures/`),每个被其设置的SQL所填充的内膜H2数据库. 实例对话框( 页眉) 示例按钮)打开了7个示例立方体中的1个(`src/stores/CubeExamples.ts`代替立方体,然后 运行它,或者在数据集上启动一个新的立方体(PLAN §6.9). 一个 示例在代码中构建, 因此新代码不需要保存 spec; 添加到 `CUBE_EXAMPLES`和引擎测试 `CubeExamples.engine-roundtrip-test.ts` 打开、输入和运行.

## 文档

-   [正在主机页面](https://npmcn.com/package/%40finos/legend-cube-builder/docs/hosting.md):一个主机给出的页面,快捷键,样式表,以及dev回路.
-   [测试](https://npmcn.com/package/%40finos/legend-cube-builder/docs/testing.md):测试组,假引擎,以及对真引擎的测试.
-   [演示](https://npmcn.com/package/%40finos/legend-cube-builder/docs/demo/README.md):通过样本数据 [快笔记](https://npmcn.com/package/%40finos/legend-cube-builder/docs/demo/DEMO-FAST-NOTES.md),以及 每个步骤都要导入光谱.
-   [添加一个操作](https://npmcn.com/package/%40finos/legend-cube-builder/docs/adding-an-operation.md):新变换的建筑人一半. 核心部分在 [`@finos/legend-cube`](https://npmcn.com/package/%40finos/legend-cube/docs/adding-an-operation.md)。 。 。 .
-   [计划](https://npmcn.com/package/docs/wip/legend-cube/PLAN.md) 财务报告和审定财务报表 [已知问题](https://npmcn.com/package/docs/wip/legend-cube/ISSUES.md)。 。 。 .

## 常见问题

### @finos/legend-cube-builder 是什么？

图例 Cube 构建器: 画布 UI 和 图例 Cube 查询构建器的图例引擎适配器

### 如何安装 @finos/legend-cube-builder？

在项目目录运行 npm install @finos/legend-cube-builder，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^19\.0\.1）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @finos/legend-cube-builder 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @finos/legend-cube-builder 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @finos/legend-cube-builder 可以商用吗？

@finos/legend-cube-builder 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @finos/legend-cube-builder 的下载量有多少？

根据 npm 官方下载统计，@finos/legend-cube-builder 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,695 次，日均约 90 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @finos/legend-cube-builder 还在维护吗？

最新版本 0\.0\.14 发布于 2026/11/12（2 天前）；至今共发布 14 个版本，其中过去 12 个月发布了 14 个；首次发布于 2026/10/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

