维度建模回顾:建模流程
目标:掌握维度建模的建模流程
实施
step1-需求调研:业务调研和数据调研
- 了解整个业务实现的过程
- 收集所有数据使用人员对于数据的需求
- 整理所有数据来源
step2-划分主题域:面向业务将业务划分主题域及主题
- 用户域、店铺域
- 商品域、交易域、
- 客服域、信用风控域、采购分销域
step3-构建维度总线矩阵:明确每个业务主题对应的维度关系
step4-明确指标统计:明确所有原生指标与衍生指标
原生指标:基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,如支付总金额
衍生指标:基于原子指标添加了维度:近7天的支付总金额等
step5-定义事实与维度规范
- 命名规范、类型规范、设计规范等
step6-代码开发
- 实现具体的代码开发
- 只要知道指标的计算方式,基于维度分组计算指标
维度建模回顾:维度设计
目标:掌握维度建模中维度的设计
实施
功能:基于组合维度来更加**细化我们的指标**,来更加精确的发现问题
- 指标如果不基于组合维度进行分析得到,指标的结果是没有意义的
实现:开发中维度就是指标聚合时的**分组字段**
特点
- 数据量小
- 很少发生变化
采集方式:全量
常见维度
- 时间维度:年、季度、月、周、天、小时
- 地区维度:国家、省份、城市
- 平台维度:网站、APP、小程序、H5
- 操作系统维度:Windows、Mac OS、Android、Linux、IOS
- ……
维度建模回顾:维度模型
目标:掌握维度设计的常用模型
路径
- step1:雪花模型
- step2:星型模型
- step3:星座模型
实施
雪花模型
- 设计:部分维度通过其他维度间接关联事实表
- 优点:避免数据的冗余
- 缺点:关联层次比较多,数据大的情况下,底层层层Join,查询数据性能降低
星型模型
- 设计:所有维度表直接关联事实表
- 优点:每次查询时候,直接获取对应的数据结果,不用关联其他的维度子表,可以提高性能
- 缺点:数据冗余度相比雪花模型较高
星座模型
- 星座模型:基于星型模型的演变,多个事实共同使用一个维度表
一站制造业务主题划分
目标:掌握一站制造的主题域及主题的划分
实施
来源
- 主题域划分:业务或者部门划分
- 业务:客户域、广告域、运营域……
- 部门:运维域、财务域、销售域……
- 数据需求来划分主题
- 运营域:访问分析报表、转化分析报表、用户属性分析报表、订单分析报表
- ==**服务域**==
- 安装主题:安装方式、支付费用、安装类型
- 工单主题:派工方式、工单总数、派工类型、完工总数、
- 维修主题:支付费用、零部件费用、故障类型
- 派单主题:派单数、派单平均值、派单响应时间
- 费用主题:差旅费、安装费、报销人员统计
- 回访主题:回访人员数、回访工单状态
- 油站主题:油站总数量、油站新增数量
- **客户域**
- 客户主题:安装数量、维修数量、巡检数量、回访数量
- **仓储域**
- 保内良品核销主题:核销数量、配件金额
- 保内不良品核销主题:核销配件数、核销配件金额
- 送修主题:送修申请、送修物料数量、送修类型
- 调拨主题:调拨状态、调拨数量、调拨设备类型
- 消耗品核销:核销总数、核销设备类型
- **服务商域**
- 工单主题:派工方式、工单总数、工单类型、客户类型
- 服务商油站主题:油站数量、油站新增数量
- **运营域**
- 运营主题:服务人员工时、维修站分析、平均工单、网点分布
- **市场域**
- 市场主题:工单统计、完工明细、订单统计
一站制造业务维度设计
目标:掌握一站制造业务维度设计
实施
- ==**日期时间维度**==
- 年维度、季度维度、月维度、周维度、日维度
- 日环比、周环比、月环比、日同比、周同比、月同比
- 环比:同一个周期内的比较
- 同比:上个个周期的比较
- ==**行政地区维度**==
- 地区级别:国家维度、省份维度、城市维度、县区维度、乡镇维度
- ==**服务网点维度**==
- 网点名称、网点编号、省份、城市、县区、所属机构
- ==**油站维度**==
- 油站类型、油站名称、油站编号、客户编号、客户名称、省份、城市、县区、油站状态、所属公司
- ==**组织机构维度**==
- 人员编号、人员名称、岗位编号、岗位名称、部门编号、部门名称
- **服务类型维度**
- 类型编号、类型名称
- **设备维度**
- 设备类型、设备编号、设备名称、油枪数量、泵类型、软件类型
- **故障类型维度**
- 一级故障编号、一级故障名称、二级故障编号、二级故障名称
- **物流公司维度**
- 物流公司编号、物流公司名称
- ……
一站制造业务主题维度矩阵
目标:了解一站制造业务主题的维度矩阵
实施
行政地区维度设计
目标:掌握行政地区维度的需求及设计
路径
- step1:需求
- step2:设计
实施
需求:构建行政地区维度表,得到所有省份、城市、县区及乡镇维度信息
- 省份维度表
```
省份id 省份名称
```
- 城市维度表
```
省份id 省份名称 城市id 城市名称
```
- 县区维度表
```
省份id 省份名称 城市id 城市名称 县区id 县区名称
```
- 乡镇维度表
```
省份id 省份名称 城市id 城市名称 县区id 县区名称 乡镇id 乡镇名称
11 北京市 1101 北京市 110108 海淀区 110108014 清华园街道
```
- 统计不同地区维度下的网点个数、工单个数、报销金额等
- **设计**
- **数据来源**:one_make_dwd.ciss_base_areas
```
select * from one_make_dwd.ciss_base_areas;
```
- id:该地区数据id
- parentid:该地区的父级行政区域的id
- rank:表示行政地区的级别
- 0:国家:country
- 1:省份:province
- 2:城市:city
- 3:县/区:county
- 4:乡镇/区域:town
- areaname:地区名称
- 举例
- 清华园街道:4
- 海淀区
北京市【市级】
- 北京市【省级】
实现思路:以乡镇维度为例
- 实现:下一级地区的父id = 上一级地区的id
行政地区维度构建
目标:实现行政地区维度表的构建
实施
建维度库
建维度表
抽取数据