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.