商业网站的网址,软文推广页面代码,凡科做商品网站的教学视频,html原神网页制作教程一 Hbase是个什么东西#xff1f; 首先我们来看看两个概念#xff0c;面向行存储和面向列存储。面向行存储#xff0c;我相信大伙儿应该都清楚#xff0c;我们熟悉的RDBMS就是此种类型的#xff0c;面向行存储的数据库主要适合于事务性要求严格场合#xff0c;或者说面向… 一 Hbase是个什么东西 首先我们来看看两个概念面向行存储和面向列存储。面向行存储我相信大伙儿应该都清楚我们熟悉的RDBMS就是此种类型的面向行存储的数据库主要适合于事务性要求严格场合或者说面向行存储的存储系统适合OLTP但是根据CAP理论传统的RDBMS为了实现强一致性通过严格的ACID事务来进行同步这就造成了系统的可用性和伸缩性方面大大折扣而目前的很多NoSQL产品包括Hbase它们都是一种最终一致性的系统它们为了高的可用性牺牲了一部分的一致性。好像我上面说了面向列存储那么到底什么是面向列存储呢Hbase,Casandra,Bigtable都属于面向列存储的分布式存储系统。看到这里如果您不明白Hbase是个啥东西不要紧我再总结一下Hbase是一个面向列存储的分布式存储系统它的优点在于可以实现高性能的并发读写操作同时Hbase还会对数据进行透明的切分这样就使得存储本身具有了水平伸缩性。二 Hbase数据模型 HBase,Cassandra的数据模型非常类似他们的思想都是来源于Google的Bigtable因此这三者的数据模型非常类似唯一不同的就是Cassandra具有Super cloumn family的概念而Hbase目前我没发现。在Hbase里面有以下两个主要的概念Row key,Column Family我们首先来看看Column family,Column family中文又名“列族”Column family是在系统启动之前预先定义好的每一个Column Family都可以根据“限定符”有多个column。之前说的Row key是啥东西其实你可以理解row key为RDBMS中的某一个行的主键但是因为Hbase不支持条件查询以及Order by等查询因此Row key的设计就要根据你系统的查询需求来设计了。三 Hbase的优缺点 1 列的可以动态增加并且列为空就不存储数据,节省存储空间.2 Hbase自动切分数据使得数据存储自动具有水平scalability.3 Hbase可以提供高并发读写操作的支持Hbase的缺点1 不能支持条件查询只支持按照Row key来查询.2 暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.四.补充1.数据类型HBase只有简单的字符类型所有的类型都是交由用户自己处理它只保存字符串。而关系数据库有丰富的类型和存储方式。2.数据操作HBase只有很简单的插入、查询、删除、清空等操作表和表之间是分离的没有复杂的表和表之间的关系而传统数据库通常有各式各样的函数和连接操作。 3.存储模式HBase是基于列存储的每个列族都由几个文件保存不同的列族的文件时分离的。而传统的关系型数据库是基于表格结构和行模式保存的 4.数据维护HBase的更新操作不应该叫更新它实际上是插入了新的数据而传统数据库是替换修改5.可伸缩性Hbase这类分布式数据库就是为了这个目的而开发出来的所以它能够轻松增加或减少硬件的数量并且对错误的兼容性比较高。而传统数据库通常需要增加中间层才能实现类似的功能Hbase并不是关系数据库它不支持sql但在特定的问题空间里它能够做RDBMS不能做的事情在廉价硬件构成的集群上管理超大规模的稀疏表。Hbase是一个分布式的 面向列的数据存储系统通过在HDFS上提供随机读写来解决Hadoop不能处理的问题Hbase自底层设计开始即聚焦于各种可伸缩性问题表可以很“高”数十亿个数据行表可以很“宽”数百万个列水平分区并在上千个普通商用机节点上自动复制。严格来说RDBMS是一个遵循“Codd的12条规则”Codds 12 rules 参考http://blog.csdn.net/zelor/article/details/324926的数据库标准的RDBMS是模式固定面向列的数据库且具有ACID性质原子性 一致性 隔离性 持久性和复杂的SQL查询处理引擎RDBMS强调事务的“强一致性”、参照完整性、数据抽象与物理存储层相对独立以及基于SQL语言的复杂查询支持。在RDBMS中可以非常容易的建立“二级索引”执行复杂的内连接和外连接执行计数、求和、排序、分组等 操作或对表、行和列中的数据进行分页存放。Hbase特性没有真正的索引 行是顺序存储的每行中的列也是所以不存在索引膨胀问题而且插入性能和表的大小无关。自动分区 在表增长的时候表会自动分裂成区域并分布到可用的节点上。线性扩展和对新节点的自动处理 增加一个节点把它指向现有集群并运行regionserver。区域自动重新进行平衡负载均匀 分布。普通商用硬件支持容错 大量节点意味着每个节点的重要性并不突出不用担心单个节点失效。批处理 Mapreduce集成功能使我们可以用全并行的分布式作业根据“数据的位置”来处理它们 转载于:https://www.cnblogs.com/zym1998/p/10727015.html