← 返回信息流
AI 资讯Hacker News·3 天前

OM Core发布:无需公式的多维数据模型

原标题:Show HN: OM Core – multidimensional models without spreadsheet cell formulas

速览

OM Core通过创新的多维模型设计,让用户无需使用电子表格中的单元格公式就能构建复杂的数据模型。它可能简化数据分析流程,适用于需要处理多维数据的场景。目前该项目在Hacker News上展示,引发关注。

AI 深度解读

背景

传统电子表格(如 Excel)因其灵活性和易用性成为金融、运营和分析建模的主流工具。然而,随着模型规模增长,业务逻辑被编码在单元格地址、复制粘贴的公式、隐式的行/列布局以及相互链接的工作表中,导致模型变得脆弱、难以审计、扩展和维护。许多关键模型将模型结构、业务逻辑、布局、呈现、计算流程和用户交互混在一起,任何一个环节的修改都可能引发连锁错误。

在此背景下,开源项目 OM Core 提出了一种替代方案——基于多维建模的引擎,旨在将模型的结构与呈现彻底分离,用维度、立方体、分组和规则来描述业务关系,而非依赖电子表格的网格坐标。

核心内容

OM Core 是什么
OM Core 是一个开源参考实现,专门针对结构化财务、运营和分析模型的多维建模引擎。它不将电子表格网格视为模型本身,而是用维度、立方体、分组和规则来表示模型;网格和视图只是该模型的投影,而非事实来源。

当前状态
OM Core 目前处于 Alpha 阶段,正在积极开发中。API、命令名称、文件格式、GUI 行为以及模块边界在 v1.0 之前可能发生变化。

核心设计理念
传统电子表格模型将以下要素混合在一起:

  • 模型结构
  • 业务逻辑
  • 布局
  • 呈现
  • 计算流程
  • 用户交互

OM Core 将这些关注点明确分离。模型的构建单元包括:

  • Dimensions(维度):业务轴,如时间、账户、区域、产品、场景或行项目。
  • Cubes(立方体):存储在一个或多个维度上的数据。
  • Groups 与 Hierarchies(分组与层级):结构化集合与汇总。
  • Rules(规则):基于语义模型地址而非电子表格坐标来表达计算。
  • Views(视图):用于查看和交互的网格与界面。

一条规则应描述业务关系,而非单元格位置。例如,模型应能表达“毛利润由收入减去成本得出”,而不必让该关系依赖于特定的行、列或复制公式。

安装与运行
OM Core 当前从源码运行:

  • 克隆仓库:git clone https://github.com/cloudcell/om-core.git
  • 进入目录后,Linux/macOS 执行 ./start.sh,Windows 执行 .\start.ps1
  • 脚本会启动 GUI,并询问是否在独立终端中打开 TUI(默认是 Y)。
  • OM Core 使用 uv 管理 Python 环境。首次运行时会自动创建虚拟环境并安装依赖。

运行模式

  • ./start.sh --gui:仅图形界面
  • ./start.sh --tui:当前终端中的终端界面
  • ./start.sh --runtime:无头运行时
  • ./start.sh --repl:当前终端中的 REPL 命令 shell

示例脚本
一个最小的 OM Core 脚本如下:

# Dimensions
dim Month Jan Feb Mar
# Cube
cube Sales Month
# View
view SalesView = Sales::Month
# Rules
rule Sales::Month.Jan = 100
rule Sales::Month.Feb = Sales::Month.Jan * 1.1
rule Sales::Month.Mar = Sales::Month.Feb * 1.1
# Calculate
calc

保存为 hello.openm,然后在 REPL 或 TUI 中执行 source hello.openm

测试
使用平台特定脚本:Linux/macOS 执行 ./test.sh,Windows 执行 .\test.ps1

架构
OM Core 分为会话范围的运行时层、命令/查询服务层和多个客户端。引擎拥有规范的工作空间状态;GUI、TUI、REPL 和 CLI 都是通过消息总线与引擎通信的客户端。

与电子表格的对比
电子表格快速灵活,但大型模型因业务逻辑编码在单元格地址、复制公式、链接工作表及隐式布局约定中而变得脆弱。OM Core 使用不同的抽象层级:维度描述轴,立方体存储值,分组组织结构,规则定义计算,视图展示结果。其权衡是:一开始需要定义更多结构,但换取了模型在增长过程中更易审计、扩展、测试和维护。

当前限制与免责
OM Core 目前是 Alpha 软件,v1.0 之前不保证以下内容的稳定:

  • 稳定的公共 API
  • 稳定的插件 API
  • 稳定的脚本 API
  • 稳定的文件格式
  • 打包的桌面安装程序
  • 未经独立验证的关键业务使用可投入生产

许可证与法律
除非另有说明,OM Core 依据 GNU Affero General Public License v3.0 发布。OM Core 名称的使用受单独管理。贡献者需阅读 CONTRIBUTING.md、CODE_OF_CONDUCT.md 等文件。安全问题不应通过公开 GitHub issue 报告,详见 SECURITY.md。

关键要点

  • 开源多维建模引擎:OM Core 提供参考实现,专注于结构化金融、运营和分析模型。
  • 分离关注点:模型结构、业务逻辑、呈现、计算流程等明确分离,取代电子表格的混合模式。
  • 基于维度、立方体、规则与视图:使用语义模型地址(而非单元格坐标)定义规则,使业务关系独立于布局。
  • Alpha 阶段:API、格式、行为等可能变化;不提供稳定公共接口或生产就绪性。
  • 多种运行模式:支持 GUI、TUI、REPL 和无头运行时,通过命令行参数切换。
  • 依赖 uv:使用 uv 管理 Python 虚拟环境,跨平台支持(Linux/macOS/Windows)。
  • 示例脚本语言:提供类似 dimcuberuleviewcalc 的关键字,快速上手。
  • 核心权衡:前期需定义更多结构,但换来模型的可审计性、可扩展性、可测试性与可维护性。
  • 社区贡献开放:鼓励小型、聚焦的改进,如示例、文档和引擎行为;提供 Discord 讨论群。
  • 许可证为 AGPL-3.0:商标使用单独管理,贡献者需签署 CLA。

意义与影响

OM Core 的提出,为长期依赖电子表格进行复杂建模的领域(如金融建模、运营分析、财务规划与分析)提供了一条新的技术路径。它试图从根本上解决电子表格模型中的几大痛点:隐藏的计算逻辑、难以追溯的公式依赖、以及因布局变更导致的连锁错误。

通过将模型抽象为维度、立方体和规则,OM Core 使模型更容易被审计——业务关系一目了然,而非隐藏在数百个单元格里。这使得合规和风险控制更加透明,尤其适用于需要严格监管的金融行业。同时,由于视图与模型分离,同一个模型可以以不同形式呈现(表格、图表、报告),而无需修改底层逻辑。

尽管目前处于 Alpha 阶段,不适合关键业务直接使用,但它的设计思想可能推动下一代建模工具的发展。如果未来能提供稳定的 API、插件机制和打包桌面应用,OM Core 有望成为传统电子表格的重要补充,甚至替代方案。对于大型组织而言,采用此类多维模型能显著降低维护成本,提高协作效率,并减少人为错误。

此外,作为开源项目,OM Core 鼓励社区参与,其生态系统(包括脚本、插件、可视化)有望逐步成熟。如果获得足够贡献,它可能催生出一套全新的建模范式,使分析师从“单元格坐标”的束缚中解放出来,专注于真正的业务逻辑。

查看原文 →github.com