إنشاء حاوية في Azure Cosmos DB ل NoSQL باستخدام Python

ينطبق على: NoSQL

تخزن الحاويات في Azure Cosmos قاعدة بيانات مجموعات من العناصر. قبل أن تتمكن من إنشاء العناصر أو الاستعلام عنها أو إدارتها، يجب عليك أولاً إنشاء حاوية.

تسمية حاوية

في Azure Cosmos قاعدة بيانات تكون الحاوية مماثلة لجدول في قاعدة بيانات علائقية. عند إنشاء حاوية، يشكل اسم الحاوية مقطعًا من URI المستخدم للوصول إلى مورد الحاوية وأي عناصر فرعية.

بمجرد الإنشاء، يكون عنوان URI للحاوية بهذا التنسيق:

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

إنشاء حاوية

لإنشاء حاوية، قم باستدعاء أحد الأساليب التالية:

إنشاء حاوية

ينشئ المثال التالي حاوية باستخدام DatabaseProxy.create_container الأسلوب . يطرح هذا الأسلوب استثناء إذا كانت الحاوية بنفس الاسم موجودة بالفعل.

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

إنشاء حاوية إذا لم تكن موجودة بالفعل

ينشئ المثال التالي حاوية باستخدام DatabaseProxy.create_container_if_not_exists الأسلوب . بالمقارنة مع أسلوب الإنشاء السابق، لا يطرح هذا الأسلوب استثناء إذا كانت قاعدة البيانات موجودة بالفعل. هذا الأسلوب مفيد لتجنب الأخطاء إذا قمت بتشغيل نفس التعليمة البرمجية عدة مرات.

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

قم بإنشاء حاوية بشكل غير متزامن

يمكنك أيضا إنشاء قاعدة بيانات بشكل غير متزامن باستخدام كائن وأساليب مماثلة في مساحة الاسم azure.cosmos.aio . على سبيل المثال، استخدم الأسلوب DatabaseProxy.create_database أو أسلوب CosmoClient.create_database_if_not_exists .

يعد العمل بشكل غير متزامن مفيدا عندما تريد تنفيذ عمليات متعددة بالتوازي. لمزيد من المعلومات، راجع استخدام العميل غير المتزامن.

تحليل الاستجابة

في الأمثلة أعلاه، الاستجابة من الطلبات هي ContainerProxy، وهي واجهة للتفاعل مع حاوية DB. من الوكيل، يمكنك الوصول إلى أساليب لتنفيذ العمليات على الحاوية.

يوضح المثال التالي الأسلوب create_container_if_not_exists الذي يرجع كائن حاوية .

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

الخطوات التالية

الآن بعد أن قمت بإنشاء حاوية، استخدم الدليل التالي لإنشاء العناصر.