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

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

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;  
  • 维度表
  • 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;
  • 实现分析
-- 工单事实表
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
;
  • 小结
  • 实现工单主题表的维度指标构建


目录
相关文章
|
3月前
|
监控 供应链 安全
物联网卡在工业领域的应用
物联网卡在工业领域的应用极大地推动了行业的智能化、自动化和高效化进程。以下是物联网卡在工业领域中各操作类型中的具体应用作用:
|
1月前
|
存储 人工智能 大数据
物联网、大数据、云计算、人工智能之间的关系
物联网、大数据、云计算、人工智能之间的关系是紧密相连、相互促进的。这四者既有各自独立的技术特征,又能在不同层面上相互融合,共同推动信息技术的发展和应用。
462 0
|
2月前
|
传感器 监控 供应链
物联网怎么推动工业数字化转型?
物联网(Internet of Things,loT)是指通过信息传感设备,如射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等装置,按约定的协议,将任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
40 0
|
4月前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
5月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之如何实现嵌入式设备到物联网平台再到PAI DSW的云边结合
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
传感器 机器学习/深度学习 监控
物联网技术在工业自动化中的实时故障诊断与维护
物联网技术在工业自动化中的实时故障诊断与维护
|
7月前
|
传感器 机器学习/深度学习 算法
LabVIEW开发工业物联网状态监测
LabVIEW开发工业物联网状态监测
82 2
|
7月前
|
传感器 人工智能 供应链
工业物联网(IIoT)及其在制造业的应用
【5月更文挑战第31天】工业物联网(IIoT)驱动制造业变革,实现设备预测性维护、生产流程优化、供应链智能化及质量控制。Python示例展示数据获取,但面临数据安全、设备兼容性挑战。IIoT将结合AI、大数据,推动制造业创新与转型,助力企业提升竞争力,为制造业可持续发展注入新动力。
145 0
|
7月前
|
NoSQL 物联网 大数据
【补充】助力工业物联网,工业大数据之AirFlow安装
【补充】助力工业物联网,工业大数据之AirFlow安装
94 1
|
7月前
|
监控 物联网 大数据
智慧工地管理平台系统源码基于物联网、云计算、大数据等技术
智慧工地平台APP通过对施工过程人机料法环的全面感知、互联互通、智能协同,提高施工现场的生产效率、管理水平和决策能力,实现施工管理的数字化、智能化、精益化。
115 0
下一篇
DataWorks