助力工业物联网,工业大数据之安装事实指标需求分析【二十一】

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 助力工业物联网,工业大数据之安装事实指标需求分析【二十一】

1:安装事实指标需求分析

  • 目标:掌握DWB层安装事实指标表的需求分析
  • 路径
  • step1:目标需求
  • step2:数据来源
  • 实施
  • 目标需求:基于设备安装信息统计安装设备个数、收费安装个数、审核安装个数等指标
  • 全新安装数量:install_type = 1
  • 联调安装数量:install_way = 2
  • 产生维修数量:is_repair = 1
  • 额外收费数量:is_pay = 1
  • 安装设备数量:与服务单关联,统计设备的id个数
  • 安装费用:通过工单id从报销单信息中关联得到报销金额
  • 审核完成工单个数:
  • 数据来源
  • ciss_service_install:安装单信息表
select
    id,--安装单id
    code,--安装单号
    install_way, --安装方式 
    service_id --服务单id
from ciss_service_install;
  • ciss_service_workorder:工单详情事实表
select
    service_userid,--工程师id
    service_station_id,--服务站点id
    oil_station_id,--油站id
    create_time --创建时间
from ciss_service_workorder;
  • ciss_service_order:服务单信息表
select
  id,            --服务单id
  workorder_id,  --工单id
  type           --工单类型,1-安装,2-维修,3-巡检
from ciss_service_order;
  • ciss_service_order_device:服务单设备信息表
select
    id,               --设备id
    service_order_id  --服务单id
from ciss_service_order_device;
  • ciss_s_install_exp_rep_02_dtl:报销单明细表
select
    id,          --报销ID
    workorder_id,--工单id
    money5       --报销金额
from ciss_s_install_exp_rep_02_dtl;
  • ciss_service_install_validate:设备安装审核信息表
select
    id,          --审核ID
    workorder_id,--工单id
    has_validate --审核状态,1-已审核,0-未审核
from ciss_service_install_validate;
  • 小结
  • 掌握DWB层安装事实指标表的需求分析

2:安装事实指标构建

  • 目标:实现DWB层安装事实指标表的构建
  • 实施
  • 建表
-- 创建安装单事实表
drop table if exists one_make_dwb.fact_srv_install;
create table if not exists one_make_dwb.fact_srv_install(
    inst_id string comment '安装单id'
    , inst_code string comment '安装单编码'
    , inst_type_id string comment '安装方式id'
    , srv_user_id string comment '服务人员用户id'
    , ss_id string comment '服务网点id'
    , os_id string comment '油站id'
    , date_id string comment '日期id'
    , new_inst_num int comment '全新安装数量'
    , debug_inst_num int comment '设备联调安装数量'
    , repair_num int comment '产生维修安装单数量'
    , ext_exp_num int comment '额外收费安装单数量'
    , inst_device_num int comment '安装设备数量'
    , exp_device_money int comment '安装费用'
    , validated_inst_num int comment '审核安装单数量'
) comment '安装单事实表'
partitioned by (dt string)
stored as orc
location '/data/dw/dwb/one_make/fact_srv_install';
  • 抽取
insert overwrite table one_make_dwb.fact_srv_install partition(dt = '20210101')
select
    sinstall.id inst_id           --安装单id
  , sinstall.code inst_code               --安装单号
  , sinstall.install_way inst_type_id     --安装方式
  , swo.service_userid srv_user_id        --工程师id
  , swo.service_station_id ss_id          --服务网点id
  , swo.oil_station_id os_id              --油站id
  , swo.create_time date_id               --创建时间
  , new_inst_num                          --全新安装数量
  , debug_inst_num                        --设备联调安装数量
  , repair_num                            --产生维修安装数量
  , ext_exp_num                           --额外收费安装数量
  , inst_device_num                       --安装设备数量
  , exp_device_money                      --安装费用
  , validated_inst_num                    --已审核安装单数量
  --安装信息表
from one_make_dwd.ciss_service_install sinstall
  --服务单表
  left join one_make_dwd.ciss_service_order sorder on sinstall.service_id = sorder.id
  --工单表
  left join one_make_dwd.ciss_service_workorder swo on sorder.workorder_id = swo.id
  --获取全新、联调、维度、收费的安装数量
  left join (
     select 
         id, 
       case when install_type = 1 then 1 else 0 end new_inst_num,
         case when install_way = 2 then 1 else 0 end debug_inst_num,
         case when is_repair = 1 then 1 else 0 end repair_num,
         case when is_pay = 1 then 1 else 0 end ext_exp_num 
     from one_make_dwd.ciss_service_install
  ) installtype on sinstall.id = installtype.id
  --获取每个服务单的安装设备数量
  left join (
     select 
         sorder.id, count(sodevice.id) inst_device_num 
     from one_make_dwd.ciss_service_order sorder
     left join one_make_dwd.ciss_service_order_device sodevice on sorder.id = sodevice.service_order_id 
     group by sorder.id
  ) sodev on sorder.id = sodev.id
  --获取每个工单的报销总金额
  left join ( 
    select 
        swo.id, sum(dtl.money5) exp_device_money 
      from one_make_dwd.ciss_service_workorder swo 
    left join one_make_dwd.ciss_s_install_exp_rep_02_dtl dtl on swo.id = dtl.workorder_id
    where dtl.dt = '20210101' and dtl.money5 is not null 
    group by swo.id
  ) dtl on swo.id = dtl.id
  --获取每个安装工单的审核状态
  left join (
    select 
        swo.id, case when ivalida.has_validate = 1 then 1 else 0 end validated_inst_num 
    from one_make_dwd.ciss_service_workorder swo
    left join one_make_dwd.ciss_service_install_validate ivalida on swo.id = ivalida.workorder_id
  ) validate on swo.id = validate.id where swo.service_userid is not null and sinstall.dt = '20210101';
  • 小结
  • 实现DWB层安装事实指标表的构建


目录
相关文章
|
4月前
|
SQL 分布式计算 大数据
请问本地安装了大数据计算MaxCompute studio,如何验证联通性及基本DDL操作呢?
请问本地安装了大数据计算MaxCompute studio,如何验证联通性及基本DDL操作呢?
52 0
|
19天前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
4月前
|
数据采集 运维 算法
大数据项目管理:从需求分析到成果交付的全流程指南
【4月更文挑战第9天】本文介绍了大数据项目从需求分析到成果交付的全过程,包括需求收集与梳理、可行性分析、项目规划、数据准备与处理、系统开发与集成,以及成果交付与运维。文中通过实例展示了如何进行数据源接入、数据仓库建设、系统设计、算法开发,同时强调了需求理解、知识转移、系统运维的重要性。此外,还提供了Python和SQL代码片段,以说明具体技术实现。在大数据项目管理中,需结合业务和技术,灵活运用这些方法,确保项目的成功执行和价值实现。
1124 1
|
2月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之如何实现嵌入式设备到物联网平台再到PAI DSW的云边结合
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
分布式计算 Hadoop 大数据
【大数据】Hadoop下载安装及伪分布式集群搭建教程
【大数据】Hadoop下载安装及伪分布式集群搭建教程
114 0
|
4月前
|
大数据 Docker 容器
大数据 安装指南-----利用docker
大数据 安装指南-----利用docker
72 0
|
4月前
|
分布式计算 Hadoop 大数据
[大数据] mac 史上最简单 hadoop 安装过程
[大数据] mac 史上最简单 hadoop 安装过程
|
4月前
|
大数据 Linux 虚拟化
大数据软件基础(3) —— 在VMware上安装Linux集群
大数据软件基础(3) —— 在VMware上安装Linux集群
66 0
|
4月前
|
监控 物联网 大数据
智慧工地管理平台系统源码基于物联网、云计算、大数据等技术
智慧工地平台APP通过对施工过程人机料法环的全面感知、互联互通、智能协同,提高施工现场的生产效率、管理水平和决策能力,实现施工管理的数字化、智能化、精益化。
91 0
|
4月前
|
NoSQL 物联网 大数据
【补充】助力工业物联网,工业大数据之AirFlow安装
【补充】助力工业物联网,工业大数据之AirFlow安装
82 1