日期时间维度设计
目标:掌握日期时间维度的需求与设计
路径
- step1:需求
- step2:设计
实施
需求:构建日期时间维度表,得到所有年、季度、月、周、日的维度信息
统计不同时间维度下的呼叫次数、工单数、维修数、安装数、报销金额、核销数等
设计
- 数据来源:提前通过程序生成构建,不是从数据中抽取
- 执行周期:每一年生成下一年的每一天的维度信息,**增量**同步到维度表的分区中
日期时间维度构建
目标:实现日期时间维度表的构建
实施
建维度表
加载数据
服务网点维度设计
目标:掌握服务网点维度的需求与设计
路径
- step1:需求
- step2:设计
实施
需求:构建服务网点维度表,得到服务网点id、网点名称、网点所属的地理区域、服务网点状态等
统计不同服务网点的服务人员数、工单数、核销数等
设计
数据来源
- ciss_base_servicestation:服务网点信息表
- eos_dict_type:字典状态类别表,记录所有需要使用字典标记的表
- eos_dict_entry:字典状态明细表,记录所有具体的状态或者类别信息
- ciss_base_areas:行政地区信息表
- 通过具体的id关联所有地区信息
实现设计
服务网点维度构建
目标:实现服务网点维度的构建
实施
建维度表
加载数据
-
cross join:笛卡尔积,join时候不给关联条件
-
select * from A,B
-
select * from A join B
-
cross join
-
查看结果
油站维度设计
目标:掌握油站维度的需求与设计
路径
- step1:需求
- step2:设计
实施
需求:构建油站维度表,得到油站id、油站名称、油站所属的地理区域、所属公司、油站状态等
设计
数据来源
ciss_base_oilstation:油站信息表
- eos_dict_type:字典状态类别表,记录所有需要使用字典标记的表
- eos_dict_entry:字典状态明细表,记录所有具体的状态或者类别信息
- ciss_base_baseinfo:客户公司信息表【公司ID、公司名称】
- 数据有重复,做个去重
- ciss_base_customer:客户信息表【客户id、客户省份名称、所属公司ID】
- ciss_base_areas:行政地区信息表
- 通过具体的id关联所有地区信息
实现设计
- 所有表按照对应字段关联,获取对应的属性字段
油站维度构建
目标:实现油站维度的构建
实施
建维度表
抽取数据
- 查看结果
其他维度:组织机构
目标:实现组织机构维度的设计及构建
路径
- step1:需求
- step2:设计
- step3:实现
实施
需求:实现组织机构维度表的构建,得到每个工程师对应的组织机构信息
- 统计不同服务人员的工单数、核销数等
设计
实现
建维度表
抽取数据
其他维度:仓库、物流
目标:实现仓库维度、物流维度的构建
路径
- step1:仓库维度
- step2:物流维度
实施
仓库维度
- 建表
加载
物流维度
- 建表
加载
附录一:常见问题
1.错误:没有开启Cross Join
Spark2.x默认不允许执行笛卡尔积,除非**显示申明cross join**或者开启属性:`spark.sql.crossJoin.enabled true`
2.错误:Unable to move source
- 重启SparkSQL的ThriftServer,与MetaStore构建新的会话连接
转载:https://blog.csdn.net/JACK_SUJAVA/article/details/128465882