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

文章目录

    • 09:服务域:安装主题分析实现
    • 10:服务域:维修主题分析实现

09:服务域:安装主题分析实现

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

  • 路径

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

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

      image-20211004101636246

    • 分析

      • 指标:安装数量、支付金额

      • 维度

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

        • 事实表

          • fact_srv_install:安装事务事实表

            selectinst_id, --安装单idinst_type_id, --安装方式id 1-设备安装,2-设备联调exp_device_money, --安装费用dt,--日期
            os_id --油站id
            from one_make_dwb.fact_srv_install;
            
      • 维度表

        • dim_oilstation:油站维度表

          selectid,--油站idcompany_name,--公司名称province_name,--省份名称city_name,--城市名称county_name,--区域名称customer_classify_name,--客户名称customer_province_name--客户省份
          from dim_oilstation;
          
          • dim_date:时间维度表

            selectdate_id,--天week_in_year_id,--周year_month_id --月
            from dim_date;
            

            image-20211013104333958

    • 实现

      • 建表

        create table if not exists one_make_st.subj_install(install_way string comment '安装方式',install_sum bigint comment '安装数量',sum_money 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 '客户维度-客户所属省'
        ) 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.idwhere dd.year_month_id = '202101' and dd.week_in_year_id = '2021W1' and dd.date_id = '20210101'--按照维度分组group byinst_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:维修事务事实表

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

          selectss_id,--服务网点idlogi_cmp_id --物流公司id
          from fact_srv_stn_ma;
          
      • 维度表

        • dim_oilstation:油站维度表

          selectid,--油站idcompany_name,--公司名称province_name,--省份名称city_name,--城市名称county_name,--区域名称customer_classify_name,--客户名称customer_province_name--客户省份
          from dim_oilstation;
          
        • dim_date:时间维度表

          selectdate_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')selectsum(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,case when (size(split(fault_type_ids, ','))) <= 0 then 0 else (size(split(fault_type_ids, ','))) end fault_type_num,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,type_name logi_company--维修事务事实表from one_make_dwb.fact_srv_repair repair--关联日期维度表left join one_make_dws.dim_date dd on repair.dt = dd.date_id--关联油站维度表left join one_make_dws.dim_oilstation dimoil on repair.os_id = dimoil.id--关联网点物料事实表:获取物流公司idleft join one_make_dwb.fact_srv_stn_ma fssm on repair.ss_id = fssm.ss_id--关联物流维度表:获取物流公司名称left join (select type_id, type_name from one_make_dws.dim_logistics where prop_name = '物流公司') dl on fssm.logi_cmp_id = dl.type_idwhere dd.year_month_id = '202101'and dd.week_in_year_id = '2021W1' and  dd.date_id = '20210101' and exp_rpr_num = 1) repair_tmpgroup by dws_day, dws_week, dws_month, oil_type, oil_province, oil_city, oil_county,customer_classify, customer_province,logi_company;
    
  • 小结

    • 掌握维修主题的需求分析与实现

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析人脸识别技术:原理、应用与未来发展

人脸识别技术&#xff1a;从原理到应用 引言人脸识别技术的重要性和应用领域 人脸识别的基本原理图像采集与预处理特征提取与表征数据匹配与比对 传统人脸识别方法主成分分析&#xff08;PCA&#xff09;线性判别分析&#xff08;LDA&#xff09;小波变换在人脸识别中的应用 深…

Grafana集成prometheus(3.Grafana添加promethus数据)

添加数据库 选择Connections -> Datasources&#xff0c;点击Add New data source&#xff0c;填写Promitheus Server Url,点击 save & test完成配置 添加DashBorad 选择prometheus数据库选择code填入对应的查询公式(监控公式参考Prometheus监控公式)修改面板名称Ti…

Centos虚拟机忘记密码-修改密码

1.重启系统 2.在这个选择界面&#xff0c;按e建 3.找到如下位置&#xff0c;插入init/bin/sh 4.填写完成后按Ctrlx引导启动 5.输入mount -o remount, rw / (注意空格) 6.重置密码 出现以下为重置成功 7.执行touch /.autorelabel 8.退出exec /sbin/init 9.输入你的新密…

flutter开发实战-video_player视频播放功能及视频缓存

flutter开发实战-video_player视频播放功能及视频缓存 最近开发过程中video_player播放视频&#xff0c; 一、引入video_player 在pubspec.yaml引入video_player video_player: ^2.7.0在iOS上&#xff0c;video_player使用的是AVPlayer进行播放。 在Android上&#xff0c;…

代码分析:循环创建N个子进程——为什么最后一个属于父进程?

黑马C/C 2018年32期代码分析 //循环创建n个子进程 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <unistd.h>int main() {int i 0;for(i0; i<3; i){//创建子进程pid_t pid fork();if(pid&…

EMD经验模态分解介绍

EMD概述 其实一种信号分解方法&#xff0c;是一种自适应的数据处理方法&#xff0c;适合非线性和非平稳时间序列的分析和研究&#xff0c;其本质是对数据序列或信号的平稳化处理。 将上面6个信号叠加如下&#xff1a; 就是6个简单信号叠加&#xff0c;形成一个复杂信号。 核心…

关于 Ubuntu 长按 shift 无效, 按 Esc 直接进入 grub 改密码的解决方法

本次长按shift没有反应&#xff0c;直接进入了系统界面&#xff0c;所以改用长按Esc键&#xff0c;步骤如下&#xff1a; 1. 长按esc&#xff0c;进入grub>提示 2.输入grub>normal &#xff0c;回车 3.上一步回车后&#xff0c;继续敲击Esc &#xff0c;出现grub界面 …

2023.08.01 驱动开发day8

驱动层 #include <linux/init.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_irq.h> #include <linux/interrupt.h> #include <linux/fs.h> #include <linux/gpio.h> #include <linux/of_gpio.h>#…

嵌入式开发学习(STC51-7-矩阵按键)

内容 按下S1-S16键&#xff0c;对应数码管最左边显示0-F 矩阵按键简介 独立按键与单片机连接时&#xff0c;每一个按键都需要单片机的一个I/O 口&#xff0c;若某单片机系统需较多按键&#xff0c;如果用独立按键便会占用过多的I/O口资源&#xff1b;而单片机 系统中I/O口资…

【网络编程·传输层】UDP和TCP的报头

目录 一、端口号划分 二、部分指令 1、pidof&#xff08;用于查看进程id&#xff09; 2、netstat&#xff08;查看网络状态&#xff09; 三、UDP协议 1、UDP协议格式 2、UDP协议如何进行封装、解包、分用 2.1封装、解包 2.2分用 3、UDP协议的特点 3.1UDP协议的特点 …

装饰器模式(C++)

定义 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言&#xff0c;Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。 一《设计模式》 GoF 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xf…

【深度学习环境】安装anaconda、tensorflow、pycharm

目录 1.安装anaconda 2.安装tensorflow-gpu 3.安装pycharm 4.VNC操作 5.安装Pytorch PS: linux下常见的操作&#xff1a; 1.Linux下强制关闭程序&#xff1a; 2.导出环境 2.1.pip导出 2.2.conda导出 2.3.其他 3.windows下的环境安装 & pycharm远程配置 4.bash…

PostgreSQL Patroni_exporter 监控 patroni高可用工具

Patroni是Cybertec公司基于python语言开发的&#xff0c;可用于使用流复制来创建&#xff0c;管理&#xff0c;维护和监视高可用性PostgreSQL集群设置的工具。 目前&#xff0c;PatroniEtcd 是最为推荐的PostgreSQL数据库高可用方案之一。 PostgreSQL有postgres_exporter监控采…

人工智能学习07--pytorch23--目标检测:Deformable-DETR训练自己的数据集

参考 https://blog.csdn.net/qq_44808827/article/details/125326909https://blog.csdn.net/dystsp/article/details/125949720?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-125949720-blog-125326909.235^v38^pc_releva…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何接口测试,妈妈再也不担心我不会接口测试了

1.简介 Fiddler最大的优势在于抓包&#xff0c;我们大部分使用的功能也在抓包的功能上&#xff0c;fiddler做接口测试也是非常方便的。 领导或者开发给你安排接口测试的工作任务&#xff0c;但是没有给你接口文档&#xff08;由于开发周期没有时间出接口文档&#xff09;&…

ProgressBar基本使用

作用&#xff1a;进度条&#xff0c;用于展示某个任务的完成情况&#xff0c; 常用属性&#xff1a; 设定进度条的最大、最小值、自增步长 常用事件&#xff1a; 后台代码&#xff1a; private void progressBar1_Click(object sender, EventArgs e){Thread t;//使用线程执行…

TabR:检索增强能否让深度学习在表格数据上超过梯度增强模型?

这是一篇7月新发布的论文&#xff0c;他提出了使用自然语言处理的检索增强Retrieval Augmented技术&#xff0c;目的是让深度学习在表格数据上超过梯度增强模型。 检索增强一直是NLP中研究的一个方向&#xff0c;但是引入了检索增强的表格深度学习模型在当前实现与非基于检索的…

uniapp:图片验证码检验问题处理

图形验证码功能实现 uniapp&#xff1a;解决图形验证码问题及利用arraybuffer二进制转base64格式图片&#xff08;后端传的图片数据形式&#xff1a;x00\x10JFIF\x00\x01\x02\x00…&#xff09;_❆VE❆的博客-CSDN博客 UI稿&#xff1a; 需求&#xff1a;向后端请求验证码图片&…

03 制作Ubuntu启动盘

1 软碟通 我是用软碟通制作启动盘。安装软碟通时一定要把虚拟光驱给勾选上&#xff0c;其余两个可以看你心情。 2 镜像文件 我使用清华镜像网站找到的Ubuntu镜像文件。 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 请自己选择镜像…

IOS看书最终选择|源阅读转换|开源阅读|IOS自签

环境&#xff1a;IOS想使用 换源阅读 问题&#xff1a;换新手机&#xff0c;源阅读下架后&#xff0c;没有好的APP阅读小说 解决办法&#xff1a;自签APP 转换源仓库书源 最终预览 &#xff1a;https://rc.real9.cn/ 背景&#xff1a;自从我换了新iPhone手机&#xff0c;就无法…