报表与分析

答案来自记录系统本身——而不是第二套数据栈。

财务要看按套餐分的 MRR 逐月走势,运营要一块 SLA 仪表盘。常见做法是导出到 BI 工具——权限、口径和新鲜度在那里悄悄漂移。ObjectOS 直接在受治理对象上回答这些问题:数据集定义一次,仪表盘渲染,设计器组装。

ObjectOS product surface connecting business data, applications, and AI agents
AI 编写元数据 对象、权限、流程、工具
审阅 diff 业务权限、数据访问、审批
运行时 执行策略 UI、API、审计、MCP、动作
3 种
查询策略:原生 SQL、ObjectQL、内存计算
同一套规则
行级与字段级权限作用于每一张报表
0 ETL
报表跑在实时对象上,不是导出的副本

指标即元数据

度量定义一次,处处复用。

数据集为业务命名它关心的度量与维度。仪表盘、报表和 AI 提问都解析到同一份定义——"月度经常性收入"只有一个意思。

import { defineDataset, defineReport } from '@objectstack/spec/ui';

export const RevenueDataset = defineDataset({
  name: 'billing_revenue',
  label: 'Revenue',
  object: 'billing_subscription',
  dimensions: [
    { name: 'plan', label: 'Plan', field: 'plan', type: 'string' },
    { name: 'month', label: 'Month', field: 'renews_at', type: 'date', dateGranularity: 'month' },
  ],
  measures: [
    { name: 'mrr', label: 'MRR', aggregate: 'sum', field: 'mrr', format: '0.0' },
    { name: 'active_subs', label: 'Active Subscriptions', aggregate: 'count' },
  ],
});

export const MrrByPlan = defineReport({
  name: 'billing_mrr_by_plan',
  label: 'MRR by Plan',
  type: 'summary',
  drilldown: true,
  dataset: 'billing_revenue',
  rows: ['plan'],
  values: ['mrr'],
});

报表原语

先回答财务的问题,然后继续往下问

分析服务把问题编译到合适的策略——能下推 SQL 的下推,必须运行时算的就在运行时算。

聚合与分组

"按套餐分的 MRR"就是数据集在一个维度上的求和——求和、计数、平均与分组穿透关系,由查询引擎完成。

时间序列

逐月续约曲线、逐周工单量——在任何日期维度上按日、周、月做时区感知的分桶。

漏斗

试用 → 付费、申请 → 批准 → 履约——跨状态字段与流程的阶段转化。

仪表盘

MRR 图、活跃订阅计数器和流失表组成一块可分享的仪表盘,就在它们汇总的记录旁边。

语义数据集

命名的度量与维度让每个团队——和每条 AI 回答——算出来的是同一组数字。

仪表盘与报表设计器

点选组装,存成元数据

仪表盘和报表在开源控制台的设计器中打开——你点出来的东西,存下来就是 Agent 写的那种可审阅定义。

仪表盘设计器

在网格画布上点一个小部件,检查器随即打开——标题、图表类型、数据绑定;从 10+ 种类型里添加新部件——设计过程中图表渲染的就是真实数据。

报表设计器

分节式版面——报表头、明细、分组与页脚——把文本、字段、图表、表格元素摆上画布,预览开关随时检查产出。

下钻到记录

开了 drilldown 的报表,审阅者点一下 MRR 数字就落到背后那批订阅上——下钻路上权限照常生效。

一个数据集喂饱所有

设计器把小部件绑定到数据集而不是裸表——仪表盘、报表和 AI 回答共用同一个"收入"的定义。

治理是设计出来的

报表尊重的是应用同一套权限

因为分析跑在运行时内部,权限模型不是事后补丁——它就是执行路径。

权限感知的结果

大区经理的仪表盘只聚合他大区的行;脱敏字段永远不会漏进图表或导出。

AI 与人同一套规则

AI Ask 在与每块仪表盘相同的权限内回答——聊天答案绝不会比屏幕多露一行。

没有导出漂移

报表读的是实时对象而不是过期副本——会上的数字就是系统里的数字。

决策面

改什么、谁来审、跑什么

业务需求AI 编写运行时供给
按套餐、按月看 MRR一个带度量与维度的数据集编译的查询、图表与缓存
运营仪表盘加一张 KPI 卡什么都不用写——在设计器里点出来小部件检查器、实时数据、存为元数据
按阶段看转化一张按阶段字段的汇总报表阶段间计算与趋势
问 AI"三季度收官如何?"不用新写——数据集就够了同样受治理的数字,在聊天里

评审清单

分析评审应确认

  • 关键度量在数据集里定义一次,而不是每张图各定义一份。
  • 仪表盘继承行级与字段级权限。
  • 时间序列使用一致的时区与日历。
  • AI 回答与报表解析到同一份定义。
  • 没有任何管道把数据导出到治理更弱的副本。

FAQ

这一页应该回答的问题

这会取代我们的 BI 工具吗?

对业务对象上的运营报表,你不再需要一套独立栈:仪表盘、漏斗和时间序列都跑在平台内。跨系统的数据仓库场景 ObjectOS 与之共存——联邦与 API 让受治理对象很容易被消费。

仪表盘和报表设计器在开源版里吗?

在。小部件式仪表盘设计器、分节式报表设计器、下钻、聚合、时间序列、漏斗与语义数据集都是开源运行时的一部分,权限执行与平台其他部分完全一致。

下一步

继续完善你的评估材料。