Vytvoření kontejneru ve službě Azure Cosmos DB for NoSQL pomocí Pythonu
PLATÍ PRO: NoSQL
Kontejnery ve službě Azure Cosmos DB ukládají sady položek. Než budete moct vytvářet, dotazovat nebo spravovat položky, musíte nejprve vytvořit kontejner.
Pojmenování kontejneru
Ve službě Azure Cosmos DB je kontejner podobný tabulce v relační databázi. Při vytváření kontejneru tvoří název kontejneru segment identifikátoru URI sloužícího pro přístup k prostředku kontejneru a všechny podřízené položky.
Po vytvoření je identifikátor URI kontejneru v tomto formátu:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Vytvoření kontejneru
Pokud chcete vytvořit kontejner, zavolejte jednu z následujících metod:
Vytvoření kontejneru
Následující příklad vytvoří kontejner s metodou DatabaseProxy.create_container
. Tato metoda vyvolá výjimku, pokud kontejner se stejným názvem již existuje.
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.")
Vytvoření kontejneru, pokud ještě neexistuje
Následující příklad vytvoří kontejner s metodou DatabaseProxy.create_container_if_not_exists
. V porovnání s předchozí metodou vytvoření tato metoda nevyvolá výjimku, pokud databáze již existuje. Tato metoda je užitečná, pokud několikrát spustíte stejný kód, abyste se vyhnuli chybám.
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.")
Asynchronní vytvoření kontejneru
Databázi můžete také asynchronně vytvořit pomocí podobných objektů a metod v oboru názvů azure.cosmos.aio . Použijte například metodu DatabaseProxy.create_database nebo metodu CosmoClient.create_database_if_not_exists .
Asynchronní práce je užitečná, když chcete paralelně provádět více operací. Další informace naleznete v tématu Použití asynchronního klienta.
Analýza odpovědi
V příkladech výše je odpověď z požadavků rozhraní ContainerProxy
pro interakci s kontejnerem databáze. Z proxy serveru můžete přistupovat k metodám pro provádění operací v kontejneru.
Následující příklad ukazuje create_container_if_not_exists metoda vracející objekt kontejneru.
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"]}')
Další kroky
Teď, když vytvoříte kontejner, použijte dalšího průvodce k vytvoření položek.