Cassandra NOSQL DB如何检索单行

Cassandra NOSQL DB如何检索单行,cassandra,hbase,nosql,Cassandra,Hbase,Nosql,各位 最近我读了一些博客NOSQL面向列存储。我正在尝试卡桑德拉和HBASE 据我所知,数据是以面向列的方式存储的 e、 g.员工Id、员工姓名、姓氏 100 , 'abc', 'xyz' 200 , 'ABC' , 'XYZ' 然后,数据将以以下格式存储在磁盘上(面向列的存储—单列存储在一起) 1)我想知道我们是否必须检索id=100的单个原始数据,它是如何完成的?因为数据不是连续的,所以成本会很高吗?(所有列是否都有带原始键的索引) 2)为什么HBASE cassandra没有适当的聚

各位

最近我读了一些博客NOSQL面向列存储。我正在尝试卡桑德拉和HBASE

据我所知,数据是以面向列的方式存储的

e、 g.员工Id、员工姓名、姓氏

 100 , 'abc', 'xyz'
 200 , 'ABC' , 'XYZ'
然后,数据将以以下格式存储在磁盘上(面向列的存储—单列存储在一起)

1)我想知道我们是否必须检索id=100的单个原始数据,它是如何完成的?因为数据不是连续的,所以成本会很高吗?(所有列是否都有带原始键的索引)


2)为什么HBASE cassandra没有适当的聚合功能支持,因为面向列的存储就是为了这样做的?

简单回答-HBASE和cassandra不是面向列的,而是面向行的。然而,与传统数据库的区别在于,每一行实际上是PK的键/值对和任意数量的列

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


然而,从面向列的存储中检索完整的行比从面向行的数据库中检索完整的行成本更高,这是对的。但是,面向列的DBMS被用于分析,通常需要在所有数据上聚合几个列,而面向行的DBMS用于从一小部分数据中检索(几乎)整行。

非常令人困惑,因为如果你在谷歌上搜索,HBase和Cassandra似乎有一个列族的概念。您能告诉我为什么需要列系列,Hbase和cassandra的内部存储机制是什么吗?还有一个链接将其描述为面向列的。HBASE也是面向列的?-根据这一点,它不是以terra data或vertica相同的形式面向列-这里解释了cassandra中的columnfamily-它基本上是一组行,与表格一样,可能实际的问题在于理解面向列的数据库是如何工作的——根据这篇维基百科文章,甚至SQL Server 2012也是一个面向列的系统。但教授在一次关于面向列数据库的讲座中向我们明确指出,这些数据库与terra data和vertica并不完全相同,后者处理优化更新和压缩数据的所有问题,而cassandra和HBase都不是以这种方式实现的
First column   Second column       Third Column
100|200       ,  'abc'|'ABC'   ,    'xyz'|'XYZ'