运维开发网

什么使Cassandra(和NoSQL一般)更好的解决RDBMS?

运维开发网 https://www.qedev.com 2020-03-17 20:05 出处:网络 作者:运维开发网整理
那么NoSQL是一个流行语,现在我一直在研究它.我还没有把我的头围绕ColumnFamilies和SuperColumns等…但我一直在看数据如何映射. 阅读this文章和其他文章后,似乎数据以JSON格式映射. Users = { 1: { username: "dave", password: "blahblah", dateReged:
那么NoSQL是一个流行语,现在我一直在研究它.我还没有把我的头围绕ColumnFamilies和SuperColumns等…但我一直在看数据如何映射.

阅读this文章和其他文章后,似乎数据以JSON格式映射.

Users = {
    1: {
        username: "dave",
        password: "blahblah",
        dateReged: "1/1/1"
    },
    2: {
        username: "etc",
        password: "blahblah",
        dateReged: "2/1/1",
        comment: "this guy has a comment and dave doesns't"
    },
}

RDBMS格式为:

Table name: "Users"

id | username | password | dateReged | comment
---+----------+----------+-----------+--------
 1 |  dave    | blahblah |  1/1/1    |
---+----------+----------+-----------+--------
 2 |  etc     | blahblah |  2/1/1    | this guy has a comment and dave doesn't

假设我正确理解这一点,上面的例子是正确的,为什么要在NoSQL设计上选择RDBMS设计?就我个人而言,我更喜欢使用JSON结构?这是否意味着我应该选择NoSQL,比如说MySQL?

我想我问的是“我什么时候应该选择NoSQL over RDBMS?”

在附注中,正如我所说,我还没有完全理解如何实现Cassandra数据库.也就是说,如何在新的数据库中创建上述的Users表?你可以指出的任何教程,文档等都会很棒.我的谷歌在“从头开始”方面没有太大变化

NoSQL的主要优点是可扩展性和分布式存储.这意味着您可以拥有大量的“群集节点”并并行写入.集群将确保更改最终传播到其他集群节点(最终一致性).

NoSQL不是关于SQL(术语意味着“不仅SQL”).实际上,一些NoSQL产品确实支持SQL的一个子集.数据格式不同的原因(JSON或属性/值对列表与表格数据)是:在关系数据库中,列(和列名称)的数量在一个中心位置定义,这对于水平不起作用可扩展性(您需要停止所有集群节点进行模式更改).此外,连接不受支持,因为这将破坏水平可伸缩性(如果数据分布,则可能需要读取来自多个集群节点的数据).

0

精彩评论

暂无评论...
验证码 换一张
取 消