📜  在 Cassandra 中修改键空间

📅  最后修改于: 2021-09-08 15:26:31             🧑  作者: Mango

先决条件 – 卡桑德拉
在本文中,我们将讨论如何使用 ALTER KEYSPACE 命令修改现有的键空间。当我们想要修改一些属性时非常有用,例如复制因子、数据中心名称、键空间名称等。

程序:
首先,我们需要创建密钥空间。让我们考虑 cluster1 是键空间,我们有策略选项,如 NetworkTopologyStrategy 和数据中心名称东和西,其中两个数据中心的复制因子均为 2。我们来看一下。

创建密钥空间:

CREATE KEYSPACE cluster1
WITH REPLICATION = {'class' : 'SimpleStrategy', 
                    'replication_factor' : 3}; 

如果我们使用 SimpleStrategy 那么我们可以使用以下 CQL 查询来修改现有的键空间。

ALTER KEYSPACE cluster1
WITH REPLICATION =  { 'class' : 'SimpleStrategy', 
                      'replication_factor' : 3 }; 

更改复制策略:
在修改的情况下,我们可以在 keyspace 级别设置 RF(复制因子)和复制策略。让我们通过一个例子来理解这一点。

ALTER KEYSPACE cluster1
WITH REPLICATION = {'class’: 'NetworkTopologyStrategy', 
                    'east1' : 3, 'west1' : 3}; 

现在,如果我们想修改现有的键空间,在该键空间中我们有更改键空间名称的限制。我们来看一下。

ALTER KEYSPACE cluster1
WITH REPLICATION = {'class’: 'NetworkTopologyStrategy', 
                    'east1' : 3, 'dc2' : 2}; 

注意:数据中心名称区分大小写。使用实用程序(例如 dsetool status)验证数据中心名称的大小写。
请参阅更改密钥空间复制策略。

dsetool status

现在,当我们要添加数据中心时,我们可以对密钥空间进行全面修复。我们来看一下。

nodetool repair --full keyspace_name
nodetool repair –full cluster1; 

现在,使用以下 CQL 查询来验证键空间更改。

describe keyspace cluster1;