助力工业物联网,工业大数据之ST层的设计【二十五】

news2025/1/16 15:41:12

文章目录

    • 04:ST层的设计
    • 05:服务域:工单主题分析
    • 06:服务域:工单主题实现

04:ST层的设计

  • 目标掌握ST层的设计

  • 路径

    • step1:功能
    • step2:来源
    • step3:需求
  • 实施

    • 功能:数据应用层,用于支撑对外所有主题的报表应用数据的结果

      • 对外提供整个公司所有运营的报表
    • 来源:对DWB层的主题事实数据关联DWS层的维度表进行最终聚合

      • DWS:维度表:时间、地区、油站、组织机构

        维度id	维度值
        
      • DWB:工单、呼叫中心、费用

        维度id	指标
        
    • 需求:按照一站制造的业务主题的划分需求,构建每个主题的ST层的数据

      维度id	维度值		聚合指标
      
  • 小结

    • 掌握ST层的设计

05:服务域:工单主题分析

  • 目标掌握工单主题的需求分析

  • 路径

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

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

      字段名称字段说明来源
      owner_process派工方式-自己处理数量one_make_dwb.fact_call_service
      tran_process派工方式-转派工数量one_make_dwb.fact_call_service
      wokerorder_num工单总数one_make_dwb.fact_worker_order
      wokerorder_num_max工单总数最大值one_make_dwb.fact_worker_order
      wokerorder_num_min工单总数最小值one_make_dwb.fact_worker_order
      wokerorder_num_avg工单总数平均值one_make_dwb.fact_worker_order
      install_sumnum派工类型-安装总数one_make_dwb.fact_worker_order
      repair_sumnum派工类型-维修总数one_make_dwb.fact_worker_order
      remould_sumnum派工类型-巡检总数one_make_dwb.fact_worker_order
      inspection_sumnum派工类型-改造总数one_make_dwb.fact_worker_order
      alread_complete_sumnum完工总数one_make_dwb.fact_worker_order
      customer_classify_zsh客户类型-中石化数量one_make_dws.dim_oilstation
      customer_classify_jxs客户类型-经销商数量one_make_dws.dim_oilstation
      customer_classify_qtzx客户类型-其他直销数量one_make_dws.dim_oilstation
      customer_classify_zsy客户类型-中石油数量one_make_dws.dim_oilstation
      customer_classify_qtwlh客户类型-其他往来户数量one_make_dws.dim_oilstation
      customer_classify_zhjt客户类型-中化集团数量one_make_dws.dim_oilstation
      customer_classify_zhy客户类型-中海油数量one_make_dws.dim_oilstation
      customer_classify_gys客户类型-供应商数量one_make_dws.dim_oilstation
      customer_classify_onemake客户类型-一站制造**数量one_make_dws.dim_oilstation
      customer_classify_fwy客户类型-服务员数量one_make_dws.dim_oilstation
      customer_classify_zt客户类型-中铁数量one_make_dws.dim_oilstation
      customer_classify_hzgs客户类型-合资公司数量one_make_dws.dim_oilstation
      customer_classify_jg客户类型-军供数量one_make_dws.dim_oilstation
      customer_classify_zhhangy客户类型-中航油数量one_make_dws.dim_oilstation
      dws_day string日期维度-按天one_make_dws.dim_date
      dws_week string日期维度-按周one_make_dws.dim_date
      dws_month string日期维度-按月one_make_dws.dim_date
      oil_type string油站类型one_make_dws.dim_oilstation
      oil_province油站所属省one_make_dws.dim_oilstation
      oil_city string油站所属市one_make_dws.dim_oilstation
      oil_county string油站所属区one_make_dws.dim_oilstation
      customer_classify客户类型one_make_dws.dim_oilstation
      customer_province客户所属省one_make_dws.dim_oilstation
      • 呼叫中心主题事实
    • 分析

      • 指标

        • 工单自处理个数、工单转派工个数
        • 工单总数、最大值、最小值、平均值
        • 安装总数、维修总数、巡检总数、改造总数、完工总数
        • 中石化数量、经销商数量、其他直销数量、中石油数量、其他往来户数量、中化集团数量、中海油数量
        • 供应商数量、一站制造数量、服务工程师数量、中铁数量、合资公司数量、军供数量、中航油数量
      • 维度

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

        • 事实表

          • fact_worker_order:工单事实表

            select
                wo_num, --工单数量
                callaccept_id,--来电受理单id
                oil_station_id, --油站id
                dt --日期
            from fact_worker_order;
            
          • fact_call_service:呼叫中心事实表

          select      
          id,--来电受理单id    
          process_way_name --处理方式  
          from fact_call_service;  
          

          image-20211013101145353

        • 维度表

          • 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;
            

            image-20211013101244275

          • 实现分析

          -- 工单事实表
          select
          sum(case when b.process_way_name = '自己处理' then 1 else 0
          end) as own,
          sum(case when b.process_way_name = '转派工' then 1 else 0
          end) as other,
          sum(a.wo_num), --工单数量
          max(a.wo_num),
          min(a.wo_num),
          avg(a.wo_num),
          sum(a.install_num),
          sum(a.repair_num),
          sum(a.remould_num),
          sum(a.inspection_num),
          sum(a.alread_complete_num),
          sum(case when c.customer_classify_name = '中石化' then 1
          else 0 end) as zsy_count,
          ……
          a.callaccept_id,--来电受理单id
          c.id, --油站id
          c.company_name,--公司名称
          c.province_name,--省份名称
          c.city_name,--城市名称
          c.county_name,--区域名称
          c.customer_classify_name,--客户名称
          c.customer_province_name ,--客户省份
          d.date_id,--天
          d.week_in_year_id,--周
          d.year_month_id --月
          from fact_worker_order a
          left join fact_call_service b on a.callaccept_id = b.id
          left join one_make_dws.dim_oilstation c on a.oil_station_id =
          c.id
          left join one_make_dws.dim_date d on a.dt = d.date_id
          group by
          c.id, --油站id
          c.company_name,--公司名称
          c.province_name,--省份名称
          c.city_name,--城市名称
          c.county_name,--区域名称
          c.customer_classify_name,--客户名称
          c.customer_province_name ,--客户省份
          d.date_id,--天
          d.week_in_year_id,--周
          d.year_month_id; --月;
          
  • 小结

    • 掌握工单主题的需求分析

