1.什么是hive
hive是基于Hadoop构建的一套数据仓库分析系统。
hive表类似mysql的视图(不存储数据,映射数据 补充 Hadoop存储的不是关系数据库,但是可以映射成类似关系型数据库)。
2.为什么使用hive
使用MapReduce实现复杂查询逻辑开发难度大,学习成本高。
3.hive的作用
可以将Hadoop中结构化的数据文件映射成一张hive数据表(类似一个视图,并不存储数据)。
可以将SQL语句转换成MapReduce任务运行,查询分析自己的内容。
4.适用场景
非实时的,离线,响应不高的数据查询计算
补充:关于hive表数据导入
hive表的数据需要别的方法导入,并不是通过sql查询直接将数据从Hadoop导入hive表
hive的sql查询只针对hive表。
1.从本地文件系统中导入数据到Hive表
load data local inpath 本地文件 into table 目标表;
2.HDFS上导入数据到Hive表
load data local inpath 本地文件 into table 目标表;
本地导入:复制数据到HDFS下,再移动到hive表数据目录下。
HDFS导入:数据直接移动到hive表目录下
3.从别的表中查询出相应的数据并导入到Hive表中
insert into 目标表 partition (分区) select * from 源表;
两个表名复制字段必须相同(支持多表插入)。
4.在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中
create table 目标表 as select id, name, tel from 源表;
CTAS:表的输出结果可能太多,不适于显示在控制台上,将Hive的查询输出结果直接存在一个新的表中是非常方便的,我们称这种情况为CTAS(create table .. as select)。
总结:
1.hive表类似Hadoop视图,不具体存数据,而是映射数据。
2.SQL查询是针对hive表,hive再转换成对应的MapReduce进行并行计算。
3.hive表数据有4种导入方式。
补充:
HDFS:分布式文件系统(类似分级文件系统)
使用Hadoop和关系型数据库的区分指标(数据量的大小)