助力工业物联网,工业大数据之服务域:安装主题分析实现【二十七】(1)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

	    ,dws_week string comment '日期维度-按周'
	    ,dws_month string comment '日期维度-按月'
	    ,oil_type string comment '油站维度-油站类型'
	    ,oil_province string comment '油站维度-油站所属省'
	    ,oil_city string comment '油站维度-油站所属市'
	    ,oil_county string comment '油站维度-油站所属区'
	    ,customer_classify string comment '客户维度-客户类型'
	    ,customer_province string comment '客户维度-客户所属省'
	) comment '安装主题表'
	partitioned by (month string, week string, day string)
	stored as orc
	location '/data/dw/st/one\_make/subj\_install';
	
	```
  • 构建
insert overwrite table one_make_st.subj_install partition(month = '202101', week='2021W1', day='20210101')
  select
  	--安装方式
      max(case when install.inst_type_id = 1 then '设备安装' when install.inst_type_id = 2 then '设备联调' else '未知' end) install_way
      , count(install.inst_id) install_sum                                     --安装数量
  	, sum(install.exp_device_money) sum_money            					 --支付金额
      , dd.date_id dws_day                                                     --日期天
      , dd.week_in_year_id dws_week                                            --日期周
      , dd.year_month_id dws_month                                             --日期月
      , dimoil.company_name oil_type                                           --油站类型
      , dimoil.province_name oil_province                                      --油站省份
      , dimoil.city_name oil_city                                              --油站城市
      , dimoil.county_name oil_county                                          --油站地区
      , dimoil.customer_classify_name customer_classify                        --客户类型
      , dimoil.customer_province_name customer_province                        --客户省份
  --安装事务事实表
  from one_make_dwb.fact_srv_install install
  --关联日期维度表
  left join one_make_dws.dim_date dd on install.dt = dd.date_id
  --关联油站维度表
  left join one_make_dws.dim_oilstation dimoil on install.os_id = dimoil.id
  where dd.year_month_id = '202101' and dd.week_in_year_id = '2021W1' and dd.date_id = '20210101'
  --按照维度分组
  group by
      inst_type_id,
      dd.date_id, dd.week_in_year_id, dd.year_month_id,
      dimoil.company_name, dimoil.province_name, dimoil.city_name, dimoil.county_name,
      dimoil.customer_classify_name, dimoil.customer_province_name
  ;

  • 小结

    • 掌握安装主题的需求分析及实现

10:服务域:维修主题分析实现

  • 目标掌握维修主题的需求分析及实现

  • 路径

    • step1:需求
    • step2:分析
    • step3:实现
  • 实施

    • 需求:统计不同维度下的维修主题指标的结果

    image-20211004103548816

    • 分析

      • 指标

        • 支付费用、工时费用、零部件费用、交通费用
        • 故障总数、最大数量、平均数量
      • 维度

        • 日期维度:天、周、月
        • 油站维度:类型、省份、城市、地区
        • 客户维度:类型、省份
        • 物流公司
      • 数据

        • 事实表

          • fact_srv_repair:维修事务事实表
          select
              hour_money,--工时费用
              parts_money,--配件物料费用
              fars_money,--交通费用
              fault_type_ids, --故障id集合
              dt,--日期
              os_id,--油站id
            ss_id --服务网点id
          from fact_srv_repair;
          
          
        • fact_srv_stn_ma:网点物料事务事实表

        select
          ss_id,--服务网点id
          logi_cmp_id --物流公司id
        from fact_srv_stn_ma;
        
        
      • 维度表

        • dim_oilstation:油站维度表
        select
            id,--油站id
            company_name,--公司名称
            province_name,--省份名称
            city_name,--城市名称
            county_name,--区域名称
            customer_classify_name,--客户名称
          customer_province_name--客户省份
        from dim_oilstation;
        
        
        • dim_date:时间维度表
        select
            date_id,--天
            week_in_year_id,--周
          year_month_id --月
        from dim_date;
        
        
        • dim_logistics:物流维度表
        select 
          type_id,  --物流公司id
        type_name --物流公司名称
        from one_make_dws.dim_logistics where prop_name = '物流公司';
        
        
    • 实现

      • 建表
      drop table if exists one_make_st.subj_repair;
      create table if not exists one_make_st.subj_repair(
          sum_pay_money decimal(20,1) comment '支付费用'
          ,sum_hour_money decimal(20,1) comment '小时费用'
          ,sum_parts_money decimal(20,1) comment '零部件费用'
          ,sum_fars_money decimal(20,1) comment '交通费用'
          ,sum_faulttype_num bigint comment '故障类型总数'
          ,max_faulttype_num int comment '故障类型最大数量'
          ,avg_faulttype_num int comment '故障类型平均数量'
          ,dws_day string comment '日期维度-按天'
          ,dws_week string comment '日期维度-按周'
          ,dws_month string comment '日期维度-按月'
          ,oil_type string comment '油站维度-油站类型'
          ,oil_province string comment '油站维度-油站所属省'
          ,oil_city string comment '油站维度-油站所属市'
          ,oil_county string comment '油站维度-油站所属区'
          ,customer_classify string comment '客户维度-客户类型'
          ,customer_province string comment '客户维度-客户所属省'
          ,logi_company string comment '物流公司维度-物流公司名称'
      ) comment '维修主题表'
      partitioned by (month String, week String, day String)
      stored as orc
      location '/data/dw/st/one\_make/subj\_repair';
      
      
  • 构建

insert overwrite table one_make_st.subj_repair partition(month = '202101', week='2021W1', day='20210101')
  select
      sum(pay_money) sum_pay_money, 				--支付费用
  	sum(hour_money) sum_hour_money,             --工时费用
      sum(parts_money) sum_parts_money,           --物料费用
  	sum(fars_money) sum_fars_money,             --交通费用
      sum(fault_type_num) sum_faulttype_num,      --故障类型总数
  	max(fault_type_num) max_faulttype_num,      --最大故障数量
      avg(fault_type_num) avg_faulttype_num,      --平均故障数量
  	dws_day,                                    --日期天
  	dws_week,                                   --日期周
  	dws_month,                                  --日期月
  	oil_type,                                   --油站类型
      oil_province,                               --油站省份
  	oil_city,                                   --油站城市
  	oil_county,                                 --油站区域
  	customer_classify,                          --客户类型
  	customer_province,                          --客户省份
  	logi_company                                --物流公司
  from (
  	   select
  		   (hour_money + parts_money+fars_money) pay_money,
  		   hour_money,
  		   parts_money,
  		   fars_money,


![img](https://img-blog.csdnimg.cn/img_convert/165824ae7b2b561990f50c1070ce5099.png)
![img](https://img-blog.csdnimg.cn/img_convert/20c809d0a8533d3fa87f6b89a1654092.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

GmE-1715712346170)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值