06:服务域:工单主题实现

  • 目标实现工单主题表的维度指标构建

  • 实施

    • 建库

      create database if not exists one_make_st;
      
    • 建表

      -- 创建工单主题表
      drop table if exists one_make_st.subj_worker_order;
      create table if not exists one_make_st.subj_worker_order(
          owner_process bigint comment '派工方式-自己处理数量'
          ,tran_process bigint comment '派工方式-转派工数量'
          ,wokerorder_num bigint comment '工单总数'
          ,wokerorder_num_max int comment '工单总数最大值'
          ,wokerorder_num_min int comment '工单总数最小值'
          ,wokerorder_num_avg int comment '工单总数平均值'
          ,install_sumnum bigint comment '派工类型-安装总数'
          ,repair_sumnum bigint comment '派工类型-维修总数'
          ,remould_sumnum bigint comment '派工类型-巡检总数'
          ,inspection_sumnum bigint comment '派工类型-改造总数'
          ,alread_complete_sumnum bigint comment '完工总数'
          ,customer_classify_zsh bigint comment '客户类型-中石化数量'
          ,customer_classify_jxs bigint comment '客户类型-经销商数量'
          ,customer_classify_qtzx bigint comment '客户类型-其他直销数量'
          ,customer_classify_zsy bigint comment '客户类型-中石油数量'
          ,customer_classify_qtwlh bigint comment '客户类型-其他往来户数量'
          ,customer_classify_zhjt bigint comment '客户类型-中化集团数量'
          ,customer_classify_zhy bigint comment '客户类型-中海油数量'
          ,customer_classify_gys bigint comment '客户类型-供应商数量'
          ,customer_classify_onemake bigint comment '客户类型-一站制造**数量'
          ,customer_classify_fwy bigint comment '客户类型-服务员数量'
          ,customer_classify_zt bigint comment '客户类型-中铁数量'
          ,customer_classify_hzgs bigint comment '客户类型-合资公司数量'
          ,customer_classify_jg bigint comment '客户类型-军供数量'
          ,customer_classify_zhhangy bigint 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 '客户维度-客户所属省'
      ) comment '工单主题表'
      partitioned by (month String, week String, day String)
      stored as orc
      location '/data/dw/st/one_make/subj_worker_order'
      ;
      
    • 构建

      insert overwrite table one_make_st.subj_worker_order partition(month = '202101', week='2021W1', day='20210101')
      select
          sum(case when fcs.process_way_name = '自己处理' then 1 else 0 end) owner_process, --工单自处理个数
      	sum(case when fcs.process_way_name = '转派工' then 1 else 0 end) tran_process,    --工单转派工个数
      	sum(fwo.wo_num) wokerorder_num,                                      --工单总数
      	max(fwo.wo_num) wokerorder_num_max,                                  --最大值
          min(fwo.wo_num) wokerorder_num_min,                                  --最小值
      	avg(fwo.wo_num) wokerorder_num_avg,                                  --平均值
      	sum(fwo.install_num) install_sumnum,                                     --安装总数
      	sum(fwo.repair_num) repair_sumnum,                                       --维修总数
          sum(fwo.remould_num) remould_sumnum,                                     --巡检总数
      	sum(fwo.inspection_num) inspection_sumnum,                               --改造总数
      	sum(fwo.alread_complete_num) alread_complete_sumnum,                     --完工总数
          sum(case when oil.customer_classify_name ='中石化' then 1 else 0 end) customer_classify_zsh,       --中石化数量
      	sum(case when oil.customer_classify_name ='经销商' then 1 else 0 end) customer_classify_jxs,       --经销商数量
          sum(case when oil.customer_classify_name ='其他直销' then 1 else 0 end) customer_classify_qtzx,      --其他直销数量
      	sum(case when oil.customer_classify_name ='中石油' then 1 else 0 end) customer_classify_zsy,       --中石油数量
          sum(case when oil.customer_classify_name ='其他往来户' then 1 else 0 end) customer_classify_qtwlh,     --其他往来户数量
      	sum(case when oil.customer_classify_name ='中化集团' then 1 else 0 end) customer_classify_zhjt,      --中化集团数量
          sum(case when oil.customer_classify_name ='中海油' then 1 else 0 end) customer_classify_zhy,       --中海油数量
      	sum(case when oil.customer_classify_name ='供应商' then 1 else 0 end) customer_classify_gys,        --供应商数量
          sum(case when oil.customer_classify_name ='一站制造**' then 1 else 0 end) customer_classify_onemake,     --一站制造数量
      	sum(case when oil.customer_classify_name ='服务工程师' then 1 else 0 end) customer_classify_fwy,          --服务工程师数量
          sum(case when oil.customer_classify_name ='中铁' then 1 else 0 end) customer_classify_zt,           --中铁数量
      	sum(case when oil.customer_classify_name ='合资公司' then 1 else 0 end) customer_classify_hzgs,         --合资公司数量
          sum(case when oil.customer_classify_name ='军供' then 1 else 0 end) customer_classify_jg,             --军供数量
      	sum(case when oil.customer_classify_name ='中航油' then 1 else 0 end) customer_classify_zhhangy,         --中航油数量
          dd.date_id dws_day,                                                  --时间天
      	dd.week_in_year_id dws_week,                                         --时间周
      	dd.year_month_id dws_month,                                          --时间月
      	oil.company_name oil_type,                                           --油站类型
      	oil.province_name oil_province,                                      --油站省份
          oil.city_name oil_city,                                              --油站城市
      	oil.county_name oil_county,                                          --油站地区
      	oil.customer_classify_name customer_classify,                        --客户类型
      	oil.customer_province_name customer_province                         --客户省份
      --工单事务事实表
      from one_make_dwb.fact_worker_order fwo
      --获取自处理个数,转派单个数
      left join one_make_dwb.fact_call_service fcs on fwo.callaccept_id = fcs.id
      --关联日期维度
      left join one_make_dws.dim_date dd on fwo.dt = dd.date_id
      --关联油站维度
      left join one_make_dws.dim_oilstation oil on fwo.oil_station_id = oil.id
      where dd.year_month_id = '202101'and dd.week_in_year_id = '2021W1' and  dd.date_id = '20210101'
      --按照维度字段分组
      group by dd.date_id, dd.week_in_year_id, dd.year_month_id, oil.company_name, oil.province_name, oil.city_name, oil.county_name,oil.customer_classify_name, oil.customer_province_name
      ;
      
  • 小结

    • 实现工单主题表的维度指标构建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML之表单标签

