Tworzenie kontenera w usłudze Azure Cosmos DB for NoSQL przy użyciu języka Python
DOTYCZY: NoSQL
Kontenery w usłudze Azure Cosmos DB przechowują zestawy elementów. Przed utworzeniem, wykonywaniem zapytań o elementy lub zarządzanie nimi należy najpierw utworzyć kontener.
Nazywanie kontenera
W usłudze Azure Cosmos DB kontener jest analogiczny do tabeli w relacyjnej bazie danych. Podczas tworzenia kontenera nazwa kontenera tworzy segment identyfikatora URI używanego do uzyskiwania dostępu do zasobu kontenera i wszystkich elementów podrzędnych.
Po utworzeniu identyfikator URI kontenera ma następujący format:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Tworzenie kontenera
Aby utworzyć kontener, wywołaj jedną z następujących metod:
Tworzenie kontenera
W poniższym przykładzie zostanie utworzony kontener z DatabaseProxy.create_container
metodą . Ta metoda zgłasza wyjątek, jeśli kontener o tej samej nazwie już istnieje.
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.")
Utwórz kontener, jeśli jeszcze nie istnieje
W poniższym przykładzie zostanie utworzony kontener z DatabaseProxy.create_container_if_not_exists
metodą . W porównaniu z poprzednią metodą create ta metoda nie zgłasza wyjątku, jeśli baza danych już istnieje. Ta metoda jest przydatna do unikania błędów w przypadku wielokrotnego uruchamiania tego samego kodu.
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.")
Tworzenie kontenera asynchronicznie
Bazę danych można również utworzyć asynchronicznie przy użyciu podobnych obiektów i metod w przestrzeni nazw azure.cosmos.aio . Na przykład użyj metody DatabaseProxy.create_database lub metody CosmoClient.create_database_if_not_exists .
Praca asynchroniczna jest przydatna, gdy chcesz wykonać wiele operacji równolegle. Aby uzyskać więcej informacji, zobacz Using the asynchronous client (Używanie klienta asynchronicznego).
Analizowanie odpowiedzi
W powyższych przykładach odpowiedź z żądań to ContainerProxy
, który jest interfejsem umożliwiającym interakcję z kontenerem bazy danych. Z poziomu serwera proxy możesz uzyskać dostęp do metod wykonywania operacji na kontenerze.
W poniższym przykładzie przedstawiono metodę create_container_if_not_exists zwracającą obiekt kontenera.
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"]}')
Następne kroki
Po utworzeniu kontenera użyj następnego przewodnika, aby utworzyć elementy.