hbase与rdbms的区别

姚躬行 2019-04-18 04:32:35
HBASE区别于RDBMS: 首先,HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”,就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力,HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,另一个不同的是HBase基于列的而不是基于行的模式。RDBMS是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是RDBMS 。它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。然而HBASe有着一些区别。从数据模型上来说,hbase最基本的单位是列(column),一列或者多列组成一行(row),并且由唯一的行键(row key)来确定存储。一个表中有很多行,每一列可能有多个版本,在每一个单元格(Cell)中存储了不同的值。HBase的行与行之间是有序的,按照row key的字典序进行排序,行键是唯一的,在一个表里只出现一次,否则就是在更新同一行,行键可以是任意的字节数组,同一个列族里qualifier的名称应该唯一,否则就是在更新同一列,列的数量没有限制,可以有数百万个,列值也没有类型和长度限定。从语义上来说,hbase行数据的存取操作是原子的,可以读取任意数目的列,因此它支持单行批量操作的事务性。从功能的实现上来说,hbase采用原生的并行架构, 如果应用程序对性能非常关注,通常的做法是把小规模的随机读取操作合并并排序,之后按顺序批量读取, 这样就避免了在文件中前后来回的移动读取位置。除此之外,它是一种给予关键字字典排序的统一表格,有一定的记忆功能,能在查找过程中更快的找到所需要的。 从操作方法上来说,hbase通过单个 Row Key 访问,以及通过 Row Key 的 range 全表扫描。Row Key 可以使任意字符串(最大长度是64KB,实际应用中长度一般为 10 ~ 100bytes),在HBase 内部,Row Key 保存为字节数组。除此之外,hbase没有jion操作。
...全文
69 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

202

社区成员

发帖
与我相关
我的任务
社区描述
非技术问题的乐园
数据库数据库架构数据库开发 技术论坛(原bbs)
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