Bagikan melalui


Membuat kontainer di Azure Cosmos DB untuk NoSQL menggunakan Python

BERLAKU UNTUK: NoSQL

Kontainer di Azure Cosmos DB menyimpan set item. Sebelum Anda dapat membuat, mengkueri, atau mengelola item, Anda terlebih dahulu harus membuat kontainer.

Beri kontainer nama

Di Azure Cosmos DB, kontainer dianalogikan dengan tabel dalam database relasional. Saat Anda membuat kontainer, nama kontainer membentuk segmen URI yang digunakan untuk mengakses sumber daya kontainer dan item turunan apa pun.

Berikut beberapa aturan cepat saat memberi nama kontainer:

  • Jaga panjang nama kontainer antara 3 sampai 63 karakter
  • Nama kontainer hanya dapat berisi huruf kecil, angka, atau karakter tanda hubung (-).
  • Nama kontainer harus diawali dengan huruf kecil atau angka.

Setelah dibuat, URI untuk kontainer berada dalam format ini:

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

Membuat kontainer

Untuk membuat kontainer, panggil salah satu metode berikut:

Membuat kontainer

Contoh berikut membuat kontainer dengan DatabaseProxy.create_container metode . Metode ini memberikan pengecualian jika kontainer dengan nama yang sama sudah ada.

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

Membuat kontainer jika belum ada

Contoh berikut membuat kontainer dengan DatabaseProxy.create_container_if_not_exists metode . Dibandingkan dengan metode buat sebelumnya, metode ini tidak melemparkan pengecualian jika database sudah ada. Metode ini berguna untuk menghindari kesalahan jika Anda menjalankan kode yang sama beberapa kali.

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

Membuat kontainer secara asinkron

Anda juga dapat membuat database secara asinkron menggunakan objek dan metode serupa di namespace azure.cosmos.aio . Misalnya, gunakan metode DatabaseProxy.create_database atau metode CosmoClient.create_database_if_not_exists .

Bekerja secara asinkron berguna ketika Anda ingin melakukan beberapa operasi secara paralel. Untuk informasi selengkapnya, lihat Menggunakan klien asinkron.

Mengurai respons

Dalam contoh di atas, respons dari permintaan adalah ContainerProxy, yang merupakan antarmuka untuk berinteraksi dengan Kontainer DB. Dari proksi, Anda dapat mengakses metode untuk melakukan operasi pada kontainer.

Contoh berikut menunjukkan metode create_container_if_not_exists yang mengembalikan objek kontainer .

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

Langkah berikutnya

Sekarang setelah Anda membuat kontainer, gunakan panduan berikutnya untuk membuat item.