@finos/legend-cube-builder

中文文档
0.0.14发布于 2026/11/12Apache-2.0TypeScriptES Module近 30 天下载 2695

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

中文使用文档
文档目录5 节
  1. 版式
  2. 公共 API
  3. 来源
  4. 样本和实例
  5. 文档

@ finos/ legend- 立方体构建器

UI和"传奇魔方"的"传奇"引擎适配器,一个基于画布的视觉查询构建器. 域模型生活在 无主机 @finos/legend-cube。 。 。 .

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

状态 : 工作正在进行,第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 (主办时间:(三);
  • 发动机端口,所有在 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 (见 托管) (中文(简体) ).

新型来源需要,在核心中,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 打开、输入和运行.

文档

版本与发布记录

@finos/legend-cube-builder 共发布 14 个版本,首次发布于 2026/10/08;过去 12 个月发布了 14 个版本。

版本发布日期距今
0.0.14latest2026/11/122 天前
0.0.132026/11/113 天前
0.0.122026/11/104 天前
0.0.112026/11/095 天前
0.0.102026/11/0212 天前
0.0.92026/10/2619 天前

关于 @finos/legend-cube-builder 的常见问题

@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 和提交记录判断。