目录 表单标签 Form表单 定义: 基本语法结构: form属性: enctyoe属性 fieldeset标签 fieldeset属性 legend标签 label标签 优势 label属性 input标签 input属性 input标签中的type属性 text text输入框有以下配套属性 searc bu…

【Android】控件与布局入门 - 简易计算器

目录 1. 基础开发环境 2. 计算器的布局和相关按钮 3. 计算器的主要运算逻辑 4. APK 文件 5. 项目源码 1. 基础开发环境 JDK:JDK17 Android Studio:Android Studio Giraffe | 2022.3.1 Android SDK:Android API 34 Gradle: gradle-8.0-bi…

大屏可视化(VUE2 + DataV)

准备:安装vue脚手架(vue/cli),创建vue2项目,安装dataV,在main.js入口文件中引入dataV。 dataV地址:DataV 一、dataV安装 npm install jiaminghi/data-view 二、main.js import Vue from vu…

postgis mvt矢量切片 django drf mapboxgl

postgis mvt矢量切片 django drf mapboxgl 0.前提 [1] 静态的矢量切片可以采用 tippecanoe 生成,nginx代理,这种数据是不更新的; [2] 动态的矢量切片,一般采用postgis生成。基本上矢量切片80%的厂商都采用postgis,确实…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现

一、本章内容 本章实现工作台界面相关内容,包括echart框架引入,mock框架引入等,实现工作台界面框架搭建,数据加载。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集-工作台界面布局实现 五、…

