在互联网上阅读几篇论文和文档,我发现了很多关于Cassandra数据模型的矛盾信息.有许多将其识别为面向列的数据库,其他作为面向行的数据库,然后将其定义为两者的混合方式.
根据我对Cassandra如何存储文件的了解,它使用*-Index.db文件访问*-Data.db文件的正确位置,在该文件中存储了bloom过滤器,列索引,然后是列的要求的行.
在我看来,这是严格的行导向.有什么我想念的吗?
我读的关于NoSQL的越多,它就越像听起来像是一个面向列的数据库.
NoSQL(例如CouchDB,Cassandra,MongoDB)和面向列的数据库(例如Vertica,MonetDB)之间有什么区别?
是否有任何开源项目正在为PostgreSQL创建面向列的存储引擎?我知道雅虎在内部创建了一个,并且在PostgreSQL上构建了以列为导向的商业产品.
这些术语之间存在很多混淆。我想把我的理解发表出来,看看人们是否同意。我在网上看到了相互矛盾和错误的定义。
在我看来,宽列数据库和列族数据库本质上是同一件事。他们是
主要区别是它们没有固定的列模式,并且显然不能进行表连接。
3 行(列族)的示例:每行具有不同的长度和/或列,但在磁盘上rowkey1的整个内容是连续的行,后面跟着类似于关系数据库的其他行
rowkey1 k1-v k2-v k3-v
rowkey2 k1-v k4-v
rowkey3 k2-v k4-v k5-v
另一方面,术语“列式数据库”与“面向列的数据库”相同。它们一次一列存储在磁盘上,而不是一次一行。它非常适合时间序列或任何多序列分析目的。事实上,每列都具有相同类型的数据并且存储在一起,从而可以实现更好的数据压缩,这是一个额外的好处。
一个例子:
在磁盘上:
a:1 b:2 c:3 d:4
10:1 9:2 8:3 7:4
我发现数据库通常有两种形式,传统的面向行的RDBMS或面向对象的数据库(OODBMS).然而,在90年代中期我记得,一种新的数据库显示出面向列.其中一些被赋予了术语4GL,但我不认为这是一个卡住的术语.
我想知道的是以下内容:
我记得使用的两个面向列的数据库是FAME和KDB.
列式数据库应该将列组存储在一起.但Cassandra按行存储数据.SS表将保存映射到其相应分区键的多行数据.所以我觉得Cassandra是像MySQL一样的行式数据存储,但是有其他好处,比如"宽行",并且每个列都不一定存在于所有行中,当然它也在内存中.如果我错了,请纠正我.
有没有人有使用MonetDB的经验?目前,我的MySQL数据库越来越大,查询速度太慢.根据面向列的范例,插入将更慢(我根本不介意),但数据检索变得非常快.通过切换到MonetDB,我是否有机会获得更多的数据检索性能?MonetDB足够成熟吗?
我知道面向文档的NoSQL DB是KV模型的"扩展",因为它们允许您查询的不仅仅是单个查找键.但是,一旦某个东西成为"文档",我觉得它已经有了一个关系模型:
"myJson": {
"fizz": 4,
"buzz": "true",
"widget" : {
...etc.
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,我没有看到这个JSON,json_objects带有fizz和buzz字段的表以及与第二个widgets表的外键关系之间的区别.
而"柱状"DB就像Cassandra听起来就像是直接的关系/表DB.
所以我问:面向文档和列的DB有什么不同,所以区别于它们(与RDBMS)有什么区别?在某些情况下,它们最适合解决哪些问题使它们优于关系数据库?提前致谢!
document-oriented-db column-oriented mongodb cassandra nosql
Cassandra 等 NoSQL 数据库上下文中的列式存储与 Redshift 中的列式存储有何不同。如果 Cassandra 也是列式存储,那么为什么它不用于 Redshift 等 OLAP 应用程序?
面向列的存储引擎(例如InfiniDB)是否可以在MySQL 5.5的核心版本中使用?
意思是,不是作为插件,而是核心MySQL 5.5捆绑包.
我正在为大学做一个项目,那就是构建一个 URL 缩短器。我研究了不同类型的 NoSQL 数据库,但我不知道哪种更适合我的目的以及原因。
我可以在键/值数据库、面向文档、面向列或图形之间进行选择。我确信该图不利于我的目标。
请问您有什么建议吗?
key-value column-oriented nosql url-shortener document-oriented
因为我正在开发一个将UML类图转换为NoSQL cassandra数据库的新项目.我很难找到类似于关系模型的基本翻译规则.正如我在cassandra文档中读到的那样,它是面向查询的建模.但是在实现之前是否存在任何通用规则概念.请帮忙
column-oriented ×12
nosql ×6
cassandra ×5
database ×4
key-value ×1
monetdb ×1
mongodb ×1
mysql ×1
performance ×1
postgresql ×1
rdbms ×1
release ×1
uml ×1