1. 概述
业务集市作为数据接入和可视化展示的中间环节,为用户提供了新建模型、数据查看、数据加工、共享复用等能力,为后续可视化展示提供有效的数据支撑。
让不会写SQL代码的业务人员能够低成本地完成数据生产处理工作,极大降低用户使用门槛;同时,用户也可以使用其他人创建的业务模型配置图表,帮助企业提升数据资源的流转效率。
2. 创建业务模型
根据业务诉求,支持用户创建多种来源的业务模型,主要分为以下三类,各来源业务模型的新建流程详见:
3. 查看业务模型
业务模型的详情页是该模型的只读状态,用户可在业务集市及可视化层通过详情页查看业务的详细数据,以及做有限的(在选定条件范围内的)过滤分析操作。
回看态实际包括了以下四个部分,满足在一定限制的情况下支持看数场景的快速渲染的能力。
- 通用功能区
- 分析配置区
- 数据筛选区
- 图表展示区

3.1. 通用功能区
通用功能区域是页面的通用框架,业务集市中所有模型的通用信息与功能都收纳在此区域,如下图所示:

详细功能描述请参考下表:
| 名称 | 功能 |
---|
1 | 配置图表 | 使用此业务模型配置去配置图表,可选择配置到「已有报表」或「新报表」中,详情请参考:制作图表 |
2 | 计算列 | 对此模型数据的二次加工,对已有字段的补充,详情请参考:新建计算列 |
3 | 更多 - 查看配置
- 删除
| - 查看/编辑此业务模型的配置信息
包括:基础信息、业务设置、更新设置、权限设置等 - 删除报表时候展示此业务模型的应用关系
包括:报表名称、图表名称、操作人账户
|
4 | 前往分析模型 | 携带此业务模型的提数规则返回分析模型重新发起查询的快捷路径 |
5 | 编辑业务模型 | 重新编辑更新此业务模型的查询规则,详情请参考:编辑业务模型 |
6 | 业务模型状态信息与管理者 | 展示当前数据的更新状态与协同管理者信息 |
7 | 模式切换 | 在查看主模型的同时,支持查看结果表模式,详情请参考:结果表详情页 同时可使用结果表模式进行数据模型的拼接,详情请参考:数据加工-模型拼接 |
3.2. 分析配置区
分析配置区展示此模型的查询规则,包括保存时快照的数据约束情况,如下图:

详细功能描述请参考下表:
| 名称 | 功能 |
---|
1 | 指标 | 此业务模型中包含的全部指标与自定义指标的集合 |
2 | 分组 | 此业务模型中按「事件属性、用户属性、用户标签、用户分群」等分类展示项的集合 |
3 | 展示项 | 控制此业务模型中「指标」或「分组」在数据展示区域的展示与隐藏 |
4 | 全局筛选 | 此业务模型提数规则中对全局信息的筛选过滤条件 |
5 | 时间粒度 | 时间维度的聚合粒度 |
6 | 其他配置 | 包括分析的主体、分析所在的时区等 |
7 | 数据约束 | 受控于该模型创建时,创建人的元数据权限限制 事件表与用户表数据权限取交集,不允许使用「用户表」中无权限的用户对应的事件 |
3.3. 数据筛选区
数据筛选区可对当前模型下的数据进行筛选过滤后展示,同时展示当前用户的数据权限,如下图:

详细功能描述请参考下表:
| 名称 | 功能 |
---|
1 | 数据权限 | 显示当前用户在查看此业务模型受到的数据权限控制 |
2 | 数据更新时间 | 业务模型数据的更新时间 |
3 | 预置合计范围 | 合计模式时,显示当前模型合计结果的去重窗口 |
4 | 数据合计开关 | 控制当前业务模型展示的是明细数据结果,还是合计后的数据。 |
5 | 数据筛选项 | 对业务模型的时间、分组值、指标值的数据展示效果进行筛选、过滤 |
3.4. 图表展示区
图表展示区对筛选作用后的数据用图表的形式展示出来,同时当前查看人受到当前业务模型被分配的查看权限限制,如下图:

