Create a keyspace (Java)
Creates a new keyspace in a database.
Keyspaces are used to store collections and tables in Hyper-Converged Database (HCD).
Result
Creates the specified keyspace.
Does not return anything.
Parameters
Use the createKeyspace method, which belongs to the com.datastax.astra.client.admin.DatabaseAdmin class.
Method signature
void createKeyspace(String keyspaceName)
void createKeyspace(KeyspaceDefinition keyspaceDefinition)
void createKeyspace(
KeyspaceDefinition keyspaceDefinition,
CreateKeyspaceOptions options
)
| Name | Type | Summary |
|---|---|---|
|
|
The name of the keyspace to create. |
|
|
The keyspace name and optionally replication factors.
See Methods of |
|
|
Optional.
The options for this operation. See Methods of |
| Method | Parameters | Summary |
|---|---|---|
|
|
The name of the keyspace to create. |
|
|
Optional. Specifies the options for data replication across database nodes using a simple strategy. You cannot use both this and |
|
|
Optional. Specifies the options for data replication across database nodes using a network topology strategy. You cannot use both this and |
| Method | Parameters | Summary |
|---|---|---|
|
|
Optional.
Whether to set the working keyspace of the Default: false |
|
|
Optional. Whether the command should silently succeed even if a keyspace with the given name already exists and no new keyspace was created. Default: true |
Examples
The following examples demonstrate how to create a keyspace.
Create a keyspace
import com.datastax.astra.client.DataAPIClient;
import com.datastax.astra.client.DataAPIClients;
import com.datastax.astra.client.admin.DatabaseAdmin;
import com.datastax.astra.client.databases.Database;
public class Example {
public static void main(String[] args) {
// Get a database
DataAPIClient client = DataAPIClients.clientHCD("USERNAME", "PASSWORD");
Database database = client.getDatabase("API_ENDPOINT", "KEYSPACE_NAME");
// Get an admin object
DatabaseAdmin admin = database.getDatabaseAdmin();
// Create a keyspace
admin.createKeyspace("KEYSPACE_NAME");
}
}
Create a keyspace and set it as the working keyspace for the database
import com.datastax.astra.client.DataAPIClient;
import com.datastax.astra.client.DataAPIClients;
import com.datastax.astra.client.admin.DatabaseAdmin;
import com.datastax.astra.client.databases.Database;
import com.datastax.astra.client.databases.commands.options.CreateKeyspaceOptions;
import com.datastax.astra.client.databases.definition.keyspaces.KeyspaceDefinition;
public class Example {
public static void main(String[] args) {
// Get a database
DataAPIClient client = DataAPIClients.clientHCD("USERNAME", "PASSWORD");
Database database = client.getDatabase("API_ENDPOINT", "KEYSPACE_NAME");
// Get an admin object
DatabaseAdmin admin = database.getDatabaseAdmin();
// Create a keyspace
KeyspaceDefinition definition = new KeyspaceDefinition().name("KEYSPACE_NAME");
CreateKeyspaceOptions keyspaceOptions = new CreateKeyspaceOptions().updateDBKeyspace(true);
admin.createKeyspace(definition, keyspaceOptions);
}
}
Create a keyspace and specify replication options
For more information about data replication, see Data replication.
Example using SimpleStrategy:
import com.datastax.astra.client.DataAPIClient;
import com.datastax.astra.client.DataAPIClients;
import com.datastax.astra.client.admin.DatabaseAdmin;
import com.datastax.astra.client.databases.Database;
import com.datastax.astra.client.databases.definition.keyspaces.KeyspaceDefinition;
public class Example {
public static void main(String[] args) {
// Get a database
DataAPIClient client = DataAPIClients.clientHCD("USERNAME", "PASSWORD");
Database database = client.getDatabase("API_ENDPOINT", "KEYSPACE_NAME");
// Get an admin object
DatabaseAdmin admin = database.getDatabaseAdmin();
// Create a keyspace
KeyspaceDefinition definition =
new KeyspaceDefinition().name("KEYSPACE_NAME").simpleStrategy(3);
admin.createKeyspace(definition);
}
}
Example using NetworkTopologyStrategy:
import com.datastax.astra.client.DataAPIClient;
import com.datastax.astra.client.DataAPIClients;
import com.datastax.astra.client.admin.DatabaseAdmin;
import com.datastax.astra.client.databases.Database;
import com.datastax.astra.client.databases.definition.keyspaces.KeyspaceDefinition;
import java.util.Map;
public class Example {
public static void main(String[] args) {
// Get a database
DataAPIClient client = DataAPIClients.clientHCD("USERNAME", "PASSWORD");
Database database = client.getDatabase("API_ENDPOINT", "KEYSPACE_NAME");
// Get an admin object
DatabaseAdmin admin = database.getDatabaseAdmin();
// Create a keyspace
KeyspaceDefinition definition =
new KeyspaceDefinition()
.name("KEYSPACE_NAME")
.networkTopologyStrategy(Map.of("datacenter1", 3, "datacenter2", 2));
admin.createKeyspace(definition);
}
}
Client reference
For more information, see the client reference.