文章目录
- 操作Hive
- 简单查询分析
-
- 查询条数统计分析
- 关键字条件查询分析
-
- 根据用户行为分析
- 用户实时查询分析
操作Hive
- 启动Hive
- 在“hive>”命令提示符状态下执行下面命令:
hive> use dbtaobao;
hive> show tables;
hive> show create table user_log;
hive> select brand_id from user_log limit 10;
简单查询分析
测试简单指令
hive> select brand_id from user_log limit 10;
- 查询前20个交易日志中购买商品时的时间和商品的种类
hive> select month,day,cat_id from user_log limit 20;
- 查询可以利用嵌套语句,如果列名太复杂可以设置该列的别名,以简化我们操作的难度
hive> select ul.at, ul.ci from (select action as at, cat_id as ci from user_log) as ul limit 20;
查询条数统计分析
hive> select count(*) from user_log;
- 在函数内部加上distinct,查出uid不重复的数据有多少条
hive> select count(distinct user_id) from user_log;
- 查询不重复的数据有多少条(为了排除客户刷单情况) **
hive> select count(*) from (select user_id,item_id,cat_id,merchant_id,brand_id,month,day,action from user_log group by user_id,item_id,cat_id,merchant_id,brand_id,month,day,action having count(*)=1)a;
关键字条件查询分析
以关键字的存在区间为条件的查询
hive> select count(distinct user_id) from user_log where action='2';
- 关键字赋予给定值为条件,对其他数据进行分析(取给定时间和给定品牌,求当天购买的此品牌商品的数量)
hive> select count(*) from user_log where action='2' and brand_id=2661;
根据用户行为分析
hive> select count(distinct user_id) from user_log where action='2';
hive> select count(distinct user_id) from user_log;
hive> select count(*) from user_log where gender=0;
hive> select count(*) from user_log where gender=1;
- 给定购买商品的数量范围,查询某一天在该网站的购买该数量商品的用户id
hive> select user_id from user_log where action='2' group by user_id having count(action='2')>5;
用户实时查询分析
hive> create table scan(brand_id INT,scan INT) COMMENT 'This is the search of bigdatataobao' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
hive> insert overwrite table scan select brand_id,count(action) from user_log where action='2' group by brand_id;
hive> select * from scan;