Aracılığıyla paylaş


Python kullanarak NoSQL için Azure Cosmos DB'de kapsayıcı oluşturma

UYGULANANLAR: NoSQL

Azure Cosmos DB'deki kapsayıcılar öğe kümelerini depolar. Öğeleri oluşturabilmeniz, sorgulayabilmeniz veya yönetebilmeniz için önce bir kapsayıcı oluşturmanız gerekir.

Kapsayıcıyı adlandırma

Azure Cosmos DB'de kapsayıcı, ilişkisel veritabanındaki tabloya benzer. Kapsayıcı oluşturduğunuzda, kapsayıcı adı kapsayıcı kaynağına ve alt öğelere erişmek için kullanılan URI'nin bir kesimini oluşturur.

Oluşturulduktan sonra kapsayıcının URI'si şu biçimdedir:

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

Kapsayıcı oluşturma

Kapsayıcı oluşturmak için aşağıdaki yöntemlerden birini çağırın:

Kapsayıcı oluşturma

Aşağıdaki örnek yöntemiyle DatabaseProxy.create_container bir kapsayıcı oluşturur. Aynı ada sahip kapsayıcı zaten varsa, bu yöntem bir özel durum oluşturur.

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

Henüz yoksa kapsayıcı oluşturma

Aşağıdaki örnek yöntemiyle DatabaseProxy.create_container_if_not_exists bir kapsayıcı oluşturur. Önceki oluşturma yöntemiyle karşılaştırıldığında, veritabanı zaten varsa bu yöntem bir özel durum oluşturmaz. Bu yöntem, aynı kodu birden çok kez çalıştırırsanız hatalardan kaçınmak için kullanışlıdır.

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

Zaman uyumsuz olarak kapsayıcı oluşturma

Ayrıca azure.cosmos.aio ad alanında benzer nesne ve yöntemleri kullanarak zaman uyumsuz olarak bir veritabanı oluşturabilirsiniz. Örneğin, DatabaseProxy.create_database yöntemini veya CosmoClient.create_database_if_not_exists yöntemini kullanın.

Birden çok işlemi paralel olarak gerçekleştirmek istediğinizde zaman uyumsuz çalışmak yararlı olur. Daha fazla bilgi için bkz . Zaman uyumsuz istemciyi kullanma.

Yanıtı ayrıştırma

Yukarıdaki örneklerde, isteklerden gelen yanıt, bir ContainerProxyDB Kapsayıcısı ile etkileşime geçmek için kullanılan bir arabirimdir. Ara sunucudan, kapsayıcıda işlem gerçekleştirmek için yöntemlere erişebilirsiniz.

Aşağıdaki örnekte kapsayıcı nesnesi döndüren create_container_if_not_exists yöntemi gösterilmektedir.

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

Sonraki adımlar

Artık bir kapsayıcı oluşturduğunuza göre, öğeleri oluşturmak için sonraki kılavuzu kullanın.