[Hive 实战]

绿色字体
红色字体
粉色字体
蓝色字体

需求:统计各个城市所属区域下最受欢迎的Top 3产品
  需要用到窗口函数 (下面再说)

	 大数据处理:离线、实时(不管是离线还是实时,都要进行以下的步骤:)

	 input :HDFS、mysql、Hbase......                   处理之前肯定有数据输入进来(数据可以存放的位置)

	 处理(分布式) MapReduce/Hive/Spark/Flink           处理的方式有很多种

	 output :mysql、HDFS.....                          处理之后肯定要输出到某个地方

	 本次案例中,从hdfs和mysql拿数据,然后用hive进行处理,然后输入到mysql中去。

	 本次需求:统计各个城市所属区域下最受欢迎的Top 3产品

我们可以查看一下电商网站,点击一个商品,(再浏览器里的开发者工具,查看一下列如:log。gif的日志,)会发现:
  日志中会有:商品信息,比如城市ID,产品ID,用户信息,但是没有城市所属区域的名字和产品的名字。我么可以从日志中获取所需要的商品信息,但是城市的名称和产品的名称日志里是没有的。
  一般固定的信息,不变的信息是存放在关系型数据库中的,比如:mysql中:

	 mysql下还会存放两张表格:
	 	城市区域对应的表
	 	产品信息表
	 Hive中存放的是:
	 	用户点击行为的日志表

MySQL里有两张表,city_info城市信息表、product_info产品信息表:
在这里插入图片描述
city_info城市信息表:
在这里插入图片描述
product_info产品信息表:
在这里插入图片描述在user_click.txt中有5列,第一列是用户id,第二列是session id 不需要关心,第三列是访问的时间,第四列是城市的id,第五列是产品的id。

现在用hive创建一张 用户点击行为日志表 :

create table user_click(
user_id int,
session_id string,
action_time string,
city_id int,
product_id int
) partitioned by (day string)
row format delimited fields terminated by ',';

然后加载数据进去:

load data local inpath '/home/hadoop/data/topn/user_click.txt' overwrite into
 table user_click partition(day='2016-05-05');

就是说现在有三张表:city_info城市信息表、product_info产品信息表(MySQL),user_click用户点击行为日志表(hive)
  现在需要在hive中操作这三张表,所以需要把MySQL中的两张表想办法弄到hive上来。在Hive里面完成我们的业务逻辑统计操作,在hive中处理过后再把处理的结果输出到MySQL中去。在这里就需要一个工具:S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值