Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контейнеры в 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"]}')