ALTER KEYSPACE

Can modify either or both the keyspace:

  • replication strategy - SimpleStrategy or NetworktopologyStrategy

  • replication factor - the number of copies of the data in a cluster

The replication strategy class and factor settings are originally set when creating a keyspace in the replication map. The commit log writes can be modified to use or not use durable writes.

Restriction: Changing the keyspace name is not supported.

Datacenter names are case-sensitive. Verify the case of the using utility, such as dsetool status.

Synopsis

alter_keyspace_statement::= ALTER KEYSPACE [ IF EXISTS ] keyspace_name WITH options

ALTER KEYSPACE <keyspace_name>
  WITH REPLICATION = { <replication_map> }
  [ AND DURABLE_WRITES = ( true | false ) ]
  [ AND graph_engine =  'Core' ];
Syntax legend
Legend
Syntax conventions Description

UPPERCASE

Literal keyword.

Lowercase

Not literal.

< >

Variable value. Replace with a user-defined value.

[]

Optional. Square brackets ([]) surround optional command arguments. Do not type the square brackets.

( )

Group. Parentheses ( ( ) ) identify a group to choose from. Do not type the parentheses.

|

Or. A vertical bar (|) separates alternative elements. Type any one of the elements. Do not type the vertical bar.

...

Repeatable. An ellipsis ( ... ) indicates that you can repeat the syntax element as often as required.

'<Literal string>'

Single quotation (') marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case.

{ <key> : <value> }

Map collection. Braces ({ }) enclose map collections or key value pairs. A colon separates the key and the value.

<datatype2

Set, list, map, or tuple. Angle brackets ( < > ) enclose data types in a set, list, map, or tuple. Separate the data types with a comma.

<cql_statement>;

End CQL statement. A semicolon (;) terminates all CQL statements.

[--]

Separate the command line options from the command arguments with two hyphens ( -- ). This syntax is useful when arguments might be mistaken for command line options.

' <<schema\> ... </schema\>> '

Search CQL only: Single quotation marks (') surround an entire XML schema declaration.

@<xml_entity>='<xml_entity_type>'

Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files.

Parameters

Parameter Description Default

keyspace_name

Name of the keyspace to create.

<replication_map>

Replication strategy and replication factor settings. The 'class' key is required. Choose either 'SimpleStrategy' or 'NetworkTopologyStrategy'. The 'replication_factor' key is required for 'SimpleStrategy', and is set to a positive value of at least 1 and equal to or less than the number of nodes in the cluster. For 'NetworkTopologyStrategy', assign replication factors to each datacenter by name in a comma-separated list of datacenter names and replication factors.

The SimpleStrategy replication strategy is used for single datacenter clusters and for evaluation and single datacenter test and development environments only.

The NetworkTopologyStrategy replication strategy is used for production environments and multi-DC test and development environments. Datacenter names must match the snitch DC name; see Snitches.

Use only replication strategy implementations bundled with CQL.

Options

Option Description Default

DURABLE_WRITES

Although not recommended, can be changed to false, to bypass the commit log when writing to the keyspace. Optional. Although not recommended, can be changed to false, to bypass the commit log when writing to the keyspace. Default value is true.

+

Never disable durable writes when using SimpleStrategy replication.

true

graph_engine

The graph engine to use for the keyspace. Choices are Core or Classic. Optional. Use to treat a Cassandra keyspace as a graph. Only the 'Core' engine can be specified; the 'Classic' engine cannot.

Classic

Examples

SimpleStrategy

REPLICATION = {
 'class' : 'SimpleStrategy',
 'replication_factor' : <N>
}

NetworkTopologyStrategy

REPLICATION = {
 'class' : 'NetworkTopologyStrategy',
 '<datacenter_name>' : <N> [,
 '<datacenter_name>' : <N> ]
 }

Change the cycling keyspace to NetworkTopologyStrategy in a single datacenter and turn off durable writes (not recommended). This example uses the default datacenter name with a replication factor of 1.

  ALTER KEYSPACE cycling
  WITH REPLICATION = {
      'class' : 'SimpleStrategy', 
      'replication_factor' : 2, 
  };

Change the food_cql keyspace into a graph.

ALTER KEYSPACE food_cql 
  WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1} 
  AND graph_engine = 'Core';

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com