Package com.datastax.astra.client.admin
Class AstraDBDatabaseAdmin
java.lang.Object
com.datastax.astra.client.admin.AstraDBDatabaseAdmin
- All Implemented Interfaces:
DatabaseAdmin
Implementation of the DatabaseAdmin interface for Astra. To create the namespace the devops APi is leverage. To use this class a higher token permission is required.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionInitialize a database admin from token and database id.AstraDBDatabaseAdmin(String token, UUID databaseId, com.dtsx.astra.sdk.utils.AstraEnvironment env, DataAPIOptions options) Initialize a database admin from token and database id. -
Method Summary
Modifier and TypeMethodDescriptionvoidcreateKeyspace(String keyspace, boolean updateDBKeyspace) Create a Keyspace providing a name.voidcreateNamespace(String namespace) Syntax Sugar, retro compatible.voidcreateNamespace(String keyspace, boolean updateDBKeyspace) Create a Keyspace providing a name.voiddropKeyspace(String namespace) Drops (deletes) the specified keyspace from the database.voiddropNamespace(String namespace) Drops (deletes) the specified namespace from the database.Retrieve the list of embedding providers available in the current database.Access the Database associated with this admin class.getDatabase(String keyspace) Access teh database with the default token.getDatabase(String keyspace, String tokenUser) Access teh database with the specialized token.com.dtsx.astra.sdk.db.domain.DatabaseFind a database from its id.Retrieves a stream of keyspaces names available in the current database.Retrieves a stream of namespace names available in the current database.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.datastax.astra.client.admin.DatabaseAdmin
createKeyspace, createKeyspaceAsync, createNamespaceAsync, dropKeyspaceAsync, dropNamespaceAsync, keyspaceExists, listKeyspacesNamesAsync, listNamespaceNamesAsync, namespaceExists
-
Field Details
-
db
Database if initialized from the DB.
-
-
Constructor Details
-
AstraDBDatabaseAdmin
Initialize a database admin from token and database id.- Parameters:
db- target database
-
AstraDBDatabaseAdmin
public AstraDBDatabaseAdmin(String token, UUID databaseId, com.dtsx.astra.sdk.utils.AstraEnvironment env, DataAPIOptions options) Initialize a database admin from token and database id.- Parameters:
token- token valuedatabaseId- database identifierenv- working environmentoptions- options used to initialize the http client
-
-
Method Details
-
getDatabaseInformations
public com.dtsx.astra.sdk.db.domain.Database getDatabaseInformations()Find a database from its id.- Returns:
- list of db matching the criteria
-
getDatabase
Access teh database with the default token.- Specified by:
getDatabasein interfaceDatabaseAdmin- Parameters:
keyspace- The name of the namespace (or keyspace) to retrieve. This parameter should match the exact name of the namespace as it exists in the database.- Returns:
- client to interact with database DML.
-
getDatabase
Access teh database with the specialized token.- Specified by:
getDatabasein interfaceDatabaseAdmin- Parameters:
keyspace- The name of the namespace (or keyspace) to retrieve. This parameter should match the exact name of the namespace as it exists in the database.tokenUser- token with reduce privileges compared to admin token in order to do dml options (CRUD).- Returns:
- client to interact with database DML.
-
listNamespaceNames
Retrieves a stream of namespace names available in the current database. This method is essential for applications that need to enumerate all namespaces to perform operations such as displaying available namespaces to users, managing namespaces programmatically, or executing specific tasks within each namespace. The returned Stream facilitates efficient processing of namespace names, enabling operations like filtering, sorting, and mapping without the need for preloading all names into memory.Example usage:
// Assuming 'client' is an instance of DataApiClient Stream<String> namespaceNames = client.listNamespaceNames()); // Display names in the console namespaceNames.forEach(System.out::println);- Specified by:
listNamespaceNamesin interfaceDatabaseAdmin- Returns:
- A
Setcontaining the names of all namespaces within the current database. The stream provides a flexible and efficient means to process the namespace names according to the application's needs.
-
listKeyspaceNames
Description copied from interface:DatabaseAdminRetrieves a stream of keyspaces names available in the current database. This method is essential for applications that need to enumerate all namespaces to perform operations such as displaying available namespaces to users, managing keyspaces programmatically, or executing specific tasks within each keyspace. The returned Stream facilitates efficient processing of keyspace names, enabling operations like filtering, sorting, and mapping without the need for preloading all names into memory.Example usage:
// Assuming 'client' is an instance of DataApiClient Stream<String> keyspacesNames = client.listKeyspacesNames()); // Display names in the console keyspacesNames.forEach(System.out::println);- Specified by:
listKeyspaceNamesin interfaceDatabaseAdmin- Returns:
- A
Setcontaining the names of all namespaces within the current database. The stream provides a flexible and efficient means to process the namespace names according to the application's needs.
-
findEmbeddingProviders
Retrieve the list of embedding providers available in the current database. Embedding providers are services that provide embeddings for text, images, or other data types. This method returns a map of provider names toEmbeddingProviderinstances, allowing applications to access and utilize the embedding services.Example usage:
// Assuming 'client' is an instance of DataApiClient Map<String, EmbeddingProvider> providers = client.findEmbeddingProvidersAsMap());- Specified by:
findEmbeddingProvidersin interfaceDatabaseAdmin- Returns:
- list of available providers
-
createNamespace
Syntax Sugar, retro compatible.- Specified by:
createNamespacein interfaceDatabaseAdmin- Parameters:
namespace- current namespace.
-
createNamespace
Create a Keyspace providing a name.- Specified by:
createNamespacein interfaceDatabaseAdmin- Parameters:
keyspace- current keyspace.updateDBKeyspace- if the keyspace should be updated in the database.
-
createKeyspace
Description copied from interface:DatabaseAdminCreate a Keyspace providing a name.- Specified by:
createKeyspacein interfaceDatabaseAdmin- Parameters:
keyspace- current keyspace.updateDBKeyspace- if the keyspace should be updated in the database.
-
dropNamespace
Drops (deletes) the specified namespace from the database. This operation is idempotent; it will not produce an error if the namespace does not exist. This method is useful for cleaning up data or removing entire keyspaces as part of database maintenance or restructuring. Caution should be exercised when using this method, as dropping a namespace will remove all the data, collections, or tables contained within it, and this action cannot be undone.Example usage:
This example demonstrates how to safely drop a namespace by name. The operation ensures that even if the namespace does not exist, the method call will not interrupt the flow of the application, thereby allowing for flexible and error-tolerant code design.// Assume 'client' is an instance of your data API client String namespace = "targetNamespace"; // Drop the namespace client.dropNamespace(namespace); // The namespace 'targetNamespace' is now deleted, along with all its contained data- Specified by:
dropNamespacein interfaceDatabaseAdmin- Parameters:
namespace- The name of the namespace to be dropped. This parameter specifies the target namespace that should be deleted. The operation will proceed silently and without error even if the namespace does not exist, ensuring consistent behavior.
-
dropKeyspace
Description copied from interface:DatabaseAdminDrops (deletes) the specified keyspace from the database. This operation is idempotent; it will not produce an error if the keyspace does not exist. This method is useful for cleaning up data or removing entire keyspaces as part of database maintenance or restructuring. Caution should be exercised when using this method, as dropping a keyspace will remove all the data, collections, or tables contained within it, and this action cannot be undone.Example usage:
This example demonstrates how to safely drop a keyspace by name. The operation ensures that even if the keyspace does not exist, the method call will not interrupt the flow of the application, thereby allowing for flexible and error-tolerant code design.// Assume 'client' is an instance of your data API client String keyspace = "targetKeyspace"; // Drop the namespace client.dropKeyspace(keyspace); // The namespace 'targetKeyspace' is now deleted, along with all its contained data- Specified by:
dropKeyspacein interfaceDatabaseAdmin- Parameters:
namespace- The name of the keyspace to be dropped. This parameter specifies the target keyspace that should be deleted. The operation will proceed silently and without error even if the keyspace does not exist, ensuring consistent behavior.
-
getDatabase
Access the Database associated with this admin class.- Specified by:
getDatabasein interfaceDatabaseAdmin- Returns:
- associated database
-