神策分析 v3.0.2 以上版本可使用该功能
概述
聚合拼接是业务集市数据加工的关键技术。在数据分析和可视化前,它能按特定业务逻辑和数据粒度要求,对不同来源的业务模型进行聚合到统一的明细粒度后拼接。
可将分散于多个业务模型的数据,先聚合到统一粒度再精准拼接,确保数据一致、可比,保留各指标原有的聚合口径,为数据分析提供更准确、全面的视角。
定义
模型态跟结果表态
业务集市中,业务模型可以有两种形态(主要是分析模型保存到集市的),以适应不同的数据分析和展示需求:
-
模型态:在模型态下,业务模型展示了数据集完整的
-
维度
-
指标的聚合规则。
-
-
结果表态:结果表以表格的行列形式展现
模型态 VS 结果表
- 模型态其中包含了数据的详细维度和指标定义,以及它们的聚合规则。模型态允许用户深入分析数据,通过自定义聚合规则来探索数据的不同方面。
- 结果表态是业务模型的另一种表现形式,展示了根据模型态定义的聚合规则处理后的数据结果。结果表态通常是一个简化的、以维度和数值形式展现的二维数据表。
公共维度
公共维度是在多个数据表或数据模型之间共享的属性或特征,它可以作为连接不同数据集的桥梁,使得数据能够在不同的上下文中保持一致性和可比性。公共维度通常包括时间、地理位置等,它们可以作为数据聚合和分析的基础。
例如下边表格中,介绍了一些常见的公共维度跟他们的作用
领域 | 数据表 1 | 数据表 2 | 公共维度(多个字段) | 用途说明 |
---|---|---|---|---|
电商领域 | 订单详情表(订单编号、用户 ID、商品 ID、下单时间、收货地址) | 物流信息表(物流单号、用户 ID、商品 ID、发货时间、配送地址) | 用户 ID、商品 ID | 通过这两个公共维度,能将订单详情与对应的物流信息准确关联起来,清楚知晓每个用户购买的具体商品的物流状态,比如查看商品何时发货、是否已送达指定收货地址等,便于跟踪整个购物流程以及处理物流相关问题。 |
企业管理领域 | 员工考勤表(员工编号、姓名、部门、考勤日期、打卡时间) | 员工绩效表(员工编号、姓名、部门、考核周期、绩效得分) | 员工编号、姓名、部门 | 借助这些公共维度,可以把员工的考勤情况和绩效情况对应起来,分析不同部门、不同员工的考勤表现对绩效的影响,例如是否出勤良好的员工绩效得分普遍更高等,有助于企业进行人力资源管理和优化。 |
金融领域 | 客户贷款申请表(客户身份证号、姓名、联系方式、申请时间、贷款金额) | 客户还款记录表(客户身份证号、姓名、联系方式、还款时间、还款金额) | 客户身份证号、姓名、联系方式 | 利用这几个公共维度,能精准关联客户的贷款申请情况和后续还款情况,方便金融机构分析客户的还款能力、还款规律,及时发现潜在的逾期风险,进而制定合理的信贷策略和风险防控措施。 |
场景
场景案例:不同粒度的表聚合后再拼接
一、原始数据表介绍
时间 | 版本 | APPDAU |
2021-06-01 08:00 | V1.0 | 100 |
2021-06-01 09:00 | V1.0 | 120 |
2021-06-01 08:00 | V1.1 | 80 |
2021-06-01 09:00 | V1.1 | 90 |
2021-06-02 08:00 | V1.0 | 110 |
2021-06-02 09:00 | V1.0 | 130 |
表 1:用户行为数据:该表主要聚焦于记录用户在 APP 上的行为表现,其数据粒度细化到 时间 和 版本 维度。
- 粒度详情:
- 时间:精确记录到分钟或者小时,例如 2021-06-01 10:00 2021-06-01 11:30 等,这样细致的时间记录可以精准捕捉不同时刻用户的活跃情况。
- 版本:体现 APP 的不同版本号,像 V1.0 V1.1 V2.0 等,有助于分析不同版本的用户使用差异。
- 包含指标:
- APPDAU(日活跃用户数):明确记录了在对应的时间段以及 APP 版本下的日活跃用户数量,比如在 2021-06-01 10:00 - 2021-06-01 11:00 这个时间段且 APP 版本为 V1.0 时,APPDAU 为 1000 人。
时间 | 收入 | 注册用户数 |
2021-06-01 | 50000 | 200 |
2021-06-02 | 60000 | 250 |
表 2:业务经营数据:此表侧重于反映业务的经营状况,数据粒度以 时间 为维度,这里的时间是以日期来记录的。
- 粒度详情:
- 时间:采用日期格式,如 2021-06-01 2021-06-02 等,用于汇总每日的业务关键指标情况。
- 包含指标:
- 收入:统计该日期内业务所获得的总收入,例如在 2021-06-01 这一天,收入为 50000 元。
- 注册用户数:记录该日期新注册成为用户的数量,像在 2021-06-01 当天有 200 名新注册用户。
二、建模目标
我们期望将这两张表聚合到 时间 这一共同粒度上。因为只有在统一的时间维度下,才能合理地分析不同时间段内用户行为与业务经营之间的内在联系。例如,想知道在某个特定时间段内,APP 日活跃用户数的变化是否会对当天的收入以及新注册用户数产生影响,就必须先把两张表的数据按照时间维度进行对齐整合。
三、按照公共维度聚合后的新表
聚合后新表:综合分析数据表
时间 | APPDAU | 收入 | 注册用户数 |
2021-06-01 | 310 | 50000 | 200 |
2021-06-02 | 400 | 60000 | 250 |
- 粒度:
- 时间:统一为日期格式(如 2021-06-01),将表 1 中原本细化到分钟或小时的时间数据进行按日汇总,与表 2 的时间维度保持一致。
- 包含指标:
- APPDAU(日活跃用户数):对表 1 中同一日期下不同时间段、不同版本对应的 APPDAU 进行求和汇总,得到该日的总日活跃用户数。例如,2021-06-01 这天,经过汇总后的 APPDAU 为 5000 人(假设是由各小时段、各版本数据汇总而来)。
- 收入:直接沿用表 2 中的 收入 字段数据,即该日期对应的总收入,如 2021-06-01 的收入为 50000 元。
- 注册用户数:同样沿用表 2 中的 注册用户数 字段数据,像 2021-06-01 的注册用户数为 200 人。
表 1(用户行为数据)的粒度是 时间,版本,而表 2(业务经营数据)的粒度仅为 时间,在直接 Join 这两个表时,针对特定日期(如 2021-06-01)的 收入 指标,可能会出现数据膨胀问题
操作步骤
界面介绍
操作步骤
-
访问功能入口:
- 在业务集市 > 创建业务模型 > 弹出界面的 数据加工 模块中,选择 聚合拼接 功能开始操作。
-
选择并准备数据表:
- 拖拽需要的模型到画布区域,准备进行拼接。见图中 1 的区域。
-
定义公共维度:
- 选择公共维度,确保画布中每个模型在此维度上可以正确对齐。见图中 2 的区域。
-
进行预聚合:
- 点击画布中模型,进行指标的配置。点击图中 1 中的表卡片,会弹出配置抽屉。
-
配置指标和字段:
- 在配置抽屉中,为每张表选择关键指标如 APPDAU 和 收入,并设置聚合方式。在抽屉总设置。
-
设置过滤条件:
- 为参与拼接的字段配置过滤条件,以筛选出需要的数据子集。
-
执行自动聚合与拼接:
- 系统将自动处理数据,根据公共维度和用户设置的聚合方式进行数据的聚合和拼接。
-
预览结果:
- 检查预览区域,确保拼接结果符合预期,特别是 收入 指标是否正确聚合。图中 3 的区域
-
调整与优化:
- 如有必要,返回配置步骤调整字段选择或过滤条件,优化拼接结果。
-
保存拼接配置:
- 完成调整后,保存当前的拼接配置,以便于后续使用或分享。
-
保存到业务集市:
- 将拼接结果保存到业务集市,使其可以被报表可视化配置使用。
-
处理异常:
- 如果遇到任何异常提示,如字段错误或元数据问题,根据提示进行修正
当前支持拼接的模型
数据来源
|
支持情况
|
---|---|
事件分析 | ✔️ |
留存分析 | ✔️ |
分布分析 | ✔️ |
漏斗分析 | ✔️ |
Session 分析 | ✔️ |
属性分析 | ✔️ |
LTV 分析 | ✔️ |
间隔分析 | ✔️ |
归因分析 | ✔️ |
自定义 SQL | ✔️ |
指标分析 | ✔️ |
模型拼接(水平) | ✔️ |
模型拼接(垂直) | ✔️ |
聚合拼接 | ❌ |
用户群画像 | ❌ |
常见问题
问:聚合拼接结果保存到业务集市后,是模型还是结果表?
答:聚合拼接结果保存到业务集市后,是以逻辑模型的形式存在。这意味着系统会根据保存的拼接逻辑和配置,在每次查询时动态生成数据结果,而不是保存一个静态的结果表。
问:聚合拼接的结果是否会持久化保存数据?
答:聚合拼接不持久化保存具体的数据结果。它保存的是拼接的逻辑和配置,确保每次查询时都能根据最新的数据和定义的逻辑重新计算结果。
问:来源表中的一个指标可以在结果中出现多次吗?
答:可以。如果一个指标在结果中需要以不同的聚合方式展示,比如同时展示总和和平均值,它就可以在结果集中出现多次。
问:如果拼接结果中的指标名称发生冲突怎么办?
答:如果出现指标名称冲突,系统会提示用户进行修改。用户需要确保每个指标在结果集中都有唯一标识,以避免混淆。
问:拼接操作对原始数据表有什么影响?
答:拼接操作是元数据层面的操作,不会对原始数据表中的数据进行任何修改或影响其完整性。
问:如何处理拼接过程中的数据类型不一致问题?
答:用户需要确保参与拼接的公共维度具有一致的数据类型。如果发现数据类型不一致,用户可能需要对数据进行转换或调整字段定义,以解决数据类型不一致的问题。比如通过计算列来新建一个字段,再进行拼接。
问:如何确保拼接结果的准确性?
答:为确保拼接结果的准确性,用户应该仔细检查和验证拼接逻辑、过滤条件、聚合方式等配置。在保存配置前,使用预览功能来检查结果是否符合预期,并确保数据质量。