DatabaseProxy الفصل
واجهة للتفاعل مع قاعدة بيانات معينة.
يجب عدم إنشاء مثيل لهذه الفئة مباشرة. بدلا من ذلك، استخدم <xref:CosmosClient.get_database_client> الأسلوب .
تحتوي قاعدة البيانات على حاوية واحدة أو أكثر، يمكن أن تحتوي كل منها على عناصر وإجراءات مخزنة ومشغلات ووظائف معرفة من قبل المستخدم.
يمكن أن تحتوي قاعدة البيانات أيضا على مستخدمين مقترنين، يتم تكوين كل منهم بمجموعة من الأذونات للوصول إلى حاويات معينة أو إجراءات مخزنة أو مشغلات أو وظائف معرفة من قبل المستخدم أو عناصر.
تحتوي قاعدة بيانات Azure Cosmos DB SQL API على الخصائص التالية التي أنشأها النظام. هذه الخصائص للقراءة فقط:
_rid: معرف المورد.
_ts: عند آخر تحديث للمورد. القيمة هي طابع زمني.
_self: عنوان URI الفريد القابل للعنوان للمورد.
_etag: اسم المورد المطلوب للتحكم في التزامن المتفائل.
_colls: المسار القابل للعنوان لمورد المجموعات.
_users: المسار القابل للعنوان لمورد المستخدمين.
- توريث
-
builtins.objectDatabaseProxy
الدالمنشئ
DatabaseProxy(client_connection: CosmosClientConnection, id: str, properties: Dict[str, Any] = None)
المعلمات
- client_connection
- <xref:ClientSession>
العميل الذي تم استرداد قاعدة البيانات هذه منه.
- properties
المتغيرات
- id
معرف (اسم) قاعدة البيانات.
الأساليب
create_container |
إنشاء حاوية جديدة بالمعرف المحدد (الاسم). إذا كانت حاوية ذات المعرف المحدد موجودة بالفعل، يتم رفع CosmosResourceExistsError. |
create_container_if_not_exists |
إنشاء حاوية إذا لم تكن موجودة بالفعل. إذا كانت الحاوية موجودة بالفعل، يتم إرجاع الإعدادات الموجودة. ملاحظة: لا يتحقق من إعدادات الحاوية الموجودة أو يحدثها أو يقدم معدل نقل إذا كانت تختلف عما تم تمريره إلى الأسلوب. |
create_user |
إنشاء مستخدم جديد في الحاوية. لتحديث مستخدم موجود أو استبداله <xref:ContainerProxy.upsert_user> ، استخدم الأسلوب . |
delete_container |
حذف حاوية. |
delete_user |
احذف المستخدم المحدد من الحاوية. |
get_container_client |
احصل على ContainerProxy لحاوية ذات معرف محدد (اسم). |
get_throughput |
احصل على كائن ThroughputProperties لقاعدة البيانات هذه. إذا لم تكن هناك أي ThroughputProperties موجودة بالفعل لقاعدة البيانات، يتم رفع استثناء. :الكلمة الأساسية Callable response_hook: قابل للاستدعاء يتم استدعاؤه ببيانات تعريف الاستجابة. :returns: ThroughputProperties لقاعدة البيانات. :يثير ~azure.cosmos.exceptions.CosmosHttpResponseError: لا توجد خصائص معدل النقل للحاوية أو تعذر استرداد خصائص معدل النقل. |
get_user_client |
احصل على UserProxy لمستخدم ذي معرف محدد. |
list_containers |
سرد الحاويات في قاعدة البيانات. |
list_users |
سرد جميع المستخدمين في الحاوية. |
query_containers |
سرد خصائص الحاويات في قاعدة البيانات الحالية. |
query_users |
إرجاع جميع المستخدمين المطابقة للاستعلام المحدد. |
read |
اقرأ خصائص قاعدة البيانات. |
read_offer |
احصل على كائن ThroughputProperties لقاعدة البيانات هذه. إذا لم تكن هناك أي ThroughputProperties موجودة بالفعل لقاعدة البيانات، يتم رفع استثناء. :الكلمة الأساسية Callable response_hook: قابل للاستدعاء يتم استدعاؤه ببيانات تعريف الاستجابة. :returns: ThroughputProperties لقاعدة البيانات. :يثير ~azure.cosmos.exceptions.CosmosHttpResponseError: لا توجد خصائص معدل النقل للحاوية أو تعذر استرداد خصائص معدل النقل. |
replace_container |
إعادة تعيين خصائص الحاوية. تستمر تغييرات الخاصية على الفور. ستتم إعادة تعيين أي خصائص لم يتم تحديدها إلى قيمها الافتراضية. |
replace_throughput |
استبدل معدل النقل على مستوى قاعدة البيانات. |
replace_user |
يستبدل المستخدم المحدد إذا كان موجودا في الحاوية. |
upsert_user |
إدراج المستخدم المحدد أو تحديثه. إذا كان المستخدم موجودا بالفعل في الحاوية، يتم استبداله. إذا لم يكن المستخدم موجودا بالفعل، يتم إدراجه. |
create_container
إنشاء حاوية جديدة بالمعرف المحدد (الاسم).
إذا كانت حاوية ذات المعرف المحدد موجودة بالفعل، يتم رفع CosmosResourceExistsError.
create_container(id: str, partition_key: Any, indexing_policy: Dict[str, Any] | None = None, default_ttl: int | None = None, populate_query_metrics: bool | None = None, offer_throughput: int | ThroughputProperties | None = None, unique_key_policy: Dict[str, Any] | None = None, conflict_resolution_policy: Dict[str, Any] | None = None, **kwargs: Any) -> ContainerProxy
المعلمات
- id
معرف (اسم) الحاوية المراد إنشاؤها.
- partition_key
مفتاح القسم المراد استخدامه للحاوية.
- indexing_policy
نهج الفهرسة لتطبيقه على الحاوية.
- default_ttl
الوقت الافتراضي للعيش (TTL) للعناصر الموجودة في الحاوية. إذا لم يتم تحديدها، فلن تنتهي صلاحية العناصر.
- offer_throughput
- int أو <xref:azure.cosmos.ThroughputProperties.>
معدل النقل المقدم لهذا العرض.
- unique_key_policy
نهج المفتاح الفريد الذي يجب تطبيقه على الحاوية.
- conflict_resolution_policy
نهج حل التعارض لتطبيقه على الحاوية.
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- etag
- str
قيمة ETag أو حرف البدل (*). يستخدم للتحقق مما إذا كان المورد قد تغير، والعمل وفقا للشرط المحدد بواسطة المعلمة match_condition .
- match_condition
- MatchConditions
شرط المطابقة لاستخدامه على etag.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
- analytical_storage_ttl
- int
وقت تخزين تحليلي للعيش (TTL) للعناصر الموجودة في الحاوية. قيمة None تترك التخزين التحليلي متوقفا عن التشغيل وقيمة -1 تعمل على تشغيل التخزين التحليلي بدون TTL. يرجى ملاحظة أنه لا يمكن تمكين التخزين التحليلي إلا على الحسابات الممكنة ل Synapse Link.
المرتجعات
مثيل ContainerProxy يمثل الحاوية الجديدة.
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
أمثلة
إنشاء حاوية بالإعدادات الافتراضية:
container_name = "products"
try:
container = database.create_container(
id=container_name, partition_key=PartitionKey(path="/productName")
)
except exceptions.CosmosResourceExistsError:
container = database.get_container_client(container_name)
إنشاء حاوية بإعدادات محددة؛ في هذه الحالة، مفتاح قسم مخصص:
customer_container_name = "customers"
try:
customer_container = database.create_container(
id=customer_container_name,
partition_key=PartitionKey(path="/city"),
default_ttl=200,
)
except exceptions.CosmosResourceExistsError:
customer_container = database.get_container_client(customer_container_name)
create_container_if_not_exists
إنشاء حاوية إذا لم تكن موجودة بالفعل.
إذا كانت الحاوية موجودة بالفعل، يتم إرجاع الإعدادات الموجودة. ملاحظة: لا يتحقق من إعدادات الحاوية الموجودة أو يحدثها أو يقدم معدل نقل إذا كانت تختلف عما تم تمريره إلى الأسلوب.
create_container_if_not_exists(id: str, partition_key: Any, indexing_policy: Dict[str, Any] | None = None, default_ttl: int | None = None, populate_query_metrics: bool | None = None, offer_throughput: int | ThroughputProperties | None = None, unique_key_policy: Dict[str, Any] | None = None, conflict_resolution_policy: Dict[str, Any] | None = None, **kwargs: Any) -> ContainerProxy
المعلمات
- id
معرف (اسم) الحاوية المراد قراءتها أو إنشائها.
- partition_key
مفتاح القسم المراد استخدامه للحاوية.
- indexing_policy
نهج الفهرسة لتطبيقه على الحاوية.
- default_ttl
الوقت الافتراضي للعيش (TTL) للعناصر الموجودة في الحاوية. إذا لم يتم تحديدها، فلن تنتهي صلاحية العناصر.
- populate_query_metrics
تمكين إرجاع مقاييس الاستعلام في عناوين الاستجابة.
- offer_throughput
معدل النقل المقدم لهذا العرض.
- unique_key_policy
نهج المفتاح الفريد الذي يجب تطبيقه على الحاوية.
- conflict_resolution_policy
نهج حل التعارض لتطبيقه على الحاوية.
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- etag
- str
قيمة ETag أو حرف البدل (*). يستخدم للتحقق مما إذا كان المورد قد تغير، والعمل وفقا للشرط المحدد بواسطة المعلمة match_condition .
- match_condition
- MatchConditions
شرط المطابقة لاستخدامه على etag.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
- analytical_storage_ttl
- int
وقت تخزين تحليلي للعيش (TTL) للعناصر الموجودة في الحاوية. قيمة None تترك التخزين التحليلي متوقفا عن التشغيل وقيمة -1 تعمل على تشغيل التخزين التحليلي بدون TTL. يرجى ملاحظة أنه لا يمكن تمكين التخزين التحليلي إلا على الحسابات الممكنة ل Synapse Link.
المرتجعات
مثيل ContainerProxy يمثل الحاوية.
نوع الإرجاع
استثناءات
فشلت قراءة الحاوية أو إنشائها.
create_user
إنشاء مستخدم جديد في الحاوية.
لتحديث مستخدم موجود أو استبداله <xref:ContainerProxy.upsert_user> ، استخدم الأسلوب .
create_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
المعلمات
- body
كائن يشبه الإملاء مع مفتاح معرف وقيمة تمثل المستخدم الذي سيتم إنشاؤه. يجب أن يكون معرف المستخدم فريدا داخل قاعدة البيانات، وأن يتكون من ما لا يزيد عن 255 حرفا.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
مثيل UserProxy يمثل المستخدم الجديد.
نوع الإرجاع
استثناءات
إذا تعذر إنشاء المستخدم المحدد.
أمثلة
إنشاء مستخدم قاعدة بيانات:
try:
database.create_user(dict(id="Walter Harp"))
except exceptions.CosmosResourceExistsError:
print("A user with that ID already exists.")
except exceptions.CosmosHttpResponseError as failure:
print("Failed to create user. Status code:{}".format(failure.status_code))
delete_container
حذف حاوية.
delete_container(container: str | ContainerProxy | Dict[str, Any], populate_query_metrics: bool | None = None, **kwargs: Any) -> None
المعلمات
- container
معرف (اسم) الحاوية المراد حذفها. يمكنك إما تمرير معرف الحاوية للحذف أو مثيل <xref:azure.cosmos.database.ContainerProxy> أو إملاء يمثل خصائص الحاوية.
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- etag
- str
قيمة ETag أو حرف البدل (*). يستخدم للتحقق مما إذا كان المورد قد تغير، والعمل وفقا للشرط المحدد بواسطة المعلمة match_condition .
- match_condition
- MatchConditions
شرط المطابقة لاستخدامه على etag.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
نوع الإرجاع
استثناءات
إذا تعذر حذف الحاوية.
delete_user
احذف المستخدم المحدد من الحاوية.
delete_user(user: str | UserProxy | Dict[str, Any], **kwargs: Any) -> None
المعلمات
- user
المعرف (الاسم)، الإملاء الذي يمثل خصائص أو <xref:azure.cosmos.database.UserProxy> مثيل المستخدم المراد حذفه.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
نوع الإرجاع
استثناءات
لم يتم حذف المستخدم بنجاح.
المستخدم غير موجود في الحاوية.
get_container_client
احصل على ContainerProxy لحاوية ذات معرف محدد (اسم).
get_container_client(container: str | ContainerProxy | Dict[str, Any]) -> ContainerProxy
المعلمات
- container
معرف (اسم) الحاوية أو <xref:azure.cosmos.database.ContainerProxy> مثيل أو إملاء يمثل خصائص الحاوية المراد استردادها.
المرتجعات
مثيل ContainerProxy يمثل قاعدة البيانات التي تم استردادها.
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
أمثلة
الحصول على حاوية موجودة، والتعامل مع فشل إذا تمت مواجهته:
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)
get_throughput
احصل على كائن ThroughputProperties لقاعدة البيانات هذه. إذا لم تكن هناك أي ThroughputProperties موجودة بالفعل لقاعدة البيانات، يتم رفع استثناء. :الكلمة الأساسية Callable response_hook: قابل للاستدعاء يتم استدعاؤه ببيانات تعريف الاستجابة. :returns: ThroughputProperties لقاعدة البيانات. :يثير ~azure.cosmos.exceptions.CosmosHttpResponseError: لا توجد خصائص معدل النقل للحاوية أو
تعذر استرداد خصائص معدل النقل.
get_throughput(**kwargs: Any) -> ThroughputProperties
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
get_user_client
احصل على UserProxy لمستخدم ذي معرف محدد.
get_user_client(user: str | UserProxy | Dict[str, Any]) -> UserProxy
المعلمات
- user
المعرف (الاسم)، الإملاء الذي يمثل خصائص أو <xref:azure.cosmos.database.UserProxy> مثيل المستخدم المراد استرداده.
المرتجعات
مثيل UserProxy يمثل المستخدم الذي تم استرداده.
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
list_containers
سرد الحاويات في قاعدة البيانات.
list_containers(max_item_count: int | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
المعلمات
- max_item_count
الحد الأقصى لعدد العناصر التي سيتم إرجاعها في عملية التعداد.
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
قابل لل تكرار لخصائص الحاوية (الإملاءات).
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
أمثلة
سرد جميع الحاويات في قاعدة البيانات:
database = client.get_database_client(database_name)
for container in database.list_containers():
print("Container ID: {}".format(container['id']))
list_users
سرد جميع المستخدمين في الحاوية.
list_users(max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
المعلمات
- max_item_count
الحد الأقصى لعدد المستخدمين الذين سيتم إرجاعهم في عملية التعداد.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
قابل لل تكرار لخصائص المستخدم (الإملاءات).
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
query_containers
سرد خصائص الحاويات في قاعدة البيانات الحالية.
query_containers(query: str | None = None, parameters: List[str] | None = None, max_item_count: int | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
المعلمات
- query
استعلام Azure Cosmos DB SQL لتنفيذه.
- parameters
صفيف اختياري من المعلمات للاستعلام. يتم تجاهله إذا لم يتم توفير استعلام.
- max_item_count
الحد الأقصى لعدد العناصر التي سيتم إرجاعها في عملية التعداد.
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
قابل لل تكرار لخصائص الحاوية (الإملاءات).
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
query_users
إرجاع جميع المستخدمين المطابقة للاستعلام المحدد.
query_users(query: str, parameters: List[str] | None = None, max_item_count: int | None = None, **kwargs: Any) -> Iterable[Dict[str, Any]]
المعلمات
- query
استعلام Azure Cosmos DB SQL لتنفيذه.
- parameters
صفيف اختياري من المعلمات للاستعلام. يتم تجاهله إذا لم يتم توفير استعلام.
- max_item_count
الحد الأقصى لعدد المستخدمين الذين سيتم إرجاعهم في عملية التعداد.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
قابل لل تكرار لخصائص المستخدم (الإملاءات).
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
read
اقرأ خصائص قاعدة البيانات.
read(populate_query_metrics: bool | None = None, **kwargs: Any) -> Dict[str, Any]
المعلمات
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
نوع الإرجاع
استثناءات
إذا تعذر استرداد قاعدة البيانات المحددة.
read_offer
احصل على كائن ThroughputProperties لقاعدة البيانات هذه. إذا لم تكن هناك أي ThroughputProperties موجودة بالفعل لقاعدة البيانات، يتم رفع استثناء. :الكلمة الأساسية Callable response_hook: قابل للاستدعاء يتم استدعاؤه ببيانات تعريف الاستجابة. :returns: ThroughputProperties لقاعدة البيانات. :يثير ~azure.cosmos.exceptions.CosmosHttpResponseError: لا توجد خصائص معدل النقل للحاوية أو
تعذر استرداد خصائص معدل النقل.
read_offer(**kwargs: Any) -> ThroughputProperties
نوع الإرجاع
استثناءات
فشل إنشاء الحاوية.
replace_container
إعادة تعيين خصائص الحاوية.
تستمر تغييرات الخاصية على الفور. ستتم إعادة تعيين أي خصائص لم يتم تحديدها إلى قيمها الافتراضية.
replace_container(container: str | ContainerProxy | Dict[str, Any], partition_key: Any, indexing_policy: Dict[str, Any] | None = None, default_ttl: int | None = None, conflict_resolution_policy: Dict[str, Any] | None = None, populate_query_metrics: bool | None = None, **kwargs: Any) -> ContainerProxy
المعلمات
- container
المعرف (الاسم)، الإملاء الذي يمثل خصائص الحاوية أو <xref:azure.cosmos.database.ContainerProxy> مثيلها المراد استبداله.
- partition_key
مفتاح القسم المراد استخدامه للحاوية.
- indexing_policy
نهج الفهرسة الذي يجب تطبيقه على الحاوية.
- default_ttl
الوقت الافتراضي للعيش (TTL) للعناصر الموجودة في الحاوية. إذا لم يتم تحديدها، فلن تنتهي صلاحية العناصر.
- conflict_resolution_policy
نهج حل التعارض لتطبيقه على الحاوية.
- populate_query_metrics
تمكين مقاييس الاستعلام التي يتم إرجاعها في رؤوس الاستجابة.
- session_token
- str
رمز مميز للاستخدام مع تناسق الجلسة.
- etag
- str
قيمة ETag أو حرف البدل (*). يستخدم للتحقق مما إذا كان المورد قد تغير، والعمل وفقا للشرط المحدد بواسطة المعلمة match_condition .
- match_condition
- MatchConditions
شرط المطابقة لاستخدامه على etag.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
- analytical_storage_ttl
- int
وقت تخزين تحليلي للعيش (TTL) للعناصر الموجودة في الحاوية. تترك قيمة None التخزين التحليلي متوقفا عن التشغيل وقيمة -1 تعمل على تشغيل التخزين التحليلي بدون TTL. يرجى ملاحظة أنه لا يمكن تمكين التخزين التحليلي إلا على الحسابات الممكنة ل Synapse Link.
المرتجعات
مثيل ContainerProxy يمثل الحاوية بعد اكتمال استبدال.
نوع الإرجاع
استثناءات
يرفع إذا تعذر استبدال الحاوية. يتضمن ذلك ما إذا كانت الحاوية ذات المعرف المحدد غير موجودة.
أمثلة
أعد تعيين خاصية TTL على حاوية، وعرض الخصائص المحدثة:
# Set the TTL on the container to 3600 seconds (one hour)
database.replace_container(container, partition_key=PartitionKey(path='/productName'), default_ttl=3600)
# Display the new TTL setting for the container
container_props = database.get_container_client(container_name).read()
print("New container TTL: {}".format(json.dumps(container_props['defaultTtl'])))
replace_throughput
استبدل معدل النقل على مستوى قاعدة البيانات.
replace_throughput(throughput: int | ThroughputProperties | None, **kwargs: Any) -> ThroughputProperties
المعلمات
- throughput
معدل النقل المطلوب تعيينه (عدد صحيح).
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
الإنتاجيةProperties لقاعدة البيانات، محدثة مع معدل نقل جديد.
نوع الإرجاع
استثناءات
إذا لم تكن هناك خصائص معدل نقل لقاعدة البيانات أو إذا تعذر تحديث خصائص معدل النقل.
replace_user
يستبدل المستخدم المحدد إذا كان موجودا في الحاوية.
replace_user(user: str | UserProxy | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> UserProxy
المعلمات
- user
المعرف (الاسم)، الإملاء الذي يمثل خصائص أو <xref:azure.cosmos.database.UserProxy> مثيل المستخدم المراد استبداله.
- body
كائن يشبه الإملاء يمثل المستخدم لاستبداله.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
حدث مثيل UserProxy يمثل المستخدم بعد استبداله.
نوع الإرجاع
استثناءات
إذا فشل استبدال أو لم يكن المستخدم بمعرف معين موجودا.
upsert_user
إدراج المستخدم المحدد أو تحديثه.
إذا كان المستخدم موجودا بالفعل في الحاوية، يتم استبداله. إذا لم يكن المستخدم موجودا بالفعل، يتم إدراجه.
upsert_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
المعلمات
- body
كائن يشبه الإملاء يمثل المستخدم للتحديث أو الإدراج.
- response_hook
- Callable
استدعاء مع بيانات تعريف الاستجابة.
المرتجعات
مثيل UserProxy يمثل المستخدم الذي تمت إعادة إدخاله.
نوع الإرجاع
استثناءات
إذا تعذر رفع مستوى المستخدم المحدد.
Azure SDK for Python