跳到主要内容

Object Model

Open Insight 会把数据平台中的元信息保存成本地文件。这样做的目标是让人和 Agent 都能方便地阅读、对比、编辑、校验和同步这些信息。

文件规则

  • 外部系统对象使用 YAML。
  • 本地数据集、业务描述、领域上下文、术语解释和 Agent 工作说明使用 Markdown。
  • YAML 文件最小身份字段为 apiVersionkindidtitle
  • 对象 id 必须稳定、适合路径使用,并且在一个数据分析库内具备全局含义。
  • 远端系统 id 属于连接器细节,应通过 remoteId 独立保存,不应直接作为本地对象 id。
  • source 保存对象来源平台、系统对象和拉取时间。
  • 平台特有字段放入 extensions.<platform>

数据分析库目录

default/
.open-insight.json
source/
systems/
clusters/
tables/
users/
tasks/
taskruns/
datasets/
knowledge/
domain.md
glossary.md
skills/

project 根目录 .open-insight.json 是当前 project 的本地连接配置,记录 provider、endpoint 和 token。各类数据对象位于同一个 <project>/ 下,不同 project 可以使用不同的连接上下文。

source/ 表示从源站同步过来的元数据:

  • source/systems/:外部系统配置。
  • source/clusters/:计算集群或查询引擎。
  • source/tables/:数仓表。
  • source/tasks/:调度任务定义(Task),上游血缘内联在 lineage 字段。
  • source/taskruns/:调度实例(由 taskrun list 同步,按日期/小时分桶存放 instances.json)。
  • 预策用户(User):由 user list 实时查询远端,不写入本地缓存。
  • 基线定义(Baseline):由 baseline list 实时查询远端,不写入本地缓存。
  • 基线实例(BaselineInstance):由 baseline-instance list --date 实时查询远端,不写入本地缓存。

datasets/ 表示本地维护的权威数据集。knowledge/ 表示业务知识。skills/ 表示 Agent 技能和工作流。

System

系统对象描述远端产品和连接引用,存放于 source/systems/。密钥不能写入 YAML。

