为啥说HBase是列式数据库
最近隐隐觉得 hbase 的 "column oriented" 跟 "列式数据库" 中的含义似乎有点区别:
hbase 语境中的列是数据的一个维度,可以动态增长列的数量,而列数据的磁盘组织仍与 row store 无异,相邻的行数据有存储局部性。而 "column store" 相对于 "row store" 在磁盘布局方面的差异更为本质,每一列都独立相邻存储,便于对列内同质的数据做批量操作。不过 hbase 里面 column family 的概念更接近 column store 中的列。
■网友
HBase是一种列簇数据库(column-family database),但是不属于列式数据库(column-oriented database)。
Martin Kleppmann在《Designing Data-Intensive Applications》对HBase做出了以下评价——
Cassandra and HBase have a concept of column families, which they inherited from Bigtable. However, it is very misleading to call them column-oriented: within each column family, they store all columns from a row together, along with a row key, and they do not use column compression. Thus, the Bigtable model is still mostly row-oriented.首先讲讲列数据库。列数据库和行数据库的根本区别是如何存储数据——列数据库把某个record的不同column存储在不同的file中,而行数据库把同一个record的数据逐行地存放在file中。
图中的8个column分别存储在8个不同的file中将column存在不同的file之后,列数据库通常还要压缩这些column,这是因为同一个column中的数据有比较大的相似性,具备压缩的可能性。
其次讲讲HBaseHBase和Cassandra都是Google BigTable的一种实现。HBase本质上是一种强化版的KV数据库。通常的KV数据库存储的数据形式是——\u0026lt;key, value, version\u0026gt;。
HBase的创新点包含在key中,HBase的数据形式是这样的——\u0026lt;, value, version\u0026gt;。也就是说HBase在key中添加了column family等概念,使得key包括了row key与column两个部分。
而Martin Kleppmann认为HBase中的“column”不等于列数据库中的“column”,此列非彼列——“Within each column family, they store all columns from a row together, along with a row key, and they do not use column compression.”
具体的底层细节我还是摸不准,这里想At一下 @阿莱克西斯
■网友
HBase应该叫列簇数据库,而不是列数据库。
■网友
Hbase的存储方式就决定了列数据库!!1、存储方式:在HBase中,Key-Value是最小的存储单元。每一个Key-Value对应一个列,Value对应于一个列的列值。2、Rowkey作用:而且HBase是根据Rowkey来进行检索的(索引),系统通过找到某个Rowkey所在的Region,然后将查询数据的请求路由到该Region获取数据。所以设计Rowkey就决定了未来你的查询性能3、hbase为什么叫列式存储?因为hbase列的可以动态增加,并且列为空就不存储数据,节省存储空间。举个例子吧,概念说多了也不直观,如下:1)Mysql结构化数据:你要指定一个表user,你必须预先定义好各个字段,姓名、年龄、ID。后期要扩展新字段麻烦2)Hbase列式存储:你只要设计好rowKey,定义好列簇,至于里面什么属性,有多少字段类型,无需预先定义好,扩展性极佳,需要的列字段可以不停的增加。也许前期你就姓名、年龄、ID三个字段,未来你随时可以存储第四个字段,第五个字段,第n个字段到你的列簇里,因为同一个列簇中的所有数据都存储在一个文件里。
■网友
HBase 准确说应该是kv数据库,每个列与rowkey,时间戳等组成一个kv,列式数据库的说法可能原因是HBase是把不同列族的数据放在一起,所以被误解为列数据库了。
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