Creare un database in Azure Cosmos DB per NoSQL usando Python
SI APPLICA A: NoSQL
In Azure Cosmos DB, i database costituiscono unità di gestione per uno o più contenitori. Prima di poter creare o gestire contenitori, è necessario creare un database.
Assegnare un nome a un database
In Azure Cosmos DB, un database è analogo a uno spazio dei nomi. Quando si crea un database, il nome del database costituisce un segmento dell'URI usato per accedere alla risorsa di database e alle risorse figlio.
Dopo la creazione, l'URI per un database si presenta nel seguente formato:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
Creazione di un database
Per creare un database, usare uno dei seguenti metodi:
Creazione di un database
Nell'esempio seguente viene creato un contenitore con il metodo CosmosClient.create_database
. Questo metodo genera un'eccezione se esiste già un database con lo stesso nome.
try:
database = client.create_database(id=DATABASE_ID)
print(f"Database created: {database.id}")
except CosmosResourceExistsError:
print("Database already exists.")
Creare un database se non esiste già
Nell'esempio seguente viene creato un contenitore con il metodo CosmosClient.create_database_if_not_exists
. Se il database esiste, questo metodo restituisce come risultato le impostazioni del database. Rispetto al metodo di creazione precedente, questo metodo non genera un'eccezione se il database è già esistente. Questo metodo è utile per evitare errori se si esegue lo stesso codice più volte.
try:
database = client.create_database_if_not_exists(id=DATABASE_ID)
print(f"Database created or returned: {database.id}")
except CosmosHttpResponseError:
print("Request to the Azure Cosmos database service failed.")
Creare un database in modo asincrono
È anche possibile creare un database in modo asincrono usando oggetti e metodi simili nello spazio dei nomi azure.cosmos.aio. Ad esempio, usare il metodo CosmosClient.create_database
o il metodo CosmoClient.create_database_if_not_exists.
Lavorare in modo asincrono è utile quando si vogliono eseguire più operazioni in parallelo. Per ottenere maggiori informazioni, consultare Uso del client asincrono.
Analisi delle risposte
Negli esempi precedenti, la risposta dalle richieste è DatabaseProxy
, che è un'interfaccia per interagire con un database specifico. Dal proxy è possibile accedere ai metodi per eseguire operazioni sul database.
Nell'esempio seguente viene illustrato il metodo create_database_if_not_exists che restituisce un oggetto Database.
database = client.create_database_if_not_exists(id=DATABASE_ID)
for container in database.list_containers():
print(f'Container name: {container["id"]}')
Passaggi successivi
Dopo aver creato un database, usare la guida successiva per creare contenitori.