Hive做数据分析

原文地址: https://blog.csdn.net/xnby/article/details/51262615

我们使用Flume把第一手的日志导入到了Hadoop中,接下来就要对导入的数据进行分析了。

分析时,可以开发Hadoop的MapReduce程序,这样有开发过程比较慢的缺点。很多人都习惯使用sql语句来进行数据分析和查询,Hive很好的满足了这个要求。

1、把Hadoop的日志转成Hive表就是第一步

 

这里我尝试的方案是,外表+json的方式

然后就是建立外表的过程,项目的日志格式是/flume/yyyy-mm-dd/h/files,这里使用了日期和时间2个分区参数

建表的语句如下:

建表语句
CREATE EXTERNAL TABLE gatetest(
url string,
ip string,
param struct<request_id: string, method:string, data: map<string, string> >,
 agent string,
 logtime string,
 time string,
 type string

PARTITIONED BY (mydate string, myhour string) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/flume';


增加分区
alter table gatetest add partition (date='20160427', hour='0') location '/flume/20160427/0';


查看分区数:
show partitions gateLog;


基于分区查询:
select count(*) from gateLog where date='20160427';

这里有个问题是无法直接使用分区参数和数据值一起做为查询条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值