1.什么是hive
hive是基于Hadoop构建的一套数据仓库分析系统。
hive类似Mysql的服务层(有解释器、编译器、优化器、执行器),而Hadoop类似Mysql存储引擎(负责数据的存储)
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)。
原文:https://www.cnblogs.com/Gang-Bryant/p/12209341.html