Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在分布式数据库中存储数据。在ApacheCassandra中,它是平等存储的。在其他分布式数据库管理系统中情况如何';s_Cassandra_Distributed Database_Nosql - Fatal编程技术网

如何在分布式数据库中存储数据。在ApacheCassandra中,它是平等存储的。在其他分布式数据库管理系统中情况如何';s

如何在分布式数据库中存储数据。在ApacheCassandra中,它是平等存储的。在其他分布式数据库管理系统中情况如何';s,cassandra,distributed-database,nosql,Cassandra,Distributed Database,Nosql,我在DataStax上读过关于ApacheCassandra的文章,我注意到我们将要编写的任何数据都将平均分布在所有节点中。在所有其他分布式数据库管理系统中都是这样吗?其他系统是否会在其数据库中平均分配数据?如果它们分布不均匀,那么数据如何分布在这些分布式数据库中 我注意到,无论我们要写什么数据,都将在所有节点之间平均分布 不一定。您拥有的数据复制级别由复制因子决定,复制因子是基于每个键空间设置的。假设我有一个由3个节点组成的集群,我定义键空间如下: CREATE KEYSPACE stacko

我在DataStax上读过关于ApacheCassandra的文章,我注意到我们将要编写的任何数据都将平均分布在所有节点中。在所有其他分布式数据库管理系统中都是这样吗?其他系统是否会在其数据库中平均分配数据?如果它们分布不均匀,那么数据如何分布在这些分布式数据库中

我注意到,无论我们要写什么数据,都将在所有节点之间平均分布

不一定。您拥有的数据复制级别由复制因子决定,复制因子是基于每个键空间设置的。假设我有一个由3个节点组成的集群,我定义键空间如下:

CREATE KEYSPACE stackoverflow
WITH replication = {'class': 'NetworkTopologyStrategy', 'MyDC': '3'};
在这种情况下,“是”,我的数据将平均复制到每个节点。但假设我的磁盘空间快用完了,而且(作为一家初创公司),我买不起更大的硬盘。在这种情况下,我可以将密钥空间改为复制因子为2:

CREATE KEYSPACE stackoverflow
WITH replication = {'class': 'NetworkTopologyStrategy', 'MyDC': '2'};
这样,每个节点只负责三分之二的数据。当然,这里的缺点是我现在只能在集群中损失一个节点

在所有其他分布式数据库管理系统中都是这样吗?其他系统是否会在其数据库中平均分配数据

简单地说,“不”和“不”

如果它们分布不均匀,那么数据如何分布在这些分布式数据库中

由于有数百个分布式DBMS(包括NoSQL和RDBMS,它们声称以某种方式“分布式”),我不可能开始总结(甚至是概括地)它们是如何分发数据的。但我要说的是,其中有几个利用“分片密钥”和/或“辅助节点”的概念来实现分布和规模

在Cassandra中,所有节点都是平等的……没有“主节点”的概念。但有些系统有“主节点”或“主节点”的概念,以及“次节点”的概念。在这些场景中,主设备处理所有写入操作,并将数据复制到一个或多个辅助设备。使用切分键,将切分值的特定范围分配给每个节点。然后,数据只存储在负责数据的碎片密钥所属范围的节点上