0.正经的前言
这是一篇面向产品经理的Hive分享。目的是使受众更好的使用Hive client或其他封装Hive的产品。用HQL查询使用数据及应注意的问题和技巧。
0.1.主要内容:
- Hive的基本原理
- Hive的使用教程
- Hive使用注意事项
- HQL的使用技巧
0.2.建议读者:
- 大数据相关产品经理
- 初级数据分析师
0.3.不涉及:
- Hive的安装与配置
- Hive的开发与调优
- Hive的管理员相关知识
1.Hive的基本原理
要理解Hive绕不开Hadoop。我在知乎上有个关于Hadoop1.0诞生的比喻 回答。看完记得点赞
1.1 Hadoop的尴尬
Hadoop是一个开源框架来存储和处理大型数据在分布式环境中。但是,它“不好用”
- MapReduce“不好用”,它可以处理大型数据,但是需要用Java写很多的Map、Reduce和调度类,专业性很强,门槛高,一般人写不了。
- HDFS“不好用”,它提供了分布式的存储,解决了大数据存储的问题,但是很多原有的数据架构都是基于传统型关系型数据库(比如Mysql),迁移到HDFS困难。
简单的说,以前我们把数据放到一个数据库里的某张表里,而不是HDFS这样的目录上;我们使用SQL处理、转换数据而不是MapReduce这样的Java程序。
于是,duang~duang~duang~
Hive 诞生了
1.2 Hive的作用
Hive是什么?
- Hive是一个基于HDFS的数据仓库工具
- Hive是可以将HQL转化为MapReduce进行数据处理查询的工具
Hive不是什么?
- Hive不是一个关系型数据库
- Hive不能实时查询和行级更新。
1.3 Hive的原理
Hive的执行原理
你需要知道的Hive的执行原理
Hive将SQL(Hive SQL)转化成MapReduce并执行。
Hive的存储原理
你需要知道的Hive的存储原理
Hive按分区存储,所以查询时最好在where加上分区条件。
知道Hive是做什么的了,我们接下来了解如何使用Hive
2.Hive的使用教程
不论是Hive client或者Hue或者其他的封装工具比如我司的Puck和数据工坊。其实都是学习HQL的使用。
2.1 Select Where
select 表示我想要表的那些列;where 表示我想要表的那些行。这实际是个对于大表过滤出小表的过程。
示例: 有表employee如下(节选),按部门Dept分区。查询研发部薪水高于5000的选手的ID、Name、Des。
ID | Name | Salary | Des | Dept |
---|---|---|---|---|
3777 |