Hive处理案例——Zebra业务数据清洗

Zebra业务回顾

zebra业务回顾
zebra项目最开始阶段会对日志文件进行分析统计,针对apptype,userip等20个字段做了统计,然后把最后的结果落地到数据库里。这张表相当于总表(f_http_app_host)
在这里插入图片描述

在企业里做到这步并没有结束,因为后续还要做数据分析,可能会针对此表进行多个维度的查询和统计,比如:
1.应用欢迎度
2.各网站表现
3.小区Http上网能力
4.小区上网洗好
所以我们可以根据以上四个维度,建立对应的表,并从f_http_app_host 取出对应的数据,然后做统计,最后交给前端做数据可视化的工作。比如下图是针对应用受欢迎程度的数据可视化图:
下图展示了前10名最受欢迎应用,是根据每个应用产生的总量来统计的(一般来说,流量越大,用户越多)

在这里插入图片描述

一、应用欢迎度表说明

在这里插入图片描述
建表语句:

create table D_H_HTTP_APPTYPE(

hourid datetime, apptype int, appsubtype int, attempts bigint, accepts bigint, succratio double, trafficul bigint, trafficdl bigint, totaltraffic bigint, retranul bigint, retrandl bigint, retrantraffic bigint, failcount bigint, transdelay bigint
);

业务说明
2016年10月25日 20:10

数据以| 分割后,每个数据的含义(仅展示项目里用到的字段数据)

在这里插入图片描述

应用大类App Type
在这里插入图片描述
应用小类App sub-type
DPI设备子业务识别能力要求(部分)
在这里插入图片描述

业务字段处理逻辑

    HttpAppHost hah = new HttpAppHost();
    hah.setReportTime(reportTime);
    //上网小区的id
    hah.setCellid(data[16]);
    //应用类hah.setAppType(Integer.parseInt(data[22]));
    //应用子类hah.setAppSubtype(Integer.parseInt(data[23]));
    // 用 户 ip hah.setUserIP(data[26]);
    // 用 户 port hah.setUserPort(Integer.parseInt(data[28]));
    //访问的服务ip
    hah.setAppServerIP(data[30]);
    // 访 问 的 服 务 port hah.setAppServerPort(Integer.parseInt(data[32]));
    //域名hah.setHost(data[58]);

    int appTypeCode = Integer.parseInt(data[18]);
    String transStatus = data[54];
    int appTypeCode = Integer.parseInt(data[18]);
    String transStatus = data[54];

    //业务逻辑处理
    if (hah.getCellid() == null || hah.getCellid().equals("")) {
        hah.setCellid("000000000");
    }
    if (appTypeCode == 103) {
        hah.setAttempts(1);
    }
    if (appTypeCode == 103

            &&
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值