日期时间维度设计
目标:掌握日期时间维度的需求与设计
路径
  - 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:字典状态明细表,记录所有具体的状态或者类别信息
   - 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
