在说Hase是个啥家伙之前,首先我们来看看两个 概念,面向行存储和面向列存储。面向行存储,我相信大伙儿应该都清楚,我们熟悉的RDBMS就是此种类型的,面向行存储的数据库主要适合于事务性要求严格场合,或者说面 向行存储的存储系统适合OLTP, 但是根据CAP理 论,传统的RDBMS, 为了实现强一致性,通过严格的ACID事 务来进行同步,这就造成了系统的可用性和伸缩性方面大大折扣,而目前的很多NOSQL产品,包括Hbase,它们都是一种最终一致性的系统, 它们为了高的可用性牺牲了一部分的一致性。好像,我上面说了面向列存储,那么到底什么是面向列存储呢?Hbase,Casandra,Bigtable都 属于面向列存储的分布式存储系统。看到这里,如果您不明白Hbase是个啥东东,不要紧,我再总结一下下: Hbase是一个面 向列存储的分布式存储系统,它的优点在于可以实现高性能的并发读写操作,同时Hbase还会对数据进行透明的切分,这样就使得存储本身具有了水平伸缩性。 HBase,Cassandra的 数据模型非常类似,他们的思想都是来源于Google的Bigtable,因此这三者的数据模型非 常类似,唯一不同的就是Cassandra具 有Super cloumn family的 概念,而Hbase目 前我没发现。好了,废话少说,我们来看看Hbase的 数据模型到底是个啥东东。 在Hbase里面有以下两个主要的概念,Row key,Column Family, 我们首先来看看Column family,Column family中 文又名“列族”,Column family是 在系统启动之前预先定义好的,每一个Column Family都 可以根据“限定符”有多个column.下 面我们来举个例子就会非常的清晰了。 假如系统中有一个User表,如果按照传统的RDBMS的话,User表中的列是固定的,比如schema
一 Hbase是个啥东东?
二 Hbase数据模型