助力工业物联网,工业大数据之油站事实指标需求分析【十九】

news2024/11/15 11:04:50

文章目录

    • 01:油站事实指标需求分析
    • 02:油站事实指标构建

01:油站事实指标需求分析

  • 目标掌握DWB层油站事实指标表的需求分析

  • 路径

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

    • 目标需求:基于油站信息及设备数据构建油站主题事实的油站个数、停用个数、新增个数、设备个数等

      image-20211003144602187

      • 油站数量:1个油站就是一条数据,这个值默认就为1

      • 已停用油站数量:停用状态,判断油站的状态是什么状态

      • 有效油站数量:使用状态,判断油站的状态是什么状态

      • 当日新增油站:判断之前有没有这个油站

        • 历史记录表:oil_history:记录了当前所有油站的信息

          • id、name
        • 今日新数据:oil_current:记录了今天所有油站的信息

          • id、name
        • left join

          oil_current a  left join oil_history b on  a.id = b.id
          where b.id is null
          
        • 当日停用油站:判断当日状态

        • 油站设备数量:得到这个油站的所有设备信息,按照油站id分组统计设备个数

    • 数据来源

      • ciss_base_oilstation:油站信息表

        select
           id os_id					--油站id
           , name os_name				--油站名称
           , code os_code				--油站编码
           , province province_id		--油站省份
           , city city_id				--油站城市
           , region county_id			--油站区域
           , status status_id			--油站状态
           , customer_classify cstm_type_id		--客户分类id
           , 1 os_num							--油站数量:默认为1
           , case when status = 2 then 1 else 0 end invalid_os_num		--停用油站数量:1-停用,0-启用
           , case when status = 1 then 1 else 0 end valid_os_num		--有效油站数量:1-有效,0-无效
        from ciss_base_oilstation;
        
      • ciss_base_oilstation_history:油站历史记录表

        • 模拟油站历史记录

          create table if not exists one_make_dwd.ciss_base_oilstation_history
          stored as orc
          as select * from one_make_dwd.ciss_base_oilstation
          where dt < '20210102';
          
        • 查询历史油站信息

          --获取当前的油站是否是一个新增油站
          select
              oil.id
              , case when oil.id = his.id then 0 else 1 end current_new_os_num
          --今日油站数据表
          from one_make_dwd.ciss_base_oilstation oil
          --历史油站数据表
          left outer join one_make_dwd.ciss_base_oilstation_history his
          on oil.id = his.id where oil.dt = '20210101';
          
        • ciss_base_device_detail:油站设备信息表

          -- 设备信息表中按照油站id分组聚合设备id:每个油站的设备个数
          select
              oil.id, count(dev.id) device_num 
          from one_make_dwd.ciss_base_oilstation oil
          left join one_make_dwd.ciss_base_device_detail dev on oil.id = dev.oilstation_id
          where oil.dt = '20210101'
          group by oil.id;
          
  • 小结

    • 掌握DWB层油站事实指标表的需求分析

02:油站事实指标构建

  • 目标实现DWB层油站事实指标表的构建

  • 实施

    • 建表

      -- 创建油站事实表
      drop table if exists one_make_dwb.fact_oil_station;
      create table if not exists one_make_dwb.fact_oil_station(
          os_id string comment '油站id'
          , os_name string comment '油站名称'
          , os_code string comment '油站编码'
          , province_id string comment '省份id'
          , city_id string comment '城市id'
          , county_id string comment '县id'
          , status_id int comment '状态id'
          , cstm_type_id int comment '客户分类id'
          , os_num int comment '油站数量 默认为1'
          , invalid_os_num int comment '已停用油站数量(状态为已停用为1,否则为0)'
          , valid_os_num int comment '有效油站数量(状态为启用为1,否则为0)'
          , current_new_os_num int comment '当日新增油站(新增油站为1,老油站为0)'
          , current_invalid_os_num int comment '当日停用油站(当天停用的油站数量)'
          , device_num int comment '油站设备数量' 
      )
      comment "油站事实表"
      partitioned by (dt string)
      stored as orc
      location '/data/dw/dwb/one_make/fact_oil_station';
      
    • 抽取

      insert overwrite table one_make_dwb.fact_oil_station partition(dt = '20210101')
      select
         oil.id os_id					--油站id
         , name os_name				--油站名称
         , code os_code				--油站编码
         , province province_id		--油站省份
         , city city_id				--油站城市
         , region county_id			--油站区域
         , status status_id			--油站状态
         , customer_classify cstm_type_id		--客户分类id
         , 1 os_num							--油站数量:默认为1
         , case when status = 2 then 1 else 0 end invalid_os_num		--停用油站数量:1-停用,0-启用
         , case when status = 1 then 1 else 0 end valid_os_num		--有效油站数量:1-有效,0-无效
         , current_new_os_num					--当日新增油站数量,1-新增,0-老油站
         , case when current_invalid_os_num is null then 0 else current_invalid_os_num end current_invalid_os_num --当日停用油站数量
         , device_num							--油站设备数量
         --油站信息表
      from one_make_dwd.ciss_base_oilstation oil
           left join (
      	     --关联历史油站表,判断是否为新增油站
               select 
      		     oil.id
      			 , case when oil.id = his.id then 0 else 1 end current_new_os_num 
      		 from one_make_dwd.ciss_base_oilstation oil
               left outer join one_make_dwd.ciss_base_oilstation_history his 
      		 on oil.id = his.id where oil.dt = '20210101'
           ) oilnewhis on oil.id = oilnewhis.id
           left join (  
               --关联停用油站数据,统计今日停用油站个数 
               select 
      		     oil.id, count(oil.id) current_invalid_os_num 
      		 from one_make_dwd.ciss_base_oilstation oil 
      		 where oil.dt = '20210101' and oil.status = 2 group by oil.id
           ) invalidos on oil.id = invalidos.id
           left join (
      		 --关联油站设备信息表,统计油站设备个数
               select 
      		     oil.id, count(dev.id) device_num from one_make_dwd.ciss_base_oilstation oil
               left join one_make_dwd.ciss_base_device_detail dev on oil.id = dev.oilstation_id
               where oil.dt = '20210101'
               group by oil.id
           ) devinfo on oil.id = devinfo.id;
      
  • 小结

    • 实现DWB层油站事实指标表的构建

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

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

相关文章

Blend for Visual Sdudio创建C++工程

&#xff08;1&#xff09;打开Blend for Visual Sdudio &#xff08;2&#xff09;点击“创建新项目” &#xff08;3&#xff09;在最右侧下拉到最底部&#xff0c;点击“安装多个工具和功能” &#xff08;4&#xff09;在最底部点击“关闭” &#xff08;5&#xff09;点击…

【电压和电压稳定指数研究】带多台配电发电机 (DG) 的径向配电系统研究【IEEE33节点】(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 电压和电压稳定指数研究是关于电力系统中电压水平和其稳定性的研究。电力系统中的电压是指电网中的电压水平&#xff0c;通常以相电压&#xf…

树莓派本地快速搭建web服务器,并发布公网访问

文章目录 树莓派本地快速搭建web服务器&#xff0c;并发布公网访问 树莓派本地快速搭建web服务器&#xff0c;并发布公网访问 随着科技的发展&#xff0c;电子工业也在不断进步&#xff0c;我们身边的电子设备也在朝着小型化和多功能化演进&#xff0c;以往体积庞大的电脑也在…

vue3 - 报错 Cannot use ‘in‘ operator to search for ‘path‘ in undefined (完美解决)

问题描述 在vue3项目中,浏览器控制台报错 Cannot use ‘in’ operator to search for ‘path’ in undefined 详细解决方案。 解决方案 在创建vue3的路由时,报了这样的错:Cannot use ‘in’ operator to search for ‘path’ in undefined,

flutter开发实战-父子Widget组件调用方法

flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法&#xff0c;子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法&#xff0c;子组件通过方法回调callback方法调用父组…

U盘里的资料丢失怎么恢复,分享两种有效解决方法

平常我们在用u盘拉文件的时候&#xff0c;有时候会突然发现&#xff0c;本来好好的文件就无缘无故丢失了&#xff0c;这是因为什么情况呢&#xff1f;一般来说&#xff0c;出现这种问题&#xff0c;可能是因为u盘文件被格式化&#xff0c;或者u盘存储损坏了。但是呢&#xff0c…

一键式三分钟轻松打造线上展厅

导语&#xff1a; 在数字时代&#xff0c;线上展厅已成为企业展示品牌和产品的重要方式。随着虚拟现实&#xff08;VR&#xff09;技术的发展&#xff0c;蛙色VR平台成为众多企业选择的首选&#xff0c;因其独特的优势和特点&#xff0c;让线上展厅的打造变得轻松、高效且令人…

使用C#基于ComPDFKit SDK快速构建PDF阅读器

在当今世界&#xff0c;Windows 应用程序对我们的工作至关重要。随着处理 PDF 文档的需求不断增加&#xff0c;将 ComPDFKit PDF 查看和编辑功能集成到您的 Windows 应用程序或系统中&#xff0c;可以极大地为您的用户带来美妙的体验。 在本博客中&#xff0c;我们将首先探索集…

JGIT获取远程仓库、本地仓库提交版本号

https://www.freesion.com/article/50181381474/ JGIT获取远程仓库、本地仓库提交版本号 一、环境搭建二、项目结构二、代码部分 GitUtils.javaGitInfoAtom.java三、运行结果&#xff1a;总结 一、环境搭建 Maven依赖导入 <dependency><groupId>org.eclipse.jg…

进入linux系统中修改网段-ip

第一步 &#xff1a;开启虚拟机 cd 到 /etc/sysconfig/network-scripts 目录下&#xff0c;输入命令给ls,展示这个目录下文件和文件夹 第二步&#xff1a;进入到以ifcfg开头的文件 # ifcfg开头的文件&#xff0c;如果有多个网卡&#xff0c;有多个ifcfg-ensxx文件 命令…

【从零开始学爬虫】采集全国各行业经销商网点数据

l 采集网站 【场景描述】采集全国各行业经销商网点数据&#xff0c;以建材行业为例。 【源网站介绍】买购网MAIGOO.COM建材家居频道&#xff0c;专门提供地面材料、墙顶饰材、洁具五金、门窗楼梯、水电电工、外墙材料、照明灯饰、家纺布艺、家具定制等行业&#xff0c;最新品…

LeetCode.189(轮转数组)

对于轮转数组这个题&#xff0c;文章一共提供三种思路&#xff0c;对于每种思路均提供其对应代码的时间、空间复杂度。 目录 1. 创建变量来保存最后一个数&#xff0c;并将其余数组向前挪动一位 &#xff1a; 1.1 原理解析&#xff1a; 1.2 代码实现&#xff1a; 2.创建一个…

【学习笔记】行为识别SOTA方法比较

这里写目录标题 前言方法1 基于CNN的方法Slow-fast&#xff1a; 2 基于Vision-Transformer的方法Video TimeSformer :Video Swin Transformer : 3、基于自监督的方法VideoMAE&#xff1a; 4、基于多模态的方法Intern video: 前言 常用行为识别数据集包括&#xff1a;HMDB-51、…

TL-ER3220G设置vlan

TL-ER3220G是企业宽带路由器。 自带5个RJ45接口。 其中接口1到接口4都可以接入宽带线路。最多可以并接4路。 本例由接口1接入宽带&#xff0c;默认接口2到接口4组成1个vlan&#xff0c;名称vlan。其中接口5特殊&#xff0c;带宽最大100M。 计划将接口2和接口4组成第一个vlan&…

STM32使用HAL库BH1750光照度传感器

开发环境 单片机&#xff1a;STM32F103C8T6 光照度传感器&#xff1a;BH1750 IDE&#xff1a;KEILSTM32CUBEMX 单片机配置 1、STM32CUBEMX BH1750代码 1、头文件 /* ************************************************* BH1750光照数据计算&#xff08;LUX&#xff09; …

H5和小程序测试点分析

最近接触了较多关于H5页面的测试&#xff0c;H5页面的测试除了业务逻辑功能测试外&#xff0c;其他部分的测试方法基本是可以通用的&#xff0c;在此对H5页面和小程序的一些通用测试方法进行总结分享给大家。 H5优势&#xff1a; 1.H5可以跨平台&#xff0c;开发成本相对较低…

中共湖南麒麟信安科技股份有限公司委员会召开庆祝建党102 周年暨“七一”表彰大会

为隆重庆祝中国共产党成立 102 周年&#xff0c;6月30日下午&#xff0c;中共湖南麒麟信安科技股份有限公司委员会召开庆祝建党102 周年暨“七一”表彰大会。麒麟信安党委书记王忠锋出席会议&#xff0c;党委副书记李广辉主持会议&#xff0c;全体党委委员、各支部委员、受表彰…

Gitlab 合并分支与请求合并

合并分支 方式一&#xff1a;图形界面 使用 GitGUI&#xff0c;右键菜单“GitExt Browse” - 菜单“命令” - 合并分支 方式二&#xff1a;命令行 在项目根目录下打开控制台&#xff0c;注意是本地 dev 与远程 master 的合并 // 1.查看本地分支&#xff0c;确认当前分支是否…

Elasticsearch-增删改查数据工作原理

集群 集群的基本概念&#xff1a; 集群&#xff1a;ES 集群由一个或多个 Elasticsearch 节点组成&#xff0c;每个节点配置相同的 cluster.name 即可加入集群&#xff0c;默认值为 “elasticsearch”。节点&#xff1a;一个 Elasticsearch 服务启动实例就是一个节点&#xff…

伦敦银定盘价机制的改变

一直以来&#xff0c;伦敦都是全球最大的现货白银定价中心&#xff0c;LBMA也是全球金银市场中最具有影响力的机构组织&#xff0c;其定盘价一直是世界各白银市场基准价的主要参考标准&#xff0c;被广泛应用于生产厂商、消费者和金融机构之间的交易结算&#xff0c;也是众多白…