apiVersion: open-insight/v1alpha1
kind: System
id: system.yuce
title: 预策数据平台
owner: data-team
tags:
- yuce
systemType: other
vendor: yuce
connectionRef: .open-insight.json:providers.yuce

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 SystemSystem
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$system.yuce
title展示名称非空字符串预策数据平台
description对象说明字符串企业数据平台连接
owner负责人否(默认 unknown非空字符串data-team
tags标签否(默认 []字符串数组yuce
remoteId远端系统 id字符串sys_001
source.platform来源平台非空字符串yuce
source.systemId来源系统 id稳定、路径安全的 idsystem.yuce
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值
createdAt创建时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemType系统类型warehouse | orchestrator | bi | otherother
vendor厂商/产品非空字符串yuce
connectionRef连接配置引用字符串.open-insight.json:providers.yuce

Cluster

集群对象描述背后的计算引擎或查询引擎,存放于 source/clusters/。表对象可以通过 clusterId 关联到具体集群。

apiVersion: open-insight/v1alpha1
kind: Cluster
id: cluster.yuce.default
title: 预策默认 StarRocks 集群
owner: data-team
tags:
- yuce
- starrocks
systemId: system.yuce
engineType: starrocks
extensions:
yuce:
nodeId: ""

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 ClusterCluster
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$cluster.yuce.default
title展示名称非空字符串预策默认 StarRocks 集群
description对象说明字符串默认查询集群
owner负责人否(默认 unknown非空字符串data-team
tags标签否(默认 []字符串数组starrocks
remoteId远端系统 id字符串cluster_001
source.platform来源平台非空字符串yuce
source.systemId来源系统 id稳定、路径安全的 idsystem.yuce
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值yuce.nodeId
createdAt创建时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemId所属系统稳定、路径安全的 idsystem.yuce
engineType引擎类型非空字符串starrocks

Table

表对象描述来自 Databricks、MySQL、StarRocks、预策或未来其他数仓产品的物理表或逻辑表,存放于 source/tables/

apiVersion: open-insight/v1alpha1
kind: Table
id: table.starrocks.ads.sales_orders
title: ads.sales_orders
owner: data-team
tags:
- sales
systemId: system.starrocks
clusterId: cluster.starrocks.default
database: analytics
schema: ads
table: sales_orders
tableType: table
columns:
- name: order_id
type: varchar
nullable: false
description: 稳定的订单 id。
tags:
- primary_key

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 TableTable
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$table.starrocks.ads.sales_orders
title展示名称非空字符串ads.sales_orders
description对象说明字符串销售订单表
owner负责人否(默认 unknown非空字符串data-team
tags标签否(默认 []字符串数组sales
remoteId远端系统 id字符串tbl_001
source.platform来源平台非空字符串yuce
source.systemId来源系统 id稳定、路径安全的 idsystem.starrocks
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值
createdAt创建时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemId所属系统稳定、路径安全的 idsystem.starrocks
clusterId所属集群稳定、路径安全的 idcluster.starrocks.default
database数据库名非空字符串analytics
schemaSchema 名非空字符串ads
table表名非空字符串sales_orders
tableType表类型否(默认 unknowntable | view | materialized_view | external | unknowntable
columns列定义否(默认 []columns[]

columns[]

字段含义必填规范案例
name列名非空字符串order_id
type列类型非空字符串varchar
nullable是否可空布尔false
description列说明字符串稳定的订单 id。
tags列标签否(默认 []字符串数组primary_key

Task

任务对象描述来自 Airflow、DolphinScheduler、预策调度或未来其他调度引擎的数据加工任务,存放于 source/tasks/inputsoutputs 用于表达粗粒度血缘;完整上游血缘保存在 lineage 字段。

apiVersion: open-insight/v1alpha1
kind: Task
id: task.airflow.sales_orders_daily
title: sales_orders_daily
owner: data-platform
tags:
- sales
systemId: system.airflow
schedule: 0 3 * * *
status: enabled
templateCode: tpl_sales_daily
templateName: 销售日同步模板
inputs:
- table.mysql.ods.orders
outputs:
- table.starrocks.ads.sales_orders
lineage:
maxLevel: 1
upstreamTaskCodes:
- ods_orders_sync
lineageNodes: []
dependencies: []
groups: []

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 TaskTask
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$task.airflow.sales_orders_daily
title展示名称非空字符串sales_orders_daily
description对象说明字符串每日销售订单同步
owner负责人否(默认 unknown非空字符串data-platform
tags标签否(默认 []字符串数组sales
remoteId远端系统 id字符串task_001
source.platform来源平台非空字符串yuce
source.systemId来源系统 id稳定、路径安全的 idsystem.airflow
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值
createdAt创建时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemId所属系统稳定、路径安全的 idsystem.airflow
schedule调度表达式字符串0 3 * * *
status任务状态字符串enabled
templateCode模板编码字符串tpl_sales_daily
templateName模板名称字符串销售日同步模板
inputs输入对象否(默认 []稳定 id 数组table.mysql.ods.orders
outputs输出对象否(默认 []稳定 id 数组table.starrocks.ads.sales_orders
lineage上游血缘lineage

lineage

字段含义必填规范案例
maxLevel血缘层级上限数字1
upstreamTaskCodes上游任务编码否(默认 []字符串数组ods_orders_sync
lineageNodes血缘节点平台相关结构,由连接器填充[]
dependencies依赖关系平台相关结构,由连接器填充[]
groups分组信息平台相关结构,由连接器填充[]

User

用户对象描述预策账号。CLI 通过 openinsight user list 直接查询远端,不写入本地缓存。

apiVersion: open-insight/v1alpha1
kind: User
id: user.yuce.u_001
title: 张三
owner: unknown
tags:
- yuce
remoteId: u_001
systemId: system.yuce
username: zhangsan
name: zhangsan
displayName: 张三
email: zhangsan@example.com
department: 数据平台
status: ACTIVE

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 UserUser
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$user.yuce.u_001
title展示名称非空字符串张三
owner负责人否(默认 unknown非空字符串unknown
tags标签否(默认 []字符串数组yuce
remoteId远端用户 id字符串u_001
source.platform来源平台非空字符串yuce
source.systemId来源系统 id稳定、路径安全的 idsystem.yuce
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值yuce.userId
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemId所属系统稳定、路径安全的 idsystem.yuce
username登录名/用户名非空字符串zhangsan
name预策原始 name 字段字符串zhangsan
displayName展示名字符串张三
email邮箱字符串zhangsan@example.com
department部门字符串数据平台
status状态字符串ACTIVE

Baseline

基线对象描述预策平台上的数据产出承诺。CLI 通过 openinsight baseline list 直接查询远端,不写入本地缓存。

apiVersion: open-insight/v1alpha1
kind: Baseline
id: baseline.yuce.core_daily
title: 核心日报
owner: data-team
tags:
- yuce
remoteId: b1
systemId: system.yuce
status: ACTIVE
promiseTime: "08:00:00"
taskIds:
- task.yuce.job1

字段说明

字段含义必填规范案例
kind对象类型固定 BaselineBaseline
systemId所属系统稳定、路径安全的 idsystem.yuce
status基线状态字符串ACTIVE
promiseTime承诺产出时间字符串08:00:00
taskIds关联调度任务否(默认 []稳定 id 数组task.yuce.job1

BaselineInstance

基线实例表示某业务日期下的一条基线运行记录。CLI 通过 openinsight baseline-instance list --date 直接查询远端,不写入本地缓存;列表展示会包含关联调度实例数量。

apiVersion: open-insight/v1alpha1
kind: BaselineInstance
id: baseline-instance.yuce.bi-1
title: 核心日报
owner: data-team
remoteId: bi-1
systemId: system.yuce
baselineId: baseline.yuce.b1
baselineDate: "2026-07-13"
status: SAFE
completed: false
promiseTime: "08:00:00"
actualTime: "07:58:00"
taskInstances:
- instanceId: i-1
taskCode: job1
instanceStatus: SUCCESS

字段说明

字段含义必填规范案例
kind对象类型固定 BaselineInstanceBaselineInstance
systemId所属系统稳定、路径安全的 idsystem.yuce
baselineId关联基线稳定、路径安全的 idbaseline.yuce.b1
baselineDate业务日期YYYY-MM-DD2026-07-13
status实例状态SAFE / WARNING / BROKEN_LINE / OTHERSAFE
completed是否完成布尔值false
promiseTime承诺产出时间字符串08:00:00
actualTime实际产出时间字符串07:58:00
taskInstances关联调度实例否(默认 []预策原始实例记录数组见示例

Dashboard

仪表盘用于组织图表。预策仪表盘通过 dashboard list/get 实时查询,不写入本地缓存。

apiVersion: open-insight/v1alpha1
kind: Dashboard
id: dashboard.quickbi.sales_overview
title: 销售概览
owner: bi-team
tags:
- sales
systemId: system.quickbi
remoteId: "dash_001"
charts:
- chart.quickbi.sales.revenue_trend

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 DashboardDashboard
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$dashboard.quickbi.sales_overview
title展示名称非空字符串销售概览
description对象说明字符串销售核心指标看板
owner负责人否(默认 unknown非空字符串bi-team
tags标签否(默认 []字符串数组sales
remoteId远端仪表盘 id字符串dash_001
source.platform来源平台非空字符串quickbi
source.systemId来源系统 id稳定、路径安全的 idsystem.quickbi
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值
createdAt创建时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemId所属系统稳定、路径安全的 idsystem.quickbi
charts包含图表否(默认 []Chart id 数组chart.quickbi.sales.revenue_trend

Chart

图表保存查询逻辑或语义映射定义。预策图表通过 chart list/get 实时查询,不写入本地缓存。

apiVersion: open-insight/v1alpha1
kind: Chart
id: chart.quickbi.sales.revenue_trend
title: 收入趋势
owner: bi-team
tags:
- sales
systemId: system.quickbi
dashboardId: dashboard.quickbi.sales_overview
remoteId: "123456"
chartType: line
datasetId: dataset.sales.orders
query:
sql: |
select dt, sum(revenue) as revenue
from ads.sales_orders
group by dt
dimensions:
- name: dt
fieldId: dt
dataType: date
role: dimension
measures:
- name: revenue
fieldId: revenue
aggregation: sum
dataType: decimal
- name: revenue_day_growth
fieldId: revenue_day_growth
aggregation: sum
comparison:
type: BASE_CONTRAST
timeFieldId: dt
timeFieldName: dt
timeCalPeriod: DAY
comparePeriod: DAY
growthValueType: CONTRAST_GROWTH_VALUE
filters:
- name: region
fieldId: region
operator: IN
values:
- 华东
- 华南

字段说明

字段含义必填规范案例
apiVersionAPI 版本固定 open-insight/v1alpha1open-insight/v1alpha1
kind对象类型固定 ChartChart
id本地稳定标识稳定、路径安全的 id;正则 ^[a-zA-Z0-9][a-zA-Z0-9._:-]*$chart.quickbi.sales.revenue_trend
title展示名称非空字符串收入趋势
description对象说明字符串按日收入趋势图
owner负责人否(默认 unknown非空字符串bi-team
tags标签否(默认 []字符串数组sales
remoteId远端图表 id字符串123456
source.platform来源平台非空字符串quickbi
source.systemId来源系统 id稳定、路径安全的 idsystem.quickbi
source.pulledAt拉取时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
extensions平台扩展字段否(默认 {}extensions.<platform> 键值
createdAt创建时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
updatedAt更新时间ISO 8601 日期时间2026-06-04T00:00:00.000Z
systemId所属系统稳定、路径安全的 idsystem.quickbi
dashboardId所属仪表盘稳定、路径安全的 iddashboard.quickbi.sales_overview
chartType图表类型非空字符串line
query查询逻辑对象;推荐 query.sql 保存 SQL。兼容历史字符串格式query.sql: select dt...
datasetId关联数据集稳定、路径安全的 iddataset.sales.orders
dimensions维度字段否(默认 []对象数组;兼容历史字符串数组{ name: dt, fieldId: dt }
measures度量字段否(默认 []对象数组;兼容历史字符串数组;可包含 comparisonproportionformat{ name: revenue, aggregation: sum }
measures[].comparison同比/环比等对比配置对象{ comparePeriod: DAY }
measures[].proportion占比配置对象{ type: COLUMN_TOTAL }
measures[].format数值格式对象{ round: 1 }
filters过滤条件否(默认 []对象数组{ name: region, operator: IN }

Dataset

数据集是本地维护的语义契约,存放于 <project>/datasets/<dataset>.md。文件名即数据集 id,正文用 Markdown 描述业务口径与用法。它可以由 Agent 生成,由人 Review 和修改,并在后续作为 BI 推送流程的输入。

# [领域] 销售订单

## 快速参考
### 业务上下文 — 订单粒度的销售数据集
### 实体粒度 — [一行代表什么]
### 标准过滤条件 — [该领域每个查询都需要应用的过滤器]

## 维度
- [关键维度的编码方式,以及同一个概念在不同表里的不同命名]

## 关键数据表
### [表名]
- **粒度**:[...] · **范围/排除**:[...]
- **使用场景**:[什么时候用、什么时候不用、JOIN键、必须应用的过滤器]

## 注意事项
- [资深分析师会提醒你的那些容易踩坑的地方]

## 最佳实践 / 常见查询模式
- [默认选择、标准切分、查询形式本身就是难点的典型模式]

## 交叉引用
- [负责相邻问题的其他领域文档]

约定

说明
路径<project>/datasets/<id>.md
id取自文件名(不含 .md
title取自正文首行标题
业务上下文取自 ### 业务上下文 — ...

业务上下文

当内容以自然语言说明为主时,使用 Markdown 更合适。

推荐文件:

  • <project>/knowledge/domain.md:业务域背景、口径、分析场景。
  • <project>/knowledge/glossary.md:术语和指标解释。
  • <project>/datasets/<dataset>.md:数据集的长描述、使用建议、限制说明。
  • <project>/skills/<workflow>.md:面向 Agent 的工作流说明。

连接器边界

连接器负责在远端 API 对象和 Open Insight 本地 YAML 对象之间做转换。远端 API 的原始结构不应泄漏到本地对象模型中,除非是明确设计过的字段,例如 remoteIdsystemId,或未来可能新增的 extensions 字段。