助力工业物联网,工业大数据之服务域:油站主题分析【二十六】

文章目录

07:服务域:油站主题分析

  • 目标掌握油站主题的需求分析

  • 路径

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

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

    • 分析

      • 指标:油站数量、新增油站数量

      • 维度

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

        • 事实表

          • fact_oil_station:油站事实表

            sql 复制代码
            select
                os_num,--油站个数
                current_new_os_num --新增油站个数
            from fact_oil_station;
          • 维度表

            • dim_oilstation:油站维度表

              sql 复制代码
              select
                  id,--油站id
                  company_name,--公司名称
                  province_name,--省份名称
                  city_name,--城市名称
                  county_name,--区域名称
                  customer_classify_name,--客户名称
                  customer_province_name--客户省份
              from dim_oilstation;
            • dim_date:时间维度表

              sql 复制代码
              select
                  date_id,--天
                  week_in_year_id,--周
                  year_month_id --月
              from dim_date;
  • 实现分析

    select
    
           a.os_id,--油站id
    
           sum(a.os_num),--油站数量
    
           sum(a.current_new_os_num),--新增油站数量
    
           b.date_id,--天
    
           b.week_in_year_id,--周
    
           b.year_month_id, --月
    
           c.company_name,--公司名称
    
           c.province_name,--省份名称
    
           c.city_name,--城市名称
    
           c.county_name,--区域名称
    
           c.customer_classify_name,--客户名称
    
           c.customer_province_name--客户省份
    
       from fact_oil_station a
    
       join one_make_dws.dim_date b on a.dt = b.date_id
    
       join one_make_dws.dim_oilstation c on a.os_id = c.id
    
       group by
    
           b.date_id,--天
    
           b.week_in_year_id,--周
    
           b.year_month_id, --月
    
           c.company_name,--公司名称
    
           c.province_name,--省份名称
    
           c.city_name,--城市名称
    
           c.county_name,--区域名称
    
           c.customer_classify_name,--客户名称
    
           c.customer_province_name;--客户省份;
    
  • 小结

    • 掌握油站主题的需求分析

08:服务域:油站主题实现

  • 目标实现油站主题表的维度指标构建

  • 实施

    • 建表

      sql 复制代码
      -- 创建油站主题表
      drop table if exists one_make_st.subj_oilstation;
      create table if not exists one_make_st.subj_oilstation(
          sum_osnum bigint comment '油站数量'
          ,sumnew_osnum 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_oilstation';
    • 构建

      sql 复制代码
      insert overwrite table one_make_st.subj_oilstation partition(month = '202101', week='2021W1', day='20210101')
      select
          sum(oil.os_num) sum_osnum,                          --油站数量
      	sum(oil.current_new_os_num) sumnew_osnum,           --新增油站数量
          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_oil_station oil
      --关联日期维度表
      left join one_make_dws.dim_date dd on oil.dt = dd.date_id
      --关联油站维度表
      left join one_make_dws.dim_oilstation dimoil on oil.os_id = dimoil.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,  dimoil.company_name, dimoil.province_name, dimoil.city_name, dimoil.county_name, dimoil.customer_classify_name, dimoil.customer_province_name;
  • 小结

    • 实现油站主题表的维度指标构建
相关推荐
qq_4419960526 分钟前
Mybatis官方生成器使用示例
java·mybatis
巨大八爪鱼32 分钟前
XP系统下用mod_jk 1.2.40整合apache2.2.16和tomcat 6.0.29,让apache可以同时访问php和jsp页面
java·tomcat·apache·mod_jk
PGCCC33 分钟前
【PGCCC】Postgresql 存储设计
数据库·postgresql
码上一元2 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
计算机-秋大田2 小时前
基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
java·spring boot·微信小程序·小程序·vue
PcVue China2 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
Mephisto.java4 小时前
【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
大数据·学习·hbase
魔道不误砍柴功4 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
失落的香蕉4 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
锐策4 小时前
〔 MySQL 〕数据库基础
数据库·mysql