创建物化方案
概述
物化方案用于提升指标查询性能。通过将计算结果预先生成并存储为物化表,可以减少实时查询的计算压力,提升响应速度。系统支持三种模式:
-
加速物化:生成指标+维度方案,支持维度上卷。
-
普通物化-常规模式:结构简单,适合固定报表或单一维度组合场景。
-
普通物化-CUBE模式:支持多维度交叉组合和层级汇总。
用户可根据业务场景选择不同模式来构建物化表。
一、物化加速
1.概述
加速物化是一种面向核心指标的性能优化方案。
系统会提前生成指标+维度组合的结果表,并支持维度逐级上卷,从而显著减少实时查询的计算压力,提升响应速度。
适用场景:
-
高频访问的核心指标(如销售额、活跃用户数)。
-
需要跨维度对比或逐级汇总的业务报表。
-
查询性能和稳定性要求较高的关键业务分析场景。
2.内容配置

| 配置项 | 说明 |
| 基本信息 | -展示名:方案在前端界面展示的名称,便于检索与识别。-系统名称:系统内部唯一标识,用于生成对应的物化表。 |
| 指标与维度 | -支持选择多个指标与维度组合,系统会自动进行合法性校验。-指标可选平台内任意已授权指标。 |
| 指标日期范围筛选 | -支持限制指标的数据时间范围,例如:近7天、近30天、按日/周/月。 |
| 数据筛选 | -可基于公共维度(如区域、门店、业务线)进行数据过滤。 |
| 物化表存储设置 | -分区字段:通常选择指标日期字段,确保数据可按时间增量更新。-分桶字段:可选择高基数字段(如用户ID、门店ID)作为分桶键,减少数据倾斜。 |
3.调度配置

| 配置项 | 说明 |
| 更新内容 | -全量更新:以调度时间点T为基准,覆盖生成物化数据。-增量更新:基于上游表的分区更新时间,仅更新最新分区。 |
| 更新周期 | -定时更新:在固定时间执行,如每天08:00。-依赖触发更新:当上游依赖表完成更新后自动触发。 |
| 高级设置 | 支持配置失败处理策略:-失败重试次数 |
| 通知配置 | -可设置任务成功/失败提醒。-建议关键业务任务开启通知,确保异常能第一时间发现,以及提醒相关负责人 |
二、普通物化-常规模式
1. 概述
普通物化的 常规模式 适用于 固定报表、简单指标分析 的场景。
它会将指标计算结果在某一调度时刻固化下来,存储到物化表中,用于下游查询和 BI 展示。
典型应用场景:
-
每日/每月的业务快照报表,例如“日销售额报表”。
-
单维度或少量维度组合的指标固化,例如“按日期 × 城市统计销售额”。
-
指标结果需要长期保留,不希望随着源表更新而改变。
优势:
-
配置简单,操作直观。
-
结果固定,可追溯历史快照。
-
适合数据量中小、更新频率固定的场景。
2. 内容配置

| 配置项 | 说明 |
| 基本信息 | - 展示名:方案在前端界面展示的名称,方便用户识别。 |
| 指标列 | - 定义结果集展示的指标字段,例如“交易总额”、“欠款总额”。- 用户可选择多个业务指标。 |
| 维度列 | - 定义结果中的维度字段,例如“指标日期”、“城市”。 |
| 参数列 | - 参数列用于配置在任务执行过程中可动态替换的变量。通过参数化设置,可让物化方案在不同时间或场景下自动适配相应的数据范围 - 调度前 1 日(日):表示任务调度日期的前一天。若任务调度日期为 2025-10-21,则该参数取值为 2025-10-20 - 调度时间(日):表示任务调度日期(当天)。若任务调度日期为 2025-10-21,则该参数取值为 2025-10-21 - 调度时间(秒):表示任务调度时间的时间戳(秒级)。若任务调度日期为 2025-10-21,则该参数取值为 2025-10-21 - 数据写入时间(秒):表示数据写入存储表时的时间戳(秒级)。例如 2025-10-21 08:02:35 |
| 指标日期范围 | - 限制指标计算的数据范围,以调度时间(秒)作为基准时间。例如“近 30 天”、“近 7 天”。 |
| 结果筛选 | - 支持对结果设置条件过滤,例如“订单金额 > 100”。 |
| 返回行数 | - 可限制返回的行数: - 全部结果; - Top N 数据(如 Top10 城市)。 |
| 物化表存储设置 | - 分区字段:通常为参数列的调度日期,便于增量更新和覆盖。 - 分桶字段:可选,用于高基数字段(如门店 ID),优化大数据场景下的查询性能。 |
3. 调度配置

