Managing Keyspaces and Tables

You can perform keyspace and table operations, such as adding and getting information about keyspaces and tables, using these HTTP methods:

Keyspace Management Methods URL

Retrieve information about all keyspaces

Retrieve information about a keyspace

Update an existing keyspace

Drop a keyspace in a cluster

Truncate a table

Drop a table itself

Keyspace Management Methods

GET /{cluster_id}/keyspaces

Retrieve all configured keyspaces in the cluster.

Path arguments: * cluster_id: The ID of a cluster returned from GET /cluster-configs.

Optional parameters:

  • ksfields: Comma-delimited list of explicit keyspace properties to return.

  • cffields: Comma-delimited list of explicit table properties to return.

Returns a dictionary where the key is the keyspace name, and the value is a dictionary of its properties. The list of properties for keyspaces and tables depends on the version of DataStax Enterprise that you’re running.

Example:

 curl http://127.0.0.1:8888/Test_Cluster/keyspaces

Output:

        {
          "Keyspace1": {
            "strategy_options": {
              "replication_factor": 1
            },
            "column_families": {
              "SuperCounter1": {
                "is_in_memory": false,
                "create_query": "CREATE TABLE \"Keyspace1\".\"SuperCounter1\" (\
                                 key blob, ...)",
                "solr_core": false
              },
              ...
            }
            "durable_writes": true,
            "replica_placement_strategy": "org.apache.cassandra.locator.SimpleStrategy",
            "is_system": false
          },
          ...
        }

GET /{cluster_id}/keyspaces/{ks_name}

Retrieve information about a specific keyspace in the cluster.

Path arguments:

  • cluster_id: The ID of a cluster returned from GET /cluster-configs.

  • ks_name: The value of a 'keyspace' property in the output of GET /{cluster_id}/keyspaces.

  • ksfields: Comma-delimited list of explicit keyspace properties to return.

  • cffields: Comma-delimited list of explicit table properties to return.

Returns the dictionary containing all keyspace properties. The properties returned depend on the version of DataStax Enterprise.

Example:

 curl http://127.0.0.1:8888/Test_Cluster/keyspaces/Keyspace1

Output:

        {
          "strategy_options": {
            "replication_factor": 1
          },
          "column_families": {
            "SuperCounter1": {
              "is_in_memory": false,
              "create_query": "CREATE TABLE \"Keyspace1\".\"SuperCounter1\" (\
                               key blob, ...)",
              "solr_core": false
            },
            ...
          }
          "durable_writes": true,
          "replica_placement_strategy": "org.apache.cassandra.locator.SimpleStrategy",
          "is_system": false
        }

PUT /{cluster_id}/keyspaces/{ks_name}

Update a keyspace.

Path arguments:

  • cluster_id: The ID of a cluster returned from GET /cluster-configs.

  • ks_name: The name of the 'keyspace' to update.

Body: A JSON dictionary of all keyspace attributes, not just those you wish to change.

The JSON body should be similar to the one used when creating a keyspace.

Example:

 curl -X PUT
   http://127.0.0.1:8888/Test_Cluster/keyspaces/Keyspace1
   -d '{
     "strategy_class": "org.apache.cassandra.locator.SimpleStrategy",
     "strategy_options": {"replication_factor": "2"},
     "durable_writes": true
   }'

DELETE /{cluster_id}/keyspaces/{ks_name}

Drop a keyspace from the cluster.

Path arguments:

  • cluster_id: The ID of a cluster returned from GET /cluster-configs.

  • ks_name: The name of the keyspace to delete.

Response 204: Keyspace deleted successfully

Example:

 curl -X DELETE http://127.0.0.1:8888/Test_Cluster/keyspaces/test_ks

Table Management Methods

DELETE /{cluster_id}/data/{ks_name}/{cf_name}

Truncate a table. Deletes all data from the table but does not delete the table itself.

  • cluster_id: The ID of a cluster returned from GET /cluster-configs.

  • ks_name: The name of the keyspace containing the table.

  • cf_name: The name of the table to truncate.

Response 204: Table truncated successfully

Returns null.

Example:

 curl -X DELETE http://127.0.0.1:8888/Test_Cluster/data/test_ks/users

DELETE /{cluster_id}/keyspaces/{ks_name}/cf/{cf_name}

Drop a table.

  • cluster_id: The ID of a cluster returned from GET /cluster-configs.

  • ks_name: The name of the keyspace containing the table.

  • cf_name: The name of the table to delete.

Response 204: Table deleted successfully

Example:

 curl -X DELETE http://127.0.0.1:8888/Test_Cluster/keyspaces/test_ks/cf/users