详细功能描述请参考下表:
| 名称 | 功能 |
---|
1 | 图表功能 | 当前图形下支持的功能;例如:收起时间、展示增长率等 |
2 | 数据导出 | 受数据导出的权限点控制,支持导出用户数据权限范围内的 Excel 数据 |
3 | 图表切换 | 可切换为其他的图表展现形式;根据业务模型的来源不同,支持的图表类型也不同 |
4 | 数据展示 | 此区域展示的数据范围受控于当前用户的数据权限限制 |
3.5. 结果表详情页
每个分析模型,系统按照时间维度的向量压缩,提供一份时间明细下的结果表,可自由切换查看,此结果表按业务模型的分析粒度进行存储;
例如,事件分析模型按天分析,则结果表按天进行数据的拆解存储,如下图:
结果表常见场景为,可视化的拖拽分析使用,实现分析模型结果接入BI的灵活分析,以及实现多个业务模型结果表的融合拼接使用,做多个分析模型的效果拉通分析
4. 数据加工
已有的数据中缺少分析所需的数据,需要对数据进行二次加工;
例如:用户想要判断当前的合同金额属于「大订单」还是「小订单」,但是现在的数据中并没有该类型的字段。
例如:当前模型中的字段名称不符合业务使用诉求,想修改成其他的名字进行展示。
4.1. 计算字段
业务集市的「计算字段」提供了添加计算字段的功能,实现对已存在的字段再计算的能力,从而可以得到新的字段,可以方便实现目标字段。支持添加维度计算字段和指标计算字段。
例如:用户使用计算字段增加一个新的维度字段,当「合同金额」大于1000000 时是大订单。
4.1.1. 支持类型
以下来源的业务模型支持新建计算字段的能力,支持范围如下:
- 指标分析
- 事件分析
- session分析
- 漏斗分析-结果表模式
- 留存分析-结果表模式
- session分析-结果表模式
- 自定义查询
- 数据表
4.1.2. 添加入口
计算列的添加入口如下图所示:
- 业务模型详情页展示「计算字段」入口;
- 此功能受「管理权限」控制,需要有当前模型的协同管理权限,才支持使用此功能。

4.1.3. 管理计算字段
进入计算字段的页面后,可对当前的计算字段进行管理:
- 搜索:支持对计算列的名称进行搜索,快速定位目标的计算字段;
- 新建:支持新建,每个模型有新建的个数限制,如有需要,可联系运维调整个数限制;
- 计算列名称:当前计算字段的名称,每个模型中的计算字段不可重复
- 类型:该计算字段的类型
- 操作-编辑:进入该计算字段的编辑界面,修改该字段的名称、函数、语句等
操作-删除:删除此字段

4.1.4. 编辑计算字段
进入计算字段的编辑界面,界面介绍如下:
- 编辑/修改计算字段名称;
- 快捷添加常用的运算符;
- 公式输入区;
- 计算列支持的函数;
- 该模型中的基础字段与计算字段;
- 函数或字段解释区,支持解析当前语句是否正确,并展示语句错误原因。

4.1.5. 函数组成
函数计算由4个部分组成:
| 内容 | 说明 |
---|
1 | 函数 | 用于对字段中的值或内容进行转换的语句 |
2 | 字段 | 用户数据表中的维度或指标 |
3 | 运算符 | 指明运算的符号 |
4 | 文本表达式 | 按照写入内容表示的常量值 |
例如,假设有以下计算:IF(合同金额>2000,"大订单","小订单");对应计算内容如下所示:
| 内容 | 说明 |
---|
1 | 函数 | IF |
2 | 字段 | 合同金额 |
3 | 运算符 | > |
4 | 文本表达式 | - 字符串文本:"大订单"、"小订单"
- 数字文本:2000
|
4.1.6. 函数格式与支持清单
函数在使用的过程中需要满足目标格式,例如下图:

