Share via


Een container maken in Azure Cosmos DB for NoSQL met behulp van Python

VAN TOEPASSING OP: NoSQL

Containers in Azure Cosmos DB-archiefsets met items. Voordat u items kunt maken, opvragen of beheren, moet u eerst een container maken.

Een container een naam opgeven

In Azure Cosmos DB is een container vergelijkbaar met een tabel in een relationele database. Wanneer u een container maakt, vormt de containernaam een segment van de URI die wordt gebruikt voor toegang tot de containerresource en eventuele onderliggende items.

Zodra de URI voor een container is gemaakt, heeft deze indeling:

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

Een container maken

Als u een container wilt maken, roept u een van de volgende methoden aan:

Een container maken

In het volgende voorbeeld wordt een container met de DatabaseProxy.create_container methode gemaakt. Deze methode genereert een uitzondering als de container met dezelfde naam al bestaat.

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

Een container maken als deze nog niet bestaat

In het volgende voorbeeld wordt een container met de DatabaseProxy.create_container_if_not_exists methode gemaakt. Vergeleken met de vorige create-methode genereert deze methode geen uitzondering als de database al bestaat. Deze methode is handig om fouten te voorkomen als u dezelfde code meerdere keren uitvoert.

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

Een container asynchroon maken

U kunt ook asynchroon een database maken met vergelijkbare objecten en methoden in de azure.cosmos.aio-naamruimte . Gebruik bijvoorbeeld de methode DatabaseProxy.create_database of de methode CosmoClient.create_database_if_not_exists .

Asynchroon werken is handig als u meerdere bewerkingen parallel wilt uitvoeren. Zie De asynchrone client gebruiken voor meer informatie.

Het antwoord parseren

In de bovenstaande voorbeelden is het antwoord van de aanvragen een ContainerProxy, een interface voor interactie met een DB-container. Vanuit de proxy hebt u toegang tot methoden voor het uitvoeren van bewerkingen op de container.

In het volgende voorbeeld ziet u de methode create_container_if_not_exists die een containerobject retourneert.

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

Volgende stappen

Nu u een container hebt gemaakt, gebruikt u de volgende handleiding om items te maken.