网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-
目标:掌握DWB层油站事实指标表的需求分析
-
路径
- step1:目标需求
- step2:数据来源
-
实施
- 目标需求:基于油站信息及设备数据构建油站主题事实的油站个数、停用个数、新增个数、设备个数等
- 油站数量:1个油站就是一条数据,这个值默认就为1 - 已停用油站数量:停用状态,判断油站的状态是什么状态 - 有效油站数量:使用状态,判断油站的状态是什么状态 - 当日新增油站:判断之前有没有这个油站 * 历史记录表:oil\_history:记录了当前所有油站的信息 + id、name * 今日新数据:oil\_current:记录了今天所有油站的信息 + id、name * left join ``` oil_current a left join oil_history b on a.id = b.id where b.id is null ``` * 当日停用油站:判断当日状态 * 油站设备数量:得到这个油站的所有设备信息,按照油站id分组统计设备个数
-
数据来源
- ciss_base_oilstation:油站信息表
select id os_id --油站id , name os_name --油站名称 , code os_code --油站编码 , province province_id --油站省份 , city city_id --油站城市 , region county_id --油站区域 , status status_id --油站状态 , customer_classify cstm_type_id --客户分类id , 1 os_num --油站数量:默认为1 , case when status = 2 then 1 else 0 end invalid_os_num --停用油站数量:1-停用,0-启用 , case when status = 1 then 1 else 0 end valid_os_num --有效油站数量:1-有效,0-无效 from ciss_base_oilstation;
-
ciss_base_oilstation_history:油站历史记录表
- 模拟油站历史记录
create table if not exists one_make_dwd.ciss_base_oilstation_history stored as orc as select \* from one_make_dwd.ciss_base_oilstation where dt < '20210102';
- 查询历史油站信息
--获取当前的油站是否是一个新增油站 select oil.id , case when oil.id = his.id then 0 else 1 end current_new_os_num --今日油站数据表 from one_make_dwd.ciss_base_oilstation oil --历史油站数据表 left outer join one_make_dwd.ciss_base_oilstation_history his on oil.id = his.id where oil.dt = '20210101';
- ciss_base_device_detail:油站设备信息表
-- 设备信息表中按照油站id分组聚合设备id:每个油站的设备个数 select oil.id, count(dev.id) device_num from one_make_dwd.ciss_base_oilstation oil left join one_make_dwd.ciss_base_device_detail dev on oil.id = dev.oilstation_id where oil.dt = '20210101' group by oil.id;
-
小结
- 掌握DWB层油站事实指标表的需求分析
02:油站事实指标构建
-
目标:实现DWB层油站事实指标表的构建
-
实施
- 建表
-- 创建油站事实表 drop table if exists one_make_dwb.fact_oil_station; create table if not exists one_make_dwb.fact_oil_station( os_id string comment '油站id' , os_name string comment '油站名称' , os_code string comment '油站编码' , province_id string comment '省份id' , city_id string comment '城市id' , county_id string comment '县id' , status_id int comment '状态id' , cstm_type_id int comment '客户分类id' , os_num int comment '油站数量 默认为1' , invalid_os_num int comment '已停用油站数量(状态为已停用为1,否则为0)' , valid_os_num int comment '有效油站数量(状态为启用为1,否则为0)'
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
net/forums/4f45ff00ff254613a03fab5e56a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!