Cassandra是面向列的还是列式数据库

sak*_*aja 13 column-oriented cassandra nosql wide-column-store

列式数据库应该将列组存储在一起.但Cassandra按行存储数据.SS表将保存映射到其相应分区键的多行数据.所以我觉得Cassandra是像MySQL一样的行式数据存储,但是有其他好处,比如"宽行",并且每个列都不一定存在于所有行中,当然它也在内存中.如果我错了,请纠正我.

Aar*_*ron 16

如果你去GitHub上Apache Cassandra项目,并向下滚动到"执行摘要",你会得到你的答案:

Cassandra是一个分区行商店.行被组织成具有所需主键的表.

分区意味着Cassandra可以在应用程序透明的事物中跨多台计算机分发您的数据.随着机器被添加到群集中并从群集中删除,Cassandra将自动重新分区.

行存储意味着像关系数据库一样,Cassandra按行和列组织数据.

"所以我觉得Cassandra是一个明智的数据存储"

这是正确的.

  • @RajSaraogi 很好的发现!在这种情况下,我无法说出亚马逊文档背后的意图。我可以告诉您,以这种方式对 Cassandra 进行分类是一种常见的误解。事实上,他们的“AWS 上的 Apache Cassandra 白皮书”(http://d0.awsstatic.com/whitepapers/AWS_Cassandra_Whitepaper.pdf) 的链接表明 Cassandra _不是_ 列式数据库,这一事实增加了更多的混乱。我只能得出结论,他们的文档并不是非常准确。 (2认同)

tha*_*_DG 11

  • 在面向列或数据库中,数据以列方式存储在磁盘上.

    例如:表格Bonuses

     ID         Last    First   Bonus
     1          Doe     John    8000
     2          Smith   Jane    4000
     3          Beck    Sam     1000
    
    Run Code Online (Sandbox Code Playgroud)
  • 面向行的数据库管理系统中,数据将如下存储: 1,Doe,John,8000;2,Smith,Jane,4000;3,Beck,Sam,1000;

  • 面向列的数据库管理系统中,数据将按如下方式存储:
    1,2,3;Doe,Smith,Beck;John,Jane,Sam;8000,4000,1000;

  • Cassandra基本上是一个专栏

  • Cassandra会将上述数据存储为, "Bounses" : { row1 : { "ID":1, "Last":"Doe", "First":"John", "Bonus":8000}, row2 : { "ID":2, "Last":"Smith", "Jane":"John", "Bonus":4000} ... }
  • Vertica,VectorWise,MonetDB是我听说过的一些面向列的数据库.

  • 阅读本文了解更多详情.

希望这可以帮助.