大麦订单生成器 大麦一键生成订单

后台一键生成链接,独立后台管理 教程:修改数据库config/Conn.php 不会可以看源码里有教程 下载源码程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

上榜 Gartner | 中国领先的实时数据管理厂商 DolphinDB

在 Gartner 近日发布的 Hype Cycle for Data, Analytics and AI in China, 2023 报告中,DolphinDB 位列实时数据管理代表厂商。这是自去年 DolphinDB 入选 Gartner《中国数据库管理系统供应商甄选》后,又一次凭借领先的产品能力获得国际权威第三方分析机…

Python(五十九)字典的实现原理

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【css】css实现水平和垂直居中

通过 justify-content 和 align-items设置水平和垂直居中&#xff0c; justify-content 设置水平方向&#xff0c;align-items设置垂直方向。 代码&#xff1a; <style> .center {display: flex;justify-content: center;align-items: center;height: 200px;border: 3px…

DM开启慢日志监控并用DmLog工具分析数据

工具描述 DMLOG用于对达梦SQL日志进行统计分析&#xff0c;便于SQL优化人员进行查看捕获关键信息&#xff0c;不提供SQL优化建议。DMLOG用java语言编写&#xff0c;不受操作系统平台限制&#xff0c;大小不超过10M&#xff0c;在安装好Java环境后&#xff0c;可在各平台运行。 …

全面了解CPU Profiler:解读CPU性能分析工具的核心功能与用法

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、使用3.1 通过调用系统API3.2 通过Android Stu…

填补5G物联一张网,美格智能快速推进RedCap商用落地

自5G R17版本标准冻结以来&#xff0c;RedCap一直引人注目。2023年更是5G RedCap突破性发展的一年&#xff0c;从首款5G RedCap调制解调器及射频系统——骁龙X35发布&#xff0c;到国内四大运营商发布RedCap技术白皮书&#xff0c;芯片厂商、模组厂商、运营商及终端企业都在积极…

MySQL索引题分析

前言&#xff1a;该篇随笔通过一些案例&#xff0c;对索引相关的题进行分析。 0.准备 #1.创建test表&#xff08;测试表&#xff09;。 drop table if exists test; create table test( id int primary key auto_increment, c1 varchar(10), c2 varchar(10), c3 varchar(10), …

KCC@南京开源读书会-开源大咖云聚南京等你来

KCC&#xff0c;全称 KAIYUANSHE City Community&#xff08;中文&#xff1a;开源社城市社区&#xff09;是由开源社发起&#xff0c;旨在让开源社区在每个城市落地生根的地域性开源组织。自2023年2月份发起以来&#xff0c;我们已经在南京、上海、深圳、北京、硅谷、新加坡、…

用思维导图带你解读电子商务数据分析基本指标,产品、运营者必看

随着时代的发展&#xff0c;越来越多的人参与到电商之中。电商即电子商务&#xff0c;是依托现代信息网络技术&#xff0c;以商品交换为中心的新型商务贸易活动。电商可并不简单&#xff0c;做好电商又有哪些关键呢&#xff1f;别急&#xff0c;再此之前&#xff0c;需要先了解…

SunnyUI美化winform

SunnyUI美化winform 一.效果展示二.SunnyUI是什么&#xff1f;三.如何使用SunnyUI?3.1 将文件夹放入Debug目录下3.2 在项目文件中添加SunnyUI库3.3 添加SunnyUI.dll文件 四.使用SunnyUI库美化4.1 打开Demo程序copy 五.结语 一.效果展示 二.SunnyUI是什么&#xff1f; Sunny其…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板8

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

Vue [Day1]

学习视频&#xff1a; 【2023新版Vue2Vue3基础入门到实战项目全套教程&#xff0c;自学前端vue就选黑马程序员&#xff0c;一套全通关&#xff01;】 初识VUE Vue2官网 https://v2.cn.vuejs.org Vue3官网 https://cn.vuejs.org <!DOCTYPE html> <html lang"en&…

遥感、GIS、GPS在土壤空间数据分析、适应性评价、制图、土壤普查中怎样应用?

摸清我国当前土壤质量与完善土壤类型&#xff0c;可以为守住耕地红线、保护生态环境、优化农业生产布局、推进农业高质量发展奠定坚实基础&#xff0c;为此&#xff0c;2022年初国务院印发了《关于开展第三次全国土壤普查的通知》&#xff0c;决定自2022年起开展第三次全国土壤…

无涯教程-Lua - Modules(模块)

模块就像可以使用 require 加载的库&#xff0c;并且具有包含Table的单个全局名称&#xff0c;该模块可以包含许多函数和变量。 Lua 模块 其中一些模块示例如下。 -- Assuming we have a module printFormatter -- Also printFormatter has a funtion simpleFormat(arg) -- …