电商日志分析

项目要求
根据电商日志文件,分析:

统计页面浏览量(每行记录就是一次浏览)
统计各个省份的浏览量 (需要解析IP)
日志的ETL操作(ETL:数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程)
为什么要ETL:没有必要解析出所有数据,只需要解析出有价值的字段即可。本项目中需要解析出:ip、url、pageId(topicId对应的页面Id)、country、province、city。

1. 纯真数据库 qqwry.dat
纯真数据库(QQWry.dat)是一种IP地址数据库文件,用于将IP地址转换为相应的地理位置信息。它由纯真网络开发,广泛用于中国地区的网络应用和服务。以下是关于纯真数据库的详细信息:

纯真数据库的主要功能

IP地址解析:将一个IP地址解析为地理位置,包括国家、省份、城市等信息。
地理位置查询:通过IP地址查询,可以知道访问者的大致位置,便于统计和分析。
网络安全:在某些网络安全应用中,可以通过IP地址定位来分析潜在的威胁来源。

使用场景

网站分析:网站运营者可以通过解析访问者的IP地址,了解用户的地理分布情况,从而进行更精准的市场营销和内容分发。
个性化服务:根据用户的地理位置提供定制化的内容或服务,例如推荐本地新闻、天气预报等。
网络安全监控:通过分析IP地址来源,可以识别和阻止来自某些高风险地区的访问请求,提高网络安全性。
广告投放:广告商可以根据用户的地理位置,进行精准的广告投放,提高广告效果。

使用方法

已经提供工具类utils,可以直接调用方法,即可根据ip映射对应的国家、省份、城市
具体代码放后面

使用hive编程

搭建hive环境

  1. hive的下载、安装、配置
  2. MySQL的下载、安装、配置
  3. 启动:hive是建立在hdfs之上的,先启动hdfs,再启动hive
  4. 进入hive客户端,或者访问web界面,端口3032
  5. 运行sql并测试

    编写代码

    使用 hive 只需编写sql

    use test;
    
    -- 创建日志信息表
    describe trackinfo;
    drop table if exists trackinfo;
    create table trackInfo(
                              id string,
                              url string,
                              sessionId string,
                              ip string,
                              `time` string
    )row format delimited fields terminated by ',';
    
    
    
    -- 创建ip映射信息表
    drop table if exists ipInfo;
    create table ipInfo(
                           ip string,
                           country string,
                           province string,
                           city string
    )row format delimited fields terminated by ',';
    --导入数据
    load  data local inpath "/root/SX_data/ipInfo.txt" overwrite into table ipInfo;
    
    load  data local inpath "/root/SX_data/trackInfo.txt" overwrite into table trackinfo;
    -- 创建结果信息表
    truncate table track_log;
    create table track_log(
                              url string,
                              pageId string,
                              ip string,
                              country string,
                              province string,
                              city string
    )row format delimited fields terminated by ',';
    --创建ipinfo_1存入去重数据
    create table ipInfo(
                           ip string,
                           country string,
                           province string,
                           city string
    )row format delimited fields terminated by ',';
    --去重
    insert into ipinfo_1
    select distinct ip,county,province,city from ipinfo
    
    insert into track_log
    select
        url,
        regexp_extract(url,'topicId=(\\d{5})') as pageId,
        t.ip,
        i.country,
        i.province,
        i.city
    from trackinfo t
             left join ipinfo i
                       on t.ip = i.ip
    ;
    
    -- 查询省份浏览量
    select
    province,
    count(*)
    from track_log
    group by province;
    
    select
        url,
        regexp_extract(url,'topicId=(\\d{5})') as pageId
    from trackinfo t
    where id = '20960991758'
    ;
    
    
    
    
    
    结果展示
  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值