配置项说明
| 配置项 | 说明 |
| 更新周期 | - 定时更新:在指定时间点定时执行(可配置“每日/每周/每月 + 时分”)。 - 不更新:物化表不会主动进行数据更新,需要使用数据回补功能更新数据。 |
| 高级设置 | - 可配置失败重试策略。 |
| 通知设置 | - 支持配置任务结果推送,包含: - 更新成功 - 更新失败 - 延迟更新- 用户可选择是否启用对应通知。 |
| 推送渠道 | - 支持多种推送渠道: - 邮箱 - 企业微信机器人 - 其他定制化接口(如飞书)。 |
| 接收用户 | - 可配置一个或多个接收用户,接收通知消息。 |
| 消息内容 | - 支持自定义消息内容: - 标题:任务结果的简要说明。 - 正文:可填写详细描述,支持超链接与参数占位符。 |
| 推送测试 | - 用户可在保存配置前进行“推送测试”,验证通知能否正常到达。 |
4. 示例说明
示例 SQL
select
{$调度日期} - 1 day as snapshot_date,
metric_time(day),
复合演示demo,
交易总额demo,
欠款总额demo
from ...
where metric_time <= {$调度日期}
and metric_time >= {$调度日期} - 29 day
group by metric_time(day);
示例结果表
| 调度日期(隐藏) | 调度日期 | 指标日期 | 指标1 | 数据插入时间 |
| 2025-09-19 | 2025-09-18 | 09-19 | 指标值 | 2025-09-19 00:00 |
| 2025-09-18 | 09-18 | 指标值 | 2025-09-19 00:00 | |
| 2025-09-18 | 09-17 | 指标值 | 2025-09-19 00:00 | |
| 2025-09-18 | 2025-09-17 | 09-18 | 指标值 | 2025-09-19 12:00 |
5. 使用建议
-
适用场景
-
周期性快照报表。
-
简单指标 + 维度组合。
-
需要历史结果长期保留的场景。
-
配置优化
-
返回行数适当控制,避免结果过大。
-
指标日期范围建议设置为近 30 天或更短,保证性能。
-
调度优化
-
数据全量重算 → 用覆盖更新。
-
数据分区逐日写入 → 用增量更新。
普通物化 - CUBE 模式
1. 概述
CUBE 模式是一种面向 多维度交叉分析 的高性能物化方式。
系统会在构建物化表时,基于选定的维度自动生成所有可能的组合(维度 CUBE),并为每个组合预先计算聚合结果。
这种模式适用于:
-
报表中需要多维度自由筛选、交叉分析的场景;
-
分析维度层次复杂(如区域、产品、渠道)的多角度汇总;
-
需要高性能支撑多维钻取的场景。
2. 内容配置

