先决条件 – 卡桑德拉
在本文中,我们将讨论如何使用 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;