第1个回答 2019-05-02
Hive是什么
1)Hive
是建立在Hadoop
(HDFS/MR)上的用于管理和查询结果化/非结构化的数据仓库;
2)一种可以存储、查询和分析存储在Hadoop
中的大规模数据的机制;
3)Hive
定义了简单的类SQL
查询语言,称为HQL,它允许熟悉SQL
的用户查询数据;
4)允许用Java开发自定义的函数UDF来处理内置无法完成的复杂的分析工作;
5)Hive没有专门的数据格式(分隔符等可以自己灵活的设定);
ETL的流程(Extraction-Transformate-Loading):将关系型数据库的数据抽取到HDFS上,hive作为数据仓库,经过hive的计算分析后,将结果再导入到关系型数据库的过程。
Hive是构建在Hadoop之上的数据仓库
1)使用HQL作为查询接口;
2)使用HDFS作为存储;
3)使用MapReduce作为计算;
Hive应用场景
数据源:
1)文件数据,如中国移动某设备每天产生大量固定格式的文件;
2)数据库
以上两种不同的数据源有个共同点:要使用hive,那么必须要将数据放到hive中;通常采用如下两种方式:
1)文件数据:load到hive
2)数据库:
sqoop到hive
数据的离线处理;
hive的执行延迟比较高,因为hive常用于数据分析的,对实时性要求不高;
hive优势在于处理大数据,对于处理小数据没有优势,因为hive的执行延迟比较高。
处理数据存放在hive表中,那么前台系统怎么去访问hive的数据呢?
先将hive的处理结果数据转移到关系型数据库中才可以,sqoop就是执行导入导出的操作