区域1 是函数名称,区域2是参数数据类型,隐含返回的数据类型,主要函数说明如下
函数分类 | 函数名称 | 语法说明(界面名称语法备注区域) | 参数数据类型 | 返回数据类型 |
---|
聚合函数 | SUM | sum(number) 返回表达式中所有值的总和 示例: sum([sales]) | number | number |
聚合函数 | AVG | avg(number) 返回表达式中所有值的平均值 示例: avg([sales]) | number | number |
聚合函数 | COUNT | count(exp) 返回表达式中所有值的计数 示例: count([id]) | number; string; datetime; (bool) | number |
聚合函数 | DISTINCT COUNT | distinctcount(exp) 返回表达式中所有值的去重计数 示例: distinctcount([userid]) | number; string; datetime; (bool) | number |
聚合函数 | MAX | max(exp) 返回表达式中所有值的最大值 示例: max([sales]) | number | number |
聚合函数 | MIN | min(exp) 返回表达式中所有值的最小值 示例: min([sales]) | number | number |
逻辑函数 | CASE | case <expr> when <value1> then <return1> when <value2> then <return2> ... [else <else>] end 执行逻辑测试并返回相应的值。case 函数可评估 expr,并将其与一系列值(value1、 value2 等)比较,然后返回结果。 case when <condition1> then <return1> when <condition2> then <return2> ... [else <else>] end:执行逻辑测试并返回相应的值。case 函数根据 condition 执行为 true,返回结果。 示例: case when [City]="上海" then [City] else null end |
| 根据exp而定 |
逻辑函数 | WHEN | case <expr> when <value1> then <return1> when <value2> then <return2> ... [else <else>] end 执行逻辑测试并返回相应的值。case 函数可评估 expr,并将其与一系列值(value1、 value2 等)比较,然后返回结果。 case when <condition1> then <return1> when <condition2> then <return2> ... [else <else>] end:执行逻辑测试并返回相应的值。case 函数根据 condition 执行为 true,返回结果。 示例: case when [City]="上海" then [City] else null end |
| 根据exp而定 |
逻辑函数 | THEN | case <expr> when <value1> then <return1> when <value2> then <return2> ... [else <else>] end 执行逻辑测试并返回相应的值。case 函数可评估 expr,并将其与一系列值(value1、 value2 等)比较,然后返回结果。 case when <condition1> then <return1> when <condition2> then <return2> ... [else <else>] end:执行逻辑测试并返回相应的值。case 函数根据 condition 执行为 true,返回结果。 示例: case when [City]="上海" then [City] else null end
|
| 根据exp而定 |
逻辑函数 | ELSE | case <expr> when <value1> then <return1> when <value2> then <return2> ... [else <else>] end 执行逻辑测试并返回相应的值。case 函数可评估 expr,并将其与一系列值(value1、 value2 等)比较,然后返回结果。 case when <condition1> then <return1> when <condition2> then <return2> ... [else <else>] end:执行逻辑测试并返回相应的值。case 函数根据 condition 执行为 true,返回结果。 示例: case when [City]="上海" then [City] else null end |
| 根据exp而定 |
逻辑函数 | OR | case when <expr1> or <expr2> then <then1> [else <else>] end 对两个表达式执行或者的条件判断。 示例: case when ([Sales] < 0 or [Sales] = 0) then "没有盈利" else "盈利良好" end | 无 |
|
逻辑函数 | AND | case when <expr1> and <expr2> then <then1> [else <else>] end 对两个表达式执行并且的条件判断。 示例: case when(['Profit'] >100 and ['Profit'] <500) then "一般盈利" else "盈利未知" end |
|
|
逻辑函数 | IIF | iif(condition, true,false) 检查某个条件是否得到满足,如果为 true 则返回一个值,如果为 false 则返回另一个值。 示例: iif (sales>6,1,0),如果此列销售额的值大于6就返回1,否则返回0 | bool,exp1,exp2 | number string datetime (bool) |
逻辑函数 | IFNULL | ifnull(expr1, expr2) 如果 <expr1> 不为 null,则返回该表达式expr1,否则返回 <expr2>。 示例: ifnull([Profit], 0) | 表达式 | 表达式1 或者 表达式2 |
4.1.7. 使用计算字段
完成计算列的创建后,可在详情页界面预览使用,如下图所示:
- 指标类型的计算字段在指标「展示项」中设置;
- 维度/分组类型的计算字段在维度/分组的「展示项」中设置;
- 确认勾选后,在右侧数据展示区即可预览目标计算字段。

4.2. 修改显示名
原始字段的名称不满足业务使用诉求时,可在业务集市中对「字段显示名」进行修改;显示名默认为「字段名称」,修改显示名后,所有使用了该业务模型的报表都会统一展示修改后的字段名。
例如:上传的数据表中包含「Country」「City」字段,但是配置报表时想展示成「国家」「城市」,就可在业务集市的详情页修改对应字段的显示名。
4.2.1. 支持类型
在业务集市中,以下来源的业务模型支持在详情页中对显示名称进行修改,后续会初步完善统一此功能。
4.2.2. 操作入口
在业务模型的详情页中,进入「字段信息」tab页面下,展示当前模型中的字段名称、字段显示名称、字段类型等信息。「字段显示名」列中,可以对某字段显示名进行修改,如下图:

4.2.3. 展示显示
字段名称修改后,业务集市详情页以及后续的可视化配置与查看过程,都统一使用修改后的显示名进行展示。
5. 编辑业务模型
5.1. 编辑入口
支持对已经创建并使用的业务模型进行编辑,快速修改业务模型的提数规则,免去新建的流程,使业务模型能更加快速满足业务响应。
编辑入口在详情页通用功能区域的右上角,如下图所示:

5.2. 编辑校验
业务模型在保存时,对当前创建人的权限约束做了权限快照,例如:事件属性、用户属性、维度、指标等。
在从详情页返回分析模型进行编辑时,如果该用户当前的数据约束与之前创建时镜像的约束条件存在不同,会在触发「编辑业务模型」时进行校验提醒,避免误操作。如下图:

5.3. 保存编辑
从详情页返回到分析模型进行查询语句的修改后,可以重新更新历史业务模型,也可另存为新的业务模型。
- 另存为:同新建业务模型的步骤与逻辑相同,详情请参考:新建业务模型
- 更新:在历史业务模型的基础上,更新查询语句;
5.3.1. 更新查询语句
从业务模型返回至分析模型重新编辑时,会进行查询语句的校验判断,会分为两种情况:
- 情况一:查询条件发生了变化:
- 情况二:查询条件没有发生变化:
情况一:查询条件发生了变化:
- 步骤一:点击「更新」后,出现「更新确认」的弹窗提醒,提醒您“更新后可能会影响已经配置的可视化图表,是否继续更新”,如下图所示

- 步骤二:确认更新后,会触发「更新配置确认」的信息,对已有历史数据的备份处理进行设置。
- 覆盖:将根据新的查询条件适配已有的可视化配置,历史数据不保留
- 更新并备份历史数据:保留历史数据,迁移至下方的业务模型备份存储

情况二:查询条件没有发生变化::查询条件没有发生变化:
- 步骤一:点击「更新」
- 步骤二:无「更新配置确认」的弹窗设置,直接进行后续配置信息的设置
5.3.2. 更新配置信息
上述两种情况在「确认更新」后,都会进入配置信息的设置界面,在此抽屉内您可继续对当前模型的基础信息、业务设置、更新方式、权限设置等一些列配置项进行更新修改,如下图:

5.3.3. 配置执行时间
完成该模型所有配置信息的设置后,「保存」进业务集市时配置本次查询更新的执行时间,支持两种方式,如下图:
- 立即执行:返回业务集市时,立即执行此次查询更新
- 指定执行时间:在指定的时间点进行更新任务,可选择的时间范围同时满足 24 小时以内且下次例行调度任务之前,无可用时间时不支持使用此项配置

即可返回业务集市,等待修改编辑后模型更新即可,如下图:
