当前位置:首页 > 数码 > 一文搞明白Hive与数据库之间的关键区别 (一文搞明白算力产业链)

一文搞明白Hive与数据库之间的关键区别 (一文搞明白算力产业链)

admin4个月前 (05-09)数码15

Hive 是一种使用类似 SQL 的查询语言 HQL(Hive Query Language)的数据仓库工具。由于其 SQL 语法,Hive 通常被误认为是数据库。Hive 实际上是专为数据仓库设计的,是数据仓库的客户端。因此,要理解 Hive 与数据库的区别,我们需要首先了解数据仓库与数据库的区别。

概念

数据库是一种逻辑概念,用于存储各种数据(通常指关系数据库),而数据仓库则是数据库概念的升级。换句话说,数据仓库可以理解为多个数据库的集合,它也由一张张的数据表组成,但可以从以下方面区分理解:

  • 逻辑上:数据库和数据仓库没有区别,都是用来存储数据的。
  • 数据量:数据仓库的数据量远大于数据库,通常数据仓库是 GB 级别的(百万行数据),而数据库则是 TB 级别,甚至 PB 级别。
  • 用途:数据库主要用于业务平台的事务处理(不同业务平台有各自的数据库),而数据仓库主要用于海量数据分析。

设计原则

关系数据库通常遵循范式设计,其中六种范式分别为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。通常设计只需满足 3NF 规范即可。3NF 范式的主要要求包括:

  1. 表内的每一个值都只能表达一个意思。
  2. 表内的每一行都有唯一的主键。
  3. 表内的每一行的非主键不应该依赖于其它字段信息。

而数据仓库设计原则要考虑的因素较多,包括访问性能、数据成本、使用成本、数据质量、扩展性等。简单概括如下:

  1. 数据产出稳定并且有保障
  2. 保证数据干净,数据质量
  3. 数据要涵盖的业务足够广
  4. 数据构成体系足够透明
因此,数据仓库设计采用范式 + 维度设计,从而达到全局数据分析的目的。

功能实现

关系数据库通过数据库软件来实现,主流的关系数据库软件有 SQL Server、Oracle、DB2 等,主要用于业务事务的处理。数据仓库并不是基于某个软件来实现,而是基于 Hadoop 生态来构建的。数据存储基于 HDFS 来实现分布式文件存储,通过 Sqoop、Maxwell、Datax 来实现数据仓库的数据导入导出,通过 Hive、Spark、Flink 来实现数据挖掘分析,从而达到辅助企业做决策的目的。

数据体现

关系数据库通常服务于企业的业务平台,每个业务平台都有各自的关系数据库及其对应的表,各业务平台之间是独立且分离的。表中保存的是与业务相关的数据,反应了与业务相关数据的动态情况,记录地是业务目前的状态。而数据仓库的数据保存地是各个业务平台的一个或者多个数据库或者文件,比如 MySQL、文本文件、各业务平台日志文件等等,可以简单理解为很多个业务平台的数据往数据仓库输送,是各种数据的一个集合体。多个业务平台输入的数据都会被保存下来,一般情况不会删除掉,这样也就体现出数据仓库中的数据是有历史轨迹的,数据量体积相对关系数据库更加庞大,这也是与关系数据库的不同之处。

总结

从本质上来说,数据仓库也是数据库,这是它们在概念上相同之处。但不同点体现在使用用途、数据量存储方面。从软件的实现及操作方面也有明显区别,比如关系数据库支持增删改操作,且对交互要求高;而数据仓库通常是一次写入多次读取,不支持修改和删除,对交互要求不高。


hive和hbase有什么关系和区别

应该是Hadoop在hbase和Hive中的作用吧。 hbase与hive都是架构在hadoop之上的。 都是用hadoop作为底层存储。 而hbase是作为分布式数据库,而hive是作为分布式数据仓库。 当然hive还是借用hadoop的MapReduce来完成一些hive中的命令的执行。 而hbase与hive都是单独安装的。 你需要哪个安装哪个,所以不存在重复信息。

hbase和hive的差别是什么,各自适用在什么场景中

一文搞明白算力产业链

对于hbase当前noSql数据库的一种,最常见的应用场景就是采集的网页数据的存储,由于是key-value型数据库,可以再扩展到各种key-value应用场景,如日志信息的存储,对于内容信息不需要完全结构化出来的类CMS应用等。 注意hbase针对的仍然是OLTP应用为主。 对于hive主要针对的是OLAP应用,注意其底层不是hbase,而是hdfs分布式文件系统,重点是基于一个统一的查询分析层,支撑OLAP应用中的各种关联,分组,聚合类SQL语句。 hive一般只用于查询分析统计,而不能是常见的CUD操作,要知道HIVE是需要从已有的数据库或日志进行同步最终入到hdfs文件系统中,当前要做到增量实时同步都相当困难。 和mysql,oracle完全不是相同的应用场景。 这个是结构化数据库,针对的更多的是结构化,事务一致性要求高,业务规则逻辑复杂,数据模型复杂的企业信息化类应用等。 包括互联网应用中的很多业务系统也需要通过结构化数据库来实现。 所以和hbase,hive不是一个层面的东西,不比较。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Hive