Erstellen eines Containers in Azure Cosmos DB for NoSQL mit Python
GILT FÜR: NoSQL
Container in Azure Cosmos DB-Speichergruppen von Elementen. Bevor Sie Elemente erstellen, abfragen oder verwalten können, müssen Sie zunächst einen Container erstellen.
Benennen eines Containers
In Azure Cosmos DB ist ein Container analog zu einer Tabelle in einer relationalen Datenbank. Wenn Sie einen Container erstellen, bildet der Containername ein Segment des URI, der zum Zugreifen auf die Containerressource und alle untergeordneten Elemente verwendet wird.
Nach dem Erstellen weist der URI für einen Container das folgende Format auf:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Erstellen eines Containers
Um einen Container zu erstellen, rufen Sie eine der folgenden Methoden auf:
Erstellen eines Containers
Im folgenden Beispiel wird ein Container mit der Methode DatabaseProxy.create_container
erstellt. Diese Methode löst eine Ausnahme aus, wenn ein Container mit demselben Namen bereits vorhanden ist.
try:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created: {container.id}")
except CosmosResourceExistsError:
print("Container already exists.")
Erstellen eines Containers, falls er noch nicht vorhanden ist.
Im folgenden Beispiel wird ein Container mit der Methode DatabaseProxy.create_container_if_not_exists
erstellt. 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:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created or returned: {container.id}")
except CosmosHttpResponseError:
print("Request to the Azure Cosmos database service failed.")
Asynchrones Erstellen eines Containers
Sie können eine Datenbank auch asynchron mit ähnlichen Objekten und Methoden im Namespace azure.cosmos.aio erstellen. Verwenden Sie beispielsweise die Methode DatabaseProxy.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 ContainerProxy
. Hierbei handelt es sich um eine Schnittstelle für die Interaktion mit einem DB-Container. Über den Proxy können Sie auf Methoden zugreifen, um Vorgänge für den Container auszuführen.
Das folgende Beispiel zeigt die Methode create_container_if_not_exists, die ein container-Objekt zurückgibt.
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
for doc in container.read_all_items(max_item_count=10):
print(f'Doc id: {doc["id"]}')
Nächste Schritte
Nachdem Sie nun einen Container erstellt haben, verwenden Sie den nächsten Leitfaden zum Erstellen von Elementen.