Erstellen einer Datenbank in Azure Cosmos DB for NoSQL mit Python

GILT FÜR: NoSQL

Datenbanken in Azure Cosmos DB sind Einheiten der Verwaltung für einen oder mehrere Container. Bevor Sie Container erstellen oder verwalten können, müssen Sie zuerst eine Datenbank erstellen.

Benennen einer Datenbank

In Azure Cosmos DB ist eine Datenbank analog zu einem Namespace. Wenn Sie eine Datenbank erstellen, bildet der Datenbankname ein Segment des URI, der für den Zugriff auf die Datenbankressource und alle untergeordneten Ressourcen verwendet wird.

Nach der Erstellung weist der URI für eine Datenbank das folgende Format auf:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>

Erstellen einer Datenbank

Um eine Datenbank zu erstellen, rufen Sie eine der folgenden Methoden auf:

Erstellen einer Datenbank

Im folgenden Beispiel wird eine Datenbank mit der Methode CosmosClient.create_database erstellt. Diese Methode löst eine Ausnahme aus, wenn bereits eine Datenbank mit demselben Namen vorhanden ist.

try:
    database = client.create_database(id=DATABASE_ID)
    print(f"Database created: {database.id}")

except CosmosResourceExistsError:
    print("Database already exists.")

Erstellen einer Datenbank, falls sie noch nicht vorhanden ist.

Im folgenden Beispiel wird eine Datenbank mit der Methode CosmosClient.create_database_if_not_exists erstellt. Wenn die Datenbank vorhanden ist, gibt diese Methode die Datenbankeinstellungen zurück. Im Vergleich zur vorherigen Erstellungsmethode löst diese Methode keine Ausnahme aus, wenn die Datenbank bereits vorhanden ist. Diese Methode ist nützlich, um Fehler zu vermeiden, wenn Sie denselben Code mehrmals ausführen.

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.")

Asynchrones Erstellen einer Datenbank

Sie können eine Datenbank auch asynchron mit ähnlichen Objekten und Methoden im Namespace azure.cosmos.aio erstellen. Verwenden Sie beispielsweise die Methode CosmosClient.create_database oder die Methode 'CosmoClient.create_database_if_not_exists.

Das asynchrone Arbeiten ist nützlich, wenn Sie mehrere Vorgänge parallel ausführen möchten. Weitere Informationen finden Sie unter Verwenden des asynchronen Clients.

Analysieren der Antwort

In den Beispielen oben ist die Antwort auf die Anforderungen ein DatabaseProxy. Hierbei handelt es sich um eine Schnittstelle für die Interaktion mit einer bestimmten Datenbank. Über den Proxy können Sie auf Methoden zugreifen, um Vorgänge für die Datenbank auszuführen.

Das folgende Beispiel zeigt die Methode create_database_if_not_exists, die ein database-Objekt zurückgibt.

database = client.create_database_if_not_exists(id=DATABASE_ID)
for container in database.list_containers():
    print(f'Container name: {container["id"]}')

Nächste Schritte

Nachdem Sie eine Datenbank erstellt haben, verwenden Sie den nächsten Leitfaden zum Erstellen von Containern.