2.1 指标配置
| 配置项 | 说明 |
| 指标列 | - 选择需要进行聚合计算的指标字段,可选择多个。- 支持选择原子指标、派生指标、复合指标。 |
2.2 维度配置
维度配置是 CUBE 模式的核心逻辑,它决定了系统在物化构建时将生成哪些维度组合和聚合层级。
通过合理配置不同类型的维度,系统可以在计算时自动生成多层级的聚合结果,从而支持复杂报表的快速筛选与钻取。
一、维度配置的作用
在常规模式中,指标结果仅会按“选定维度组合”生成一份结果;
而在 CUBE 模式 下,系统会根据用户配置的维度类型自动生成所有维度的交叉组合(即 CUBE() 的数学笛卡尔组合),例如:
若有维度 A、B、C
则生成以下所有聚合层级:(A, B, C)、(A, B)、(A, C)、(B, C)、(A)、(B)、(C)、( )
二、维度类型详解
CUBE 支持四类维度,每种维度在计算时具有不同的组合方式与聚合层级控制逻辑。
1️⃣ 必选维度
| 特征 | 说明 |
| 必定参与所有聚合组合,不会被裁剪 | 通常用于“时间类维度”或必须存在的主分析维度。 |
| 不会因为其他维度被上卷而消失 | 确保所有聚合结果都有时间线或核心标识。 |
示例:
选择「日期」作为必选维度,其他维度可变化。
系统生成的组合会始终包含日期:
| 日期 | 地区 | 渠道 | 销售额 |
| 2025-09-18 | 华东 | 线上 | 1000 |
| 2025-09-18 | 华东 | TOTAL | 1800 |
| 2025-09-18 | TOTAL | TOTAL | 3500 |
2️⃣ 层级维度
| 特征 | 说明 |
| 具有父子层次结构的维度 | 如「大区 → 省份 → 城市」或「品类 → 子品类 → 商品」。 |
| 系统会自动计算每一层级的聚合结果 | 避免用户手动创建多个分组。 |
| 可同时选择多个层级字段 | 系统按从上至下顺序生成组合。 |
示例:
配置层级维度为「大区 → 省份 → 城市」:
| 生成层级组合 | 说明 |
| 大区 + 省份 + 城市 | 最细粒度明细 |
| 大区 + 省份 | 按省汇总 |
| 大区 | 按大区汇总 |
| TOTAL | 全部地区汇总 |
结果示例:
| 日期 | 大区 | 省份 | 城市 | 销售额 |
| 2025-09-18 | 华东 | 浙江 | 杭州 | 500 |
| 2025-09-18 | 华东 | 浙江 | TOTAL | 1500 |
| 2025-09-18 | 华东 | TOTAL | TOTAL | 2500 |
| 2025-09-18 | TOTAL | TOTAL | TOTAL | 8900 |
3️⃣ 关联维度
| 特征 | 说明 |
| 多个字段逻辑上绑定出现 | 系统会始终同时计算这些字段,不会拆开组合。 |
| 典型场景:主键与名称、编码与描述等 | 用于保证组合的语义一致性。 |
示例:
定义“关联维度组1”:
商品ID ↔ 商品名称
系统生成组合时,这两个维度始终同时出现:
| 日期 | 商品ID | 商品名称 | 销售额 |
| 2025-09-18 | P1001 | 手机 | 2000 |
| 2025-09-18 | P1002 | 耳机 | 600 |
| 2025-09-18 | TOTAL | TOTAL | 2600 |
4️⃣ 可选维度
| 特征 | 说明 |
| 系统会对所有可选维度进行笛卡尔组合 | 自动生成所有交叉聚合结果。 |
| 是 CUBE 模式的核心特征 | 支撑任意筛选、钻取分析。 |
| 可设置多个可选维度 | 每新增 1 个维度,组合数翻倍。 |
示例:
可选维度选择「渠道」「客户类型」「支付方式」
系统自动生成以下聚合组合:
| 维度组合 | 示例说明 |
| 渠道 + 客户类型 + 支付方式 | 线上-会员-支付宝 |
| 渠道 + 客户类型 | 线上-会员 |
| 客户类型 + 支付方式 | 会员-支付宝 |
| 渠道 | 线上 |
| 支付方式 | 支付宝 |
| TOTAL | 所有组合汇总 |
三、CUBE 维度完整示例
场景说明
| 配置类型 | 选择内容 | 说明 |
| 必选维度 | 日期 | 所有结果都必须包含日期 |
| 层级维度 | 省 → 市 | 系统自动生成省级、市级及上卷(TOTAL)层级 |
| 可选维度 | 渠道、客户类型 | 两个维度相互独立,系统会生成所有子集组合(2²=4) |
| 指标 | 销售额 | 聚合字段,用于结果展示 |
系统生成的组合规则
-
层级维度组合数:3(省、市、汇总TOTAL)
-
可选维度组合数:4(空集、渠道、客户类型、渠道+客户类型)
-
必选维度(日期)固定:1
-
最终组合数:3 × 4 × 1 = 12 种组合
全量组合清单
| 序号 | 日期(必选) | 层级组合 | 可选维度子集 | 最终维度组合结构 | 示例结果说明 |
| ① | 日期 | 省+市 | 空集 | 日期 + 省 + 市 | 每个城市的汇总数据 |
| ② | 日期 | 省+市 | 渠道 | 日期 + 省 + 市 + 渠道 | 每个城市 × 渠道 的销售额 |
| ③ | 日期 | 省+市 | 客户类型 | 日期 + 省 + 市 + 客户类型 | 每个城市 × 客户类型 的销售额 |
| ④ | 日期 | 省+市 | 渠道 + 客户类型 | 日期 + 省 + 市 + 渠道 + 客户类型 | 城市 × 渠道 × 客户类型 交叉汇总 |
| ⑤ | 日期 | 省(上卷) | 空集 | 日期 + 省 | 按省级汇总(不分渠道、不分客户类型) |
| ⑥ | 日期 | 省(上卷) | 渠道 | 日期 + 省 + 渠道 | 按省 × 渠道汇总 |
| ⑦ | 日期 | 省(上卷) | 客户类型 | 日期 + 省 + 客户类型 | 按省 × 客户类型汇总 |
| ⑧ | 日期 | 省(上卷) | 渠道 + 客户类型 | 日期 + 省 + 渠道 + 客户类型 | 省 × 渠道 × 客户类型 汇总 |
| ⑨ | 日期 | 上卷(TOTAL) | 空集 | 日期 | 全国汇总,不区分任何维度 |
| ⑩ | 日期 | 上卷(TOTAL) | 渠道 | 日期 + 渠道 | 按渠道汇总全国销售额 |
| ⑪ | 日期 | 上卷(TOTAL) | 客户类型 | 日期 + 客户类型 | 按客户类型汇总全国销售额 |
| ⑫ | 日期 | 上卷(TOTAL) | 渠道 + 客户类型 | 日期 + 渠道 + 客户类型 | 全国 × 渠道 × 客户类型 汇总 |
示例数据展示
以下是系统生成部分结果的示例(汇总值示意):
| 日期 | 省 | 市 | 渠道 | 客户类型 | 销售额 |
| 2025-09-18 | 浙江 | 杭州 | 线上 | 会员 | 1,200 |
| 2025-09-18 | 浙江 | 杭州 | 线下 | 会员 | 900 |
| 2025-09-18 | 浙江 | 杭州 | TOTAL | TOTAL | 3,000 |
| 2025-09-18 | 浙江 | TOTAL | TOTAL | TOTAL | 8,000 |
| 2025-09-18 | TOTAL | TOTAL | 线上 | 会员 | 18,500 |
| 2025-09-18 | TOTAL | TOTAL | TOTAL | TOTAL | 25,700 |
2.3 参数配置
| 配置项 | 说明 |
| 参数列 | 设置动态参数,如“调度时间”、“快照日期”,用于生成周期性结果。 |
| 上卷维度填充方式 | 定义上卷维度展示形式。默认 TOTAL。例如:当“城市”维度被汇总时,结果中会显示 城市 = TOTAL。 |
2.4 结果筛选与限定
| 配置项 | 说明 |
| 筛选 | - 可设置数据过滤条件,仅对特定维度范围生成 CUBE。例如:仅计算“区域=华东”的维度组合。 |
| 结果限定 | - 可控制结果输出范围,如 Top N、特定分类、或排除异常值。- 支持表达式过滤(如 销售额 > 0)。 |
| 指标日期范围 | - 定义指标计算的数据时间范围(如近 7 日、近 30 日、本月)。 |
2.5 更新方式与存储设置
| 配置项 | 说明 |
| 更新方式 | - 覆盖更新:每次全量重算,结果完全替换旧数据。 - 增量更新:仅更新新增分区数据,效率更高,适合每日任务。 |
| 分区字段 | 通常为时间字段(如 指标日期),用于分区加载和增量刷新。 |
| 分桶字段 | 可选择高基数字段(如地区ID、店铺ID),用于数据分桶,提升查询性能。 |
3. 调度配置
CUBE 模式的调度逻辑与常规模式一致,但更强调性能与任务稳定性。

| 配置项 | 说明 |
| 更新周期 | - 定时更新:按固定时间执行(如每日 02:00)。 - 不更新:物化表不会主动进行数据更新,需要使用数据回补功能更新数据。 |
| 高级设置 | - 支持重试机制与失败报警策略。 |
| 通知配置 | - 支持任务结果推送: - 更新成功 - 更新失败 - 延迟更新 - 支持多渠道:邮箱、企业微信、Webhook等。 |
| 推送渠道 | - 可新增多个通知通道(如“渠道1:邮箱”、“渠道2:企业微信机器人”)。 - 每个通道可独立设置接收人、标题与内容模板。 |
| 消息内容 | - 支持自定义标题与正文,支持富文本、链接与参数变量(如 ${任务名称}、${执行时间})。 |
| 推送测试 | - 提供「发送测试」功能,验证消息配置是否生效。 |