在这篇文章中,我们将讨论什么是 Hbase,不同类型的数据存储方法,为什么 HBase 比其他数据库更受欢迎,HBase 的优点和问题。 所以,让我们深入了解这篇文章来理解这个概念好。
数据库:
HBase是一个开源平台的数据库,是谷歌Big Table存储架构的实现。 HBase 数据库是面向列的,因此它与其他数据库不同。 Hbase 的独特之处之一是它不关心数据类型,因为我们可以将同一列的不同数据类型的数据存储在不同的行中。它包含以键值格式维护数据的不同表集。 Hbase 最适合稀疏数据集,这在大数据的情况下非常常见。它可用于管理结构化和半结构化数据,并且具有许多内置功能,例如:
- 可扩展性
- 版本控制
- 压缩
- 垃圾收集
有两种类型的数据存储介质:
- 面向行
- 面向列
面向行:
在面向行的数据存储方法中,数据一次存储和检索一行。这可能会导致几个问题,假设我们只需要行中的部分数据,但根据这种方法,即使您不需要它,您也必须检索完整的行。除此之外,这种方法还有助于在 OLTP 系统操作的情况下获得帮助,并有助于轻松读取和写入记录。但在我们对完整数据库执行操作的情况下效率较低。
面向列:
在面向列的数据存储方法中,数据是基于列进行存储和检索的。这样就解决了我们在面向行的方法中面临的问题,因为在面向列的方法中,我们可以借助相应的列从整个数据集中过滤掉我们需要的数据。在面向列的方法中,读取和写入操作比其他方法慢,但在对整个数据库执行操作时可以高效,因此它允许非常高的压缩率。
HBase 的偏好:
- 与其他数据库相比,Hbase 可以非常轻松地处理大型数据库,并以高效的方式执行操作。
- Hbase 中预期的数据是高度结构化的,可以很容易地适应明确定义的模式。
- 它很容易并且适用于低延迟操作。
- 它提供对数千条记录中特定行的访问。
- Hbase 中的数据可以通过 shell 命令或通过Java的客户端 API 访问。
- 其他数据库在大型数据库时变得非常慢,但在 Hbase 的情况下,它以有限的方式处理大型数据库。
HBase 的优点:
- Hbase 为与 Hadoop MapReduce 关联的分析提供了强大的功能。
- 它能够处理非常大量的数据库。
- Hbase 提供了与其他用户共享数据库的功能。
- 与其他传统数据库相比,有许多操作(例如数据读取和处理)将花费更少的时间。
- 每当出现故障或负载共享问题时,Hbase 都可以自动从问题中恢复,因为它是内部分布式的。
- 在 Hbase 中,线性和模块化形式都支持可扩展性。
- 它提供了很大的一致性。
HBase 中的问题:
- 在 HBase 中,操作期间分配的内存块要求和硬件要求是昂贵的。
- 在 HBase 中存储二进制格式的大文件非常困难。
- HBase 中没有查询优化器,因此它无法执行 SQL 功能,也不支持 SQL 结构。
- 尽管 Hbase 提供了很多功能,但它不能完全替代传统模型,因为 HBase 仍然不支持某些传统功能。
- Hbase 不提供任何事务支持。
- HBase 不支持任何默认索引功能。