助力工业物联网,工业大数据之事实主题指标划分【十八】

简介: 助力工业物联网,工业大数据之事实主题指标划分【十八】

01:事实主题指标划分

  • 目标掌握一站制造中的业务主题划分及主题指标的设计
  • 实施
  • 基本流程
  • 油站:有安装、维修、巡检、改造需求
  • 呼叫:打电话到呼叫中心下工单
  • 呼叫中心可以直接解决:不会有新的工单产生:咨询类寻求
  • 呼叫中心不能直接解决:构建工单
  • 网点:呼叫中心将工单分派给网点
  • 工单:分配工程师确认工单
  • 油站:实施具体的工单需求
  • 仓储物料:申请仓库调度零配件,有零配件费用
  • 差旅费用:交通费用、住宿费用、加油费用、补贴费用
  • 回访:呼叫中心将完成的订单进行电话回访
  • 呼叫中心事实指标:来电受理次数、分派工单次数
  • 油站事实指标:油站个数、停用油站个数、油站设备个数
  • 工单事实指标:安装工单个数、维修工单个数
  • 安装事实指标:安装个数、安装费用
  • 维修事实指标:维度个数、维修费用
  • 客户回访事实指标:满意个数、不满意个数、态度满意个数、响应速度的满意个数、技术满意个数
  • 费用事实指标:报销费用、差率费用、补贴费用
  • 差旅事实指标:油费、住宿费用、交通费用
  • 网点物料事实指标:零配件的个数
  • ……
  • 小结
  • 掌握一站制造中的业务主题划分及主题指标的设计

02:呼叫中心事实指标需求分析

  • 目标掌握DWB层呼叫中心事实指标表的需求
  • 路径
  • step1:目标需求
  • step2:数据来源
  • 实施
  • 目标需求:基于基础的时间、受理方式、来电类型等事实维度统计工单数量、电话数量、回访数量、投诉数量等

  • 数据来源
  • ciss_service_callaccept:客服中心来电详情表
  • eos_dict_type:字典状态类别表,记录所有需要使用字典标记的表
select * from eos_dict_type where dicttypename = '来电类型';
select * from eos_dict_type where dicttypename = '来电受理单--处理方式';
  • eos_dict_entry:字典状态明细表,记录所有具体的状态或者类别信息
select * from eos_dict_entry where dicttypeid = 'BUSS_CALL_TYPE';
select * from eos_dict_entry where dicttypeid = 'BUSS_PROCESS_WAY';
  • ciss_service_workorder:工单状态明细表
select callaccept_id,status from ciss_service_workorder;
-- 查看每个状态的含义
select * from eos_dict_type where dicttypename = '派工单状态';
select * from eos_dict_entry where dicttypeid = 'BUSS_WORKORDER_STATUS';
  • 小结
  • 掌握DWB层呼叫中心事实指标表的需求

03:呼叫中心事实指标构建

  • 目标实现DWB层呼叫中心事实指标表的构建
  • 实施
  • 建库
create database if not exists one_make_dwb;
  • 建表
-- 创建呼叫中心 | 来电受理事实表
-- 如果interval进不去,用`interval`圈起来,指明是字段
drop table if exists one_make_dwb.fact_call_service;
create table if not exists one_make_dwb.fact_call_service(
    id string comment '受理id(唯一标识)' 
    , code string comment '受理单唯一编码'
    , call_date string comment '来电日期(日期id)' 
    , call_hour int comment '来电时间(小时)(事实维度)'
    , call_type_id string comment '来电类型(事实维度)'
    , call_type_name string comment '来电类型名称(事实维度)'
    , process_way_id string comment '受理方式(事实维度)' 
    , process_way_name string comment '受理方式(事实维度)' 
    , oil_station_id string comment '油站id' 
    , userid string comment '受理人员id'
    , cnt int comment '单据数量(指标列)'
    , dispatch_cnt int comment '派工数量'
    , cancellation_cnt int comment '派工单作废数量' 
    , chargeback_cnt int comment '派工单退单数量'
    , interval int comment '受理时长(单位:秒)' 
    , tel_spt_cnt int comment '电话支持数量'
    , on_site_spt_cnt int comment '现场安装、维修、改造、巡检数量' 
    , custm_visit_cnt int comment '回访单据数量' 
   , complain_cnt int comment '投诉单据数量' 
   , other_cnt int
comment '其他业务单据数量')
partitioned by (dt string)
stored as orc
location '/data/dw/dwb/one_make/fact_call_service';
  • 构建数据字典表【每次都要两张表关联,比较麻烦,合并为一张表】
create table if not exists one_make_dwb.tmp_dict
stored as orc
as
select
    dict_t.dicttypename             -- 类型名称
    , dict_e.dictid                 -- 字典编号
    , dict_e.dictname               -- 字典名称
from  one_make_dwd.eos_dict_type dict_t
left join  one_make_dwd.eos_dict_entry dict_e
   on dict_t.dt = '20210101' and dict_e.dt = '20210101' and dict_t.dicttypeid = dict_e.dicttypeid
order by  dict_t.dicttypename, dict_e.dictid;
select * from one_make_dwb.tmp_dict where dicttypename = '来电类型';
select * from one_make_dwb.tmp_dict where dicttypename = '来电受理单--处理方式';
  • 抽取(这个写法在时间处理上存在bug,注意floor函数)
insert overwrite table one_make_dwb.fact_call_service partition (dt = '20210101')
select
    call.id     --来电受理唯一id
    , call.code -- 受理单唯一编码
    , date_format(timestamp(call.call_time), 'yyyymmdd') as call_date -- 来电日期(日期id)
    , hour(timestamp(call.call_time))  -- 来电时间(小时)(事实维度)
    , call.call_type -- 来电类型(事实维度)
    , call_dict.dictname -- 来电类型名称(事实维度)
    , call.process_way -- 受理方式(事实维度)
    , process_dict.dictname -- 受理方式(事实维度)
    , call.call_oilstation_id -- 油站id
    , call.accept_userid -- 受理人员id
    , 1 -- 单据数量(指标列)
    , case when call.process_way = 5  then 1 else 0 end -- 派工数量:0-自己处理,1-产生派工
    , case when workorder.status = -1 then 1 else 0 end -- 派工单作废数量
    , case when workorder.status = -2 then 1 else 0 end -- 派工单退单数量
  , floor(to_unix_timestamp(timestamp(call.process_time),'yyyy-mm-dd hh:mm:ss') - to_unix_timestamp(timestamp(call.call_time), 'yyyy-mm-dd hh:mm:ss') / 1000.0) -- 受理时长(单位:秒)
    , case when call.call_type = 5 then 1 else 0 end -- 电话支持数量
    , case when call.call_type in (1, 2, 3, 4) then 1 else 0 end -- 现场安装、维修、改造、巡检数量
    , case when call.call_type = 7 then 1 else 0 end -- 回访单据数量
    , case when call.call_type = 8 then 1 else 0 end -- 投诉单据数量
    , case when call.call_type = 9 or call.call_type = 6 then 1 else 0 end -- 其他业务单据数量
-- 来电详情表
from one_make_dwd.ciss_service_callaccept call
-- 字典信息表:得到来电类型名称
left join one_make_dwb.tmp_dict call_dict on call.call_type = call_dict.dictid  and call_dict.dicttypename = '来电类型'
-- 字典信息表:受理方式名称
left join one_make_dwb.tmp_dict process_dict on call.process_way = process_dict.dictid and process_dict.dicttypename = '来电受理单--处理方式'
-- 工单信息表:得到工单状态:-2:退单,-1:作废
left join one_make_dwd.ciss_service_workorder workorder on workorder.dt = '20210101' and workorder.callaccept_id = call.id
where call.dt = '20210101' and call.code != 'null' and call.call_time is not null;
  • 考虑这么写不出问题
insert overwrite table one_make_dwb.fact_call_service partition (dt='20210101')
select
    call.id     --来电受理唯一id
    , call.code -- 受理单唯一编码
    , date_format(timestamp(call.call_time), 'yyyymmdd') as call_date -- 来电日期(日期id)
    , hour(timestamp(call.call_time))  -- 来电时间(小时)(事实维度)
    , call.call_type -- 来电类型(事实维度)
    , call_dict.dictname -- 来电类型名称(事实维度)
    , call.process_way -- 受理方式(事实维度)
    , process_dict.dictname -- 受理方式(事实维度)
    , call.call_oilstation_id -- 油站id
    , call.accept_userid -- 受理人员id
    , 1 -- 单据数量(指标列)
    , case when call.process_way = 5  then 1 else 0 end -- 派工数量:0-自己处理,1-产生派工(状态码调整为0和1)
    , case when workorder.status = -1 then 1 else 0 end -- 派工单作废数量,如果是-1说明工单作废,则计数为1,为后面聚合准备
    , case when workorder.status = -2 then 1 else 0 end -- 派工单退单数量,如果是-2说明工单退单,则计数为1,为后面聚合准备
  , to_unix_timestamp(timestamp(call.process_time),'yyyy-mm-dd hh:mm:ss') - to_unix_timestamp(timestamp(call.call_time), 'yyyy-mm-dd hh:mm:ss')-- 受理时长(单位:秒)处理时间戳-受理时间戳
    , case when call.call_type = 5 then 1 else 0 end -- 电话支持数量,如果是5说明电话支持,则计数为1,为后面聚合准备
    , case when call.call_type in (1, 2, 3, 4) then 1 else 0 end -- 现场安装、维修、改造、巡检数量,如果是(1,2,3,4),则计数为1,为后面聚合准备
    , case when call.call_type = 7 then 1 else 0 end -- 回访单据数量,如果是7,则计数为1,为后面聚合准备
    , case when call.call_type = 8 then 1 else 0 end -- 投诉单据数量,如果是8,则计数为1,为后面聚合准备
    , case when call.call_type = 9 or call.call_type = 6 then 1 else 0 end -- 其他业务单据数量,如果是9或者6,则计数为1,为后面聚合准备
-- 来电详情表
from one_make_dwd.ciss_service_callaccept call
-- 字典信息表:得到来电类型名称
left join one_make_dwb.tmp_dict call_dict on call.call_type = call_dict.dictid  and call_dict.dicttypename = '来电类型'
-- 字典信息表:受理方式名称
left join one_make_dwb.tmp_dict process_dict on call.process_way = process_dict.dictid and process_dict.dicttypename = '来电受理单--处理方式'
-- 工单信息表:得到工单状态:-2:退单,-1:作废
left join one_make_dwd.ciss_service_workorder workorder on workorder.dt = '20210101' and workorder.callaccept_id = call.id
where call.dt = '20210101' and call.code != 'null' and call.call_time is not null;
  • 小结
  • 实现DWB层呼叫中心事实指标表的构建


目录
相关文章
|
2月前
|
监控 物联网 大数据
智慧工地管理平台系统源码基于物联网、云计算、大数据等技术
智慧工地平台APP通过对施工过程人机料法环的全面感知、互联互通、智能协同,提高施工现场的生产效率、管理水平和决策能力,实现施工管理的数字化、智能化、精益化。
57 0
|
4月前
|
NoSQL 物联网 大数据
【补充】助力工业物联网,工业大数据之AirFlow安装
【补充】助力工业物联网,工业大数据之AirFlow安装
59 1
|
4月前
|
Prometheus 数据可视化 Cloud Native
助力工业物联网,工业大数据之服务域:可视化工具Grafana介绍【三十八】
助力工业物联网,工业大数据之服务域:可视化工具Grafana介绍【三十八】
104 1
|
4月前
|
存储 SQL Oracle
助力工业物联网,工业大数据之服务域:项目总结【三十九】
助力工业物联网,工业大数据之服务域:项目总结【三十九】
44 1
|
4月前
|
SQL Prometheus 监控
助力工业物联网,工业大数据之服务域:node_exporter插件【三十七】
助力工业物联网,工业大数据之服务域:node_exporter插件【三十七】
37 1
|
3天前
|
供应链 物联网 区块链
未来交织:区块链技术、物联网和虚拟现实的融合革新
【4月更文挑战第25天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)、以及虚拟现实(VR)正在重塑我们的世界。这些技术不仅在独立领域中取得显著进展,而且开始相互交融,催生出一系列创新应用。本文将探讨这些技术的发展趋势,并深入剖析它们在不同行业中的应用场景,包括供应链管理、智能家居、远程工作、以及沉浸式娱乐等领域。
|
7天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第21天】 随着科技不断进步,新兴技术正在重塑我们的世界。本文将深入探讨三种引人注目的技术——区块链、物联网(IoT)和虚拟现实(VR)——它们各自的发展趋势及其在不同领域的应用前景。区块链技术以其不可篡改的数据记录特性,在金融安全、供应链管理等领域展现出巨大潜力;物联网通过智能设备互联,推动智能家居、智慧城市的发展;而虚拟现实则以其沉浸式体验,改变教育、娱乐等多个行业的面貌。这些技术的交叉融合预示着一个更加智能、互联和虚拟的未来。
|
6天前
|
供应链 安全 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第22天】 在数字化浪潮中,新兴技术的蓬勃发展正推动着传统行业的变革与升级。区块链技术以其不可篡改和去中心化的特性,为数据安全和信息透明提供了新的解决方案;物联网(IoT)通过智能设备的互联互通,实现了环境与行为的智能化管理;而虚拟现实(VR)技术则拓展了人们的感官体验,创造了沉浸式互动的新空间。本文聚焦于这些技术的发展趋势,探讨其在多个应用场景中的结合与创新,旨在描绘一幅技术交织下的未来蓝图。
|
2天前
|
安全 物联网 区块链
未来技术纵横谈:区块链、物联网与虚拟现实的融合与创新
【4月更文挑战第26天】 随着科技的不断进步,新兴技术如区块链技术、物联网(IoT)、以及虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的独立发展路径,并着重分析它们相互结合时可能产生的创新应用。通过深度剖析每项技术的核心优势和潜在挑战,文章旨在描绘出一个多元化的技术趋势蓝图,并对如何利用这些技术推动社会和经济的可持续发展提供前瞻性的思考。
|
3天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网与虚拟现实的交汇点
【4月更文挑战第25天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)已逐渐从概念验证走向实际应用。这些技术不仅单独发展迅猛,而且开始相互融合,创造出前所未有的应用场景和商业模式。本文将深入探讨这些技术的发展趋势,分析它们如何协同工作,以及在多个行业中的潜在应用。特别地,我们将聚焦于金融、医疗和娱乐等行业,揭示这些技术如何推动创新并带来颠覆性的变化。