NOSQL DB如何返回单行

时间:2014-06-11 09:55:05

标签: cassandra hbase nosql

民间,

最近我正在阅读一些NOSQL列导向存储的博客。我正在尝试使用CASSANDRA和HBASE。

我所理解的是数据以列为导向的方式存储。

e.g。员工ID,员工姓名,姓氏

 100 , 'abc', 'xyz'
 200 , 'ABC' , 'XYZ'

然后,数据将以磁盘上的以下格式存储(面向列的存储单列)

First column   Second column       Third Column
100|200       ,  'abc'|'ABC'   ,    'xyz'|'XYZ'

1)我想知道我们是否必须使用id = 100来检索单个raw如何完成?由于数据不连续,成本会很高吗? (是否所有索引都包含所有列的原始密钥)

2)为什么HBASE cassandra没有正确的聚合功能支持,因为面向列的存储是为了那个?

1 个答案:

答案 0 :(得分:2)

简单的答案 - HBase和Cassandra不是面向列的,它们是面向行的。然而,与传统数据库的不同之处在于,每一行实际上是PK的一个键/值对和一个任意数量的列。

面向列的数据库例如是vertica和terra数据。

然而,从面向列的存储中检索完整行比从面向行的DB更加省略,这是正确的。但是,面向列的DBMS被用于分析,您通常希望在所有数据上聚合几列,而面向行则用于从仅一小部分数据中检索(几乎)完整行。