美文网首页
Hive & HBase & MySQL

Hive & HBase & MySQL

作者: RoyTien | 来源:发表于2021-03-08 22:53 被阅读0次

参考

定义

MySQL

关系型数据库,主要面向 OLTP,支持事务,支持二级索引,支持 SQL,支持主从,Group Replication 架构模型。

HBase

Hadoop Database 的简称,基于 Hadoop 的数据库,是面向列的分布式 NoSQL 数据库,基于 HDFS,支持海量数据读写(尤其是写),支持上亿行,上百万列,比较适合 OLAP。天然分布式,主从架构,不支持事务,不支持二级索引。主要适用于海量明细数据的随机实时查询。

Hive

Hive 是 Hadoop 的数据仓库,主要是让开发人员通过 SQL 来计算和处理 HDFS 上的结构化数据,适用于离线的批量数据计算。

数据存储方式

MySQL

行存储,MySQL 行存储的方式比较适合 OLTP 业务。

Hbase

HBase 不是行式存储,也不是完全的列式存储,而是面向列族的列族式存储。

HBase 的每一列数据在底层都是以 Key / Value 形式存储的,而针对一行数据,同一列族的不同列的数据是顺序相邻存放的,这种模式实际上是行式存储;而如果一个列族下只有一个列的话,就是一种列式存储。因此我们可以说HBase是一种列族式存储。

HBase 通过存储 Key / Value 来工作。支持四种主要操作:增加或更新行,查看一个范围内的 KEY 的 VALUE,获取指定行,删除指定「行,列,或列的版本」。(Hot Key + 同一对象不同时间的数据放在一起)。

Hive

通过元数据来描述 HDFS 上的结构化文本数据,即定义一张表来描述 HDFS 上的结构化文本,包括列名,数据类型等,便于处理数据。很多 SQL On Hadoop 的计算引擎均用的是 Hive 的元数据。

引擎

Hive

通过 SQL 来处理和计算 HDFS 的数据,Hive 会将 SQL 翻译为 MapReduce 来处理数据。

HBase

HBase 是 Google BigTable 的开源实现,底层存储引擎是基于 LSM-Tree 数据结构设计的。

总结

Hive 和 HBase 是两种基于 Hadoop 的不同技术
Hive 是类 SQL 引擎,运行 MapReduce 任务
HBase 是在 Hadoop 之上的 NoSQL Key / Value 数据库

默认情况下 HBase 只对 RowKey 做了单列索引,所以 HBase 能通过 RowKey 进行高效的的单点查询及小范围扫描。HBase 索引还是比较单一的,通过非 RowKey 列查询性能比较低,除非对非 Rowkey 列做二级索引,否则不建议根据非 Rowkey 列做查询。

HBase 的二级索引一般是基于 HBase 协处理器实现,目前比较成熟的方案可以使用 Phoenix,HBase 集成 Phoenix 构建二级索引实践,Phoenix 不仅能够为 HBase 提供二级索引能力,还扮演着 HBase 的 SQL 层,增强了 HBase 即席查询的能力。

相关文章

网友评论

      本文标题:Hive & HBase & MySQL

      本文链接:https://www.haomeiwen.com/subject/ubdtqltx.html