大数据课程L4——网站流量项目的Hive离线批处理

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 掌握网站流量项目的 Hive 的占位符与文件的调用;

⚪ 掌握网站流量项目的 Hive 离线批处理过程;

⚪ 掌握网站流量项目的定时任务改造Hive离线处理过程;

一、Hive 的占位符与文件的调用

1. 概述

对于上述的工作,我们发现需要手动去写hql语句从而完成离线数据的ETL,但每天都手动来做显然是不合适的,所以可以利用hive的文件调用与占位符来解决这个问题。

2. Hive文件的调用

实现步骤:

1. 编写一个文件,后缀名为 .hive。

比如我们现在我们创建一个01.hive文件。

目的是在 hive的weblog数据库下,创建一个tb1表。

01.hive 文件编写示例:

use  weblog;

create table tb1 (id int,name string);

2. 进入hive安装目录的bin目录。

执行: sh hive -f  01.hive

注:-f  参数后跟的是01.hive文件的路径。

3. 测试hive的表是否创建成功。

3. Hive占位符的使用

我们现在想通过hive执行文件,将 "tb1"这个表删除

则我们可以这样做:

1. 创建02.hive文件。

02.hive 文件编写示例:

use  weblog;

drop table ${tb_name}

2. 在bin目录下,执行:

sh hive -f 02.hive -d tb_name="tb1"

4. 结合业务的实现

在hive最后插入数据时,涉及到一个日志的分区是以每天为单位,所以我们需要手动去写这个日期,比如 2021-05-10。

现在,我们学习了Hive文件调用和占位符之后,我们可以这样做:

1. 将hql语句里的日期相关的取值用占位符来表示,并写在weblog.hive文件里。

weblog.hive 文件编写示例:

use weblog;

insert overwrite table tongji 

select ${reportTime},tab1.pv,tab2.uv,tab3.vv,tab4.br,tab5.newip,tab6.newcust,tab7.avgtime,tab8.avgdeep from

(select count(*) as pv from dataclear where reportTime = ${reportTime}) as tab1,

(select count(distinct uvid) as uv from dataclear where reportTime = ${reportTime}) as tab2,

(select count(distinct ssid) as vv from dataclear where reportTime = ${reportTime}) as tab3,

(select round(br_taba.a/br_tabb.b,4)as br

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值