Criar um contêiner no Azure Cosmos DB para NoSQL usando Python

APLICA-SE A: NoSQL

Os contêineres no Azure Cosmos DB armazenam conjuntos de itens. Antes de criar, consultar ou gerenciar itens, você deve primeiro criar um contêiner.

Nomeie um contêiner

No Azure Cosmos DB, um contêiner é análogo a uma tabela em um banco de dados relacional. Quando você cria um contêiner, o nome do contêiner forma um segmento do URI usado para acessar o recurso de contêiner e quaisquer itens filho.

Aqui estão algumas regras rápidas ao nomear um contêiner:

  • Mantenha nomes de contêiner entre 3 e 63 caracteres
  • Os nomes de contêiner só podem conter letras minúsculas, números ou o caractere traço (-).
  • Os nomes dos contêineres devem começar com uma letra ou número minúsculo.

Uma vez criado, o URI de um contêiner está neste formato:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>

Criar um contentor

Para criar um contêiner, chame um dos seguintes métodos:

Criar um contentor

O exemplo a seguir cria um contêiner com o DatabaseProxy.create_container método. Esse método lança uma exceção se o contêiner com o mesmo nome já existir.

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.")

Criar um contêiner se ele ainda não existir

O exemplo a seguir cria um contêiner com o DatabaseProxy.create_container_if_not_exists método. Em comparação com o método create anterior, esse método não lança uma exceção se o banco de dados já existir. Esse método é útil para evitar erros se você executar o mesmo código várias vezes.

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.")

Criar um contêiner de forma assíncrona

Você também pode criar um banco de dados de forma assíncrona usando objetos e métodos semelhantes no namespace azure.cosmos.aio . Por exemplo, use o método DatabaseProxy.create_database ou o método CosmoClient.create_database_if_not_exists .

Trabalhar de forma assíncrona é útil quando você deseja executar várias operações em paralelo. Para obter mais informações, consulte Usando o cliente assíncrono.

Analisar a resposta

Nos exemplos acima, a resposta das solicitações é um ContainerProxy, que é uma interface para interagir com um contêiner de banco de dados. A partir do proxy, você pode acessar métodos para executar operações no contêiner.

O exemplo a seguir mostra o método create_container_if_not_exists que retorna um objeto container .

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"]}')

Próximos passos

Agora que você criou um contêiner, use o próximo guia para criar itens.