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

2023-08-01 15:22:31

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

  • 目标:掌握DWB层安装事实指标表的需求分析

  • 路径

    • step1:目标需求
    • step2:数据来源
  • 实施

    • 目标需求:基于设备安装信息统计安装设备个数、收费安装个数、审核安装个数等指标

      image-20211003164551461

      • 全新安装数量: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;
      

      image-20211012144040987

      • 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层安装事实指标表的构建
更多推荐

【数据结构】LinkedList与链表

文章目录1.ArrayList的缺陷2.链表2.1链表的概念及结构2.2链表的实现1.链表的功能2.初始化链表3.实现功能接口3.1头插添加元素3.2尾插法添加新元素3.3找到下标的前驱节点3.4指定位置插入元素3.5指定元素是否存在3.6找到指定元素的前驱节点3.7删除指定节点3.8删除所有元素为key的节点3.9链

智慧养殖:浅谈视频监控与AI智能识别技术助力奶牛高效、智慧养殖

一、方案背景随着科技的飞速发展,智能化养殖逐渐成为现代畜牧业的发展趋势。人工智能技术、物联网、视频技术、云计算、大数据等新兴技术,正在为奶牛养殖业带来全新的变革。越来越多的牧场、养殖场开始运用新技术来进行智能监管、提高生产效率、降低生产成本,助力饲养成本高的养殖业,向数字化、智能化、无人化发展方向转型。二、方案概述TS

计算机硬件设备和网络硬件设备

计算机硬件设备计算机硬件设备是指构成计算机系统的各种实体部件,包括以下几类常见设备:1、中央处理器(CentralProcessingUnit,CPU)2、内存(RandomAccessMemory,RAM)3、硬盘驱动器(HardDiskDrive,HDD)4、显卡(GraphicsProcessingUnit,GP

uni-app 之 vue位置怎样设置

vue位置怎样设置VUE是一款流行的JavaScript框架,可以构建动态用户界面。在VUE中,位置的设置是非常重要的,因为它会影响到页面元素的布局。下面将详细介绍VUE中位置设置的基本概念以及如何使用VUE进行位置设置。在VUE中,位置设置一般使用CSS的position属性来实现。position属性有四个属性值:

Spring Boot魔法:简化Java应用的开发与部署

文章目录什么是SpringBoot?1.自动配置(Auto-Configuration)2.独立运行(Standalone)3.生产就绪(ProductionReady)4.大量的起步依赖(StarterDependencies)SpringBoot的魔法1.起步依赖(StarterDependencies)2.自动配

CMake:测试的其他补充(重要)

CMake:测试的其他补充(重要)导言预期测试失败项目结构CMakeLists.txt相关源码输出结果使用超时测试运行时间过长的测试项目结构CMakeLists.txt相关源码输出结果并行测试项目结构CMakeLists.txt相关源码输出结果运行测试子集项目结构CMakeLists.txt相关源码输出结果使用测试固件

uniapp实现大气质量指标图(app端小程序端均支持,app-nvue不支持画布)

效果图如下:思路:1.首先我想到的就是使用图标库echarts或ucharts,可是找了找没有找到类似的。2.其次我就想用画布来实现这个效果,直接上手。(app-vue和小程序均可以实现,但是在app-nvue页面不支持画布,尝试了一下再nvue页面直接导致程序闪退)3.后来,使用手动创建一个竖向的类似效果。注意:1.

【力扣每日一题】2023.9.21 收集树中金币

目录题目:示例:分析:代码:题目:示例:分析:题目给我们一棵树,不过这棵树不是普通的树,而是无向无根树。给我们一个二维数组表示节点之间的连接关系,以及一个一维数组表示每个节点是否有金币。我们可以从任何一个节点出发,并且可以收集距离两格的节点的金币,每次可以移动到相邻的节点。问我们要收集完所有的金币并且最终要回到起点,最

Python爬虫:aiohttp的介绍和基本使用

aiohttp是一个用于编写异步网络应用程序的Python库,它建立在Python3.5+的asyncio框架之上。它允许你创建高性能的异步HTTP客户端和服务器,以处理并发请求和响应。下面是关于aiohttp的介绍和基本使用方法:安装aiohttp你可以使用pip来安装aiohttp:pipinstallaiohtt

python魔术方法_对象_继承_复写_变量注解_函数注解_多态(04)

文章目录python魔术方法_对象_继承_复写_变量注解_函数注解_多态(04)1对象的魔术方法1.1魔术方法实例:2对象的封装2.1私有变量:开头__(2个下划线)定义2.2案例私有变量访问:3继承3.1类继承语法:3.2类继承案例3.3多继承3.3.1多继承语法3.3.2多继承属性(pass使用)4复写4.1对父类

如何使用ArcGIS Pro提取河网水系

DEM数据除了可以看三维地图和生成等高线之外,还可以用于水文分析,这里给大家介绍一下如何使用ArcGISPro通过水文分析提取河网水系,希望能对你有所帮助。数据来源本教程所使用的数据是从水经微图中下载的DEM数据,除了DEM数据,常见的GIS数据都可以从水经微图中下载,你可以通过关注公号“水经注GIS”,然后在后台回复

热文推荐