深入浅出认识Hive

Hive是一个基于Hadoop的数据仓库工具,提供类似SQL的查询功能,适用于大数据集的批处理分析。它不是数据库,而是将SQL语句转化为MapReduce任务运行。Hive不支持低延迟查询和行级操作,适用于历史数据分析。Hive的元数据存储在数据库中,数据存储在HDFS,查询计划通过MapReduce执行。
摘要由CSDN通过智能技术生成

1、什么是Hive?---Hive是一个数据仓库,不是数据库

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

◆数据仓库和数据库的区别

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的;数据库一般存储在线交易数据,数据仓库存储的一般是历史数据;数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计时有意引入冗余,采用反范式的方式来设计;数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

Hive构建在基于静态批处理的Hadoop之上,Hadoop通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive在几百MB 的数据集上执行查询一般有分钟级的时间延迟。所以, Hive并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive将用户的HiveQL 语句通过解释器转换为MapReduce作业提交到Hadoop集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。Hive并非为联机事务处理而设计,Hive并不提供实时的查询和基于行级的数据更新操作。Hive的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。

◆Hive与SQL的区别:

Hive是读时模式(不会在数据加载时进行验证,而是在查询的时候进行),SQL是写时模式(数据在写入数据库是对模式进行检查)。在创建表加载数据时,Hive会直接将相应文件导入,而SQL会将文件中的数据一条一条写入数据库。因此,在进行大数据的分析时,使用Hive效率更高。

HQL和MySQL的方言最接近,但是两者还是存在显著性差异的。Hive不支持行级插入操作、更新操作和删除操作,Hive也不支持事务。

2、Hive的体系结构

A、用户接口

用户接口主要有三个:CLI,JDBC/ODBC和 Web GUI。其中最常用的是 CLI,Cli 启动的时候,会同时启动一个 Hive 副本。JDBC/ODBC 是 Hive 的客户端,用户连接至 Hive Server,在1.x之后,Hive使用了HiveServer2。WUI 是通过浏览器访问 Hive。

B、数据存储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值