Ayudando al Internet Industrial de las Cosas, la división de indicadores de materia fáctica de big data industrial [Dieciocho]

01: División de indicadores de materia fáctica

  • Objetivo : Dominar la división de temas comerciales y el diseño de indicadores temáticos en la fabricación integral

  • implementar

    • proceso basico
      • Gasolinera: necesidades de instalación, mantenimiento, inspección y renovación
      • Llamar: Realice una llamada al centro de llamadas para realizar una orden de trabajo
        • El call center puede solucionarlo directamente: no se generará nueva orden de trabajo: buscar consulta
        • El centro de llamadas no puede resolverlo directamente: cree un ticket
      • Puntos de venta: El call center asigna órdenes de trabajo a los puntos de venta
      • Orden de trabajo: el ingeniero asignado confirma la orden de trabajo
      • Gasolinera: implementar requisitos específicos de órdenes de trabajo
      • Materiales de almacenamiento: solicite la programación del almacén de repuestos, hay costos de repuestos
      • Gastos de viaje: gastos de transporte, gastos de alojamiento, gastos de repostaje, gastos de subvenciones
      • Visita de regreso: el centro de llamadas realizará una visita de regreso por teléfono para el pedido completado
    • Indicadores de hechos del centro de llamadas: El número de llamadas aceptadas, el número de órdenes de trabajo enviadas
    • Indicadores de hechos de gasolineras: número de gasolineras, número de gasolineras fuera de servicio, número de equipos de gasolineras
    • Indicadores de hechos de entradas: Número único de trabajadores de instalación, número único de trabajadores de mantenimiento
    • Indicadores de hechos de instalación : número de instalaciones, costo de instalación
    • Indicadores de hechos de mantenimiento : número de dimensiones, costo de mantenimiento
    • Índice de hechos de la visita de retorno del cliente: Número de satisfechos, insatisfechos, satisfechos con actitud, satisfechos con velocidad de respuesta, satisfechos con tecnología
    • indicador de hecho de costo: Tarifa de reembolso, tarifa de tasa diferencial, tarifa de subsidio
    • Datos de viaje : combustible, alojamiento, transporte
    • Indicador real de material de salida : el número de piezas de repuesto
    • ……
  • resumen

    • Dominar la división de temas de negocio y el diseño de indicadores temáticos en la fabricación integral

02: Análisis de la demanda de los indicadores de hechos del centro de llamadas

  • Objetivo : dominar los requisitos de la tabla de índice de hechos del centro de llamadas de la capa DWB

  • camino

    • paso 1: requisitos objetivo
    • paso 2: fuente de datos
  • implementar

    • Requisitos objetivo : en función del tiempo básico, el método de aceptación, el tipo de llamada y otras dimensiones fácticas para contar la cantidad de órdenes de trabajo, la cantidad de llamadas, la cantidad de visitas de regreso, la cantidad de quejas, etc.

      imagen-20211003132754810

    • Fuentes de datos

      • ciss_service_callaccept : tabla de detalles de llamadas del centro de atención al cliente

        imagen-20211003132152326 imagen-20211003132225976
      • eos_dict_type : tabla de categoría de estado de diccionario, registra todas las tablas que deben marcarse con diccionarios

        select * from eos_dict_type where dicttypename = '来电类型';
        select * from eos_dict_type where dicttypename = '来电受理单--处理方式';
        
      • eos_dict_entry : lista de estado del diccionario, registrando toda la información específica de estado o categoría

        select * from eos_dict_entry where dicttypeid = 'BUSS_CALL_TYPE';
        select * from eos_dict_entry where dicttypeid = 'BUSS_PROCESS_WAY';
        
      • ciss_service_workorder : lista de estado de órdenes de trabajo

        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';
        
    • resumen

      • Comprenda los requisitos de la tabla de índice de hechos del centro de llamadas de la capa DWB

03: Construcción de indicadores de hechos del centro de llamadas

  • Objetivo : realizar la construcción de la tabla de índice de hechos del centro de llamadas de la capa DWB

  • implementar

    • construir base de datos

      create database if not exists one_make_dwb;
      
    • construir mesa

      -- 创建呼叫中心 | 来电受理事实表
      -- 如果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';
      
      
    • Cree una tabla de diccionario de datos [Es problemático asociar dos tablas cada vez y fusionarlas en una tabla]

      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 = '来电受理单--处理方式';
      
    • Extracción (este método de escritura tiene errores en el procesamiento del tiempo, preste atención a la función de piso)

      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;
      
  • Teniendo en cuenta que no hay problema en escribir de esta manera.

    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;
    
  • resumen

    • Realice la construcción de la tabla de índice de hechos del centro de llamadas de la capa DWB

Supongo que te gusta

Origin blog.csdn.net/xianyu120/article/details/131959610
Recomendado
Clasificación