助力工业物联网,工业大数据之工业大数据之油站维度设计【十四】

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 助力工业物联网,工业大数据之工业大数据之油站维度设计【十四】

01:油站维度设计

  • 目标:掌握油站维度的需求与设计
  • 路径
  • step1:需求
  • step2:设计
  • 实施
  • 需求:构建油站维度表,得到油站id、油站名称、油站所属的地理区域、所属公司、油站状态等

  • 设计
  • 数据来源
  • ciss_base_oilstation:油站信息表
select
    id, name, code,
    customer_id, customer_name,
    province, city, region, township,
    status, customer_classify, dt
from one_make_dwd.ciss_base_oilstation
where id != '' and name is not null and name != 'null' and customer_id is not null;
  • eos_dict_type:字典状态类别表,记录所有需要使用字典标记的表
select * from eos_dict_type where dicttypename = '油站状态';
  • eos_dict_entry:字典状态明细表,记录所有具体的状态或者类别信息
select * from eos_dict_entry where dicttypeid = 'BUSS_OILSTATION_STATUS';
  • ciss_base_baseinfo:客户公司信息表【公司ID、公司名称】
select ygcode, companyname from one_make_dwd.ciss_base_baseinfo group by ygcode, companyname;
  • 数据有重复,做个去重
  • ciss_base_customer:客户信息表【客户id、客户省份名称、所属公司ID】
select code, province, company from one_make_dwd.ciss_base_customer;
  • ciss_base_areas:行政地区信息表
  • 通过具体的id关联所有地区信息
  • 实现设计
  • 所有表按照对应字段关联,获取对应的属性字段
  • 小结
  • 掌握油站维度的需求与设计

02:油站维度构建

  • 目标实现油站维度的构建
  • 实施
  • 建维度表
-- 创建油站维度表
create external table if not exists one_make_dws.dim_oilstation(
    id string comment '油站ID'
    , name string comment '油站名称'
    , code string comment '油站编码'
    , customer_id string comment '客户ID'
    , customer_name string comment '客户名称'
    , province_id int comment '省份id'
    , province_name string comment '省份名称'
    , city_id int comment '城市id'
    , city_name string comment '城市名称'
    , county_id int comment '县城ID'
    , county_name string comment '县城名称'
    , area_id int comment '区域id'
    , area_name string comment '区域名称'
    , customer_classify_id string comment '客户分类ID'
    , customer_classify_name string comment '客户分类名称'
    , status int comment '油站状态(1、2)'
    , status_name string comment '油站状态名(正常、停用)'
    , company_id int comment '所属公司ID'
    , company_name string comment '所属公司名称'
    , customer_province_id int comment '客户所属省份ID'
    , customer_province_name string comment '客户所属省份'
) COMMENT '油站维度表'
PARTITIONED BY (dt STRING)
STORED AS TEXTFILE
LOCATION '/data/dw/dws/one_make/dim_oilstation';
  • 抽取数据
insert overwrite table one_make_dws.dim_oilstation partition (dt ='20210101')
select oil.id, oil.name, oil.code, customer_id, customer_name
       , oil.province province_id, p.areaname province_name
       , oil.city city_id, c.areaname city_name
       , oil.region county_id, county.areaname county_name
       , oil.township area_id, a.areaname area_name
       , oil.customer_classify customer_classify_id, ede.dictname customer_classify_name
       , oil.status status, eosde.dictname status_name
       , cbc.company company_id, binfo.companyname company_name
       , proname.id customer_province_id, proname.areaname customer_province_name
from (
     select id, name, code, customer_id, customer_name, province, city, region, township, status, customer_classify, dt
     from one_make_dwd.ciss_base_oilstation where id != '' and name is not null and name != 'null' and customer_id is not null
   ) oil
     left join (select id, areaname, parentid from one_make_dwd.ciss_base_areas where rank = 1) p on oil.province = p.id
     left join (select id, areaname, parentid from one_make_dwd.ciss_base_areas where rank = 2) c on oil.city = c.id
     left join (select id, areaname, parentid from one_make_dwd.ciss_base_areas where rank = 3) county on oil.region = county.id
     left join (select id, areaname, parentid from one_make_dwd.ciss_base_areas where rank = 4) a on oil.township = a.id
     left join (select dictid, dictname  from one_make_dwd.eos_dict_entry) ede on oil.customer_classify = ede.dictid
     left join (select dictid, dictname from one_make_dwd.eos_dict_entry t1  left join one_make_dwd.eos_dict_type t2 on t1.dicttypeid = t2.dicttypeid where t2.dicttypename = '油站状态') eosde on oil.status = eosde.dictid
     -- 客户所属公司id,所属公司名称,所属省份id,所属省份名称
     left join (select code, province, company from one_make_dwd.ciss_base_customer) cbc on oil.customer_id = cbc.code
     left join (select id, areaname from one_make_dwd.ciss_base_areas where rank = 1 and id != 83) proname on cbc.province = proname.areaname
     left join (select ygcode, companyname from one_make_dwd.ciss_base_baseinfo group by ygcode, companyname) binfo on cbc.company = binfo.ygcode where dt = '20210101';
  • 查看结果

  • 小结
  • 实现油站维度的构建


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
7月前
|
监控 数据可视化 安全
Spring Cloud可视化智慧工地大数据云平台源码(人、机、料、法、环五大维度)
智慧工地平台是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
129 2
|
3月前
|
监控 供应链 安全
物联网卡在工业领域的应用
物联网卡在工业领域的应用极大地推动了行业的智能化、自动化和高效化进程。以下是物联网卡在工业领域中各操作类型中的具体应用作用:
|
1月前
|
存储 人工智能 大数据
物联网、大数据、云计算、人工智能之间的关系
物联网、大数据、云计算、人工智能之间的关系是紧密相连、相互促进的。这四者既有各自独立的技术特征,又能在不同层面上相互融合,共同推动信息技术的发展和应用。
315 0
|
2月前
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
34 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
|
2月前
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
42 1
|
2月前
|
传感器 监控 供应链
物联网怎么推动工业数字化转型?
物联网(Internet of Things,loT)是指通过信息传感设备,如射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等装置,按约定的协议,将任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
35 0
|
4月前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
5月前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之如何实现根据商品维度统计每件商品的断货时长的功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之如何实现嵌入式设备到物联网平台再到PAI DSW的云边结合
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
7月前
|
存储 数据挖掘 大数据
大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模是组织和设计数据以支持数据分析的过程,包括ER模型和维度建模。ER模型通过实体和关系描述数据结构,遵循三范式减少冗余。维度建模,特别是Kimball方法,用于数据仓库设计,便于分析和报告。事实表存储业务度量,如销售数据,分为累积、快照、事务和周期性快照类型。维度表提供描述性信息,如时间、产品、地点和客户详情。数仓通常分层为ODS(源数据)、DWD(明细数据)、DIM(公共维度)、DWS(数据汇总)和ADS(应用数据),以优化数据管理、质量、查询性能和适应性。
1780 3