最初我们用excel就可以做常规的数据存储和分析,但是当excel的数据超过10万条性能就不行了,有的版本的excel只能打开约6万条数据。后来,我们用mysql存储和查询数据,几千万的数据mysql还可以。当大数据(5V)到来,我们开始使用hive数据仓库,对于hive来说,几十亿几百亿的数据也不是问题,数据量级上一般不再是限制了。此外,数据仓库的设计,是面向分析的。
Hadoop 专为离线和大规模数据而设计,不适合在线处理模式。Hive是基于Hadoop的开源数据仓库工具,用于处理海量结构化数据。Hive 把HDFS中结构化的数据文件映射为数据表,通过HiveSQL转换为一系系列的MapReduce任务完成数据分析与处理。
1.Hive和传统数据库的比较
2.Hive的数据类型
Hive的数据类型主要分为基本数据类型和复杂数据类型。其中,基本数据类型和mysql基本相同,Hive中使用字符串一般以String为主(mysql没有)。在hive中,日期格式的数据一般存储为String或者timestamp类型。
复杂数据类型是hive特有的,mysql没有该数据类型。
3.使用FinalShell连接Hive
4.HiveSql查询的部分知识点
(1)查询格式和执行顺序。查询的基本格式:select A from B where C group by XXX having xxx order by [asc, desc]。执行顺序:from...where ...group by ...having ... select ... order by。(HQL在reduce的执行顺序和mysql一致,map阶段稍有不同)
(2)常用的查询函数
5.hive和表连接
在关系型数据库中,多表连接比较关键;在hive中,也会有多表连接的场景,但是考虑到数据量很大,表连接查询效率比较受限,更多的是去构造业务主题相关的宽表以减少对表连接的依赖,并保证数据查询效率。⚠️1⃣️和mysql不同,hive支持full join,但实际使用较少。2⃣️hive中,不支持in子查询。例如,查询在一个表中存在,但另一个表中不存在时,一般使用"select * from table a left join table b on a.关联字段=b.关联字段 where b.关联字段 is null;"。
6.常用的linux命令
Linux系统中,我们通过命令与主机交互。Linux命令的基本格式为:命令 -选项 参数
---- 完善中-----