Создание контейнера в Azure Cosmos DB для NoSQL с помощью Python
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Контейнеры в Azure Cosmos DB хранят наборы элементов. Прежде чем создавать и запрашивать элементы или управлять ими, необходимо сначала создать контейнер.
Присвойте имя контейнеру
В Azure Cosmos DB контейнер аналогичен таблице в реляционной базе данных. При создании контейнера имя контейнера формирует сегмент URI, используемый для доступа к ресурсу контейнера и любым дочерним элементам.
После создания URI контейнера имеет следующий формат:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Создание контейнера
Для создания контейнера вызовите один из следующих методов:
Создание контейнера
В следующем примере создается контейнер с методом DatabaseProxy.create_container
. Этот метод создает исключение, если контейнер с тем же именем уже существует.
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.")
Создать контейнер, если он еще не существует.
В следующем примере создается контейнер с методом DatabaseProxy.create_container_if_not_exists
. По сравнению с предыдущим методом создания этот метод не создает исключение, если база данных уже существует. Этот метод полезен для предотвращения ошибок при многократном выполнении одного и того же кода.
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.")
Асинхронное создание контейнера
Вы также можете создать базу данных асинхронно с помощью аналогичного объекта и методов в пространстве имен azure.cosmos.aio . Например, используйте метод DatabaseProxy.create_database или метод CosmoClient.create_database_if_not_exists .
Работа асинхронно полезна при параллельном выполнении нескольких операций. Дополнительные сведения см. в разделе "Использование асинхронного клиента".
Анализ ответа
В приведенных выше примерах ответ от запросов — это ContainerProxy
интерфейс для взаимодействия с контейнером базы данных. С прокси-сервера можно получить доступ к методам выполнения операций в контейнере.
В следующем примере показан метод create_container_if_not_exists , возвращающий объект контейнера .
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"]}')
Следующие шаги
Теперь, когда вы создали контейнер, используйте следующее руководство для создания элементов.