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 ContainerProxy
DB 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.