مشاركة عبر


التشغيل السريع: استخدام Azure Cosmos DB ل NoSQL مع Azure SDK ل Rust

في هذا التشغيل السريع، يمكنك نشر تطبيق Azure Cosmos DB الأساسي للجدول باستخدام Azure SDK ل Rust. Azure Cosmos DB للجدول هو مخزن بيانات بلا مخطط يسمح للتطبيقات بتخزين بيانات الجدول المنظمة في السحابة. ستتعلم كيفية إنشاء جداول وصفوف وتنفيذ المهام الأساسية داخل مورد Azure Cosmos DB باستخدام Azure SDK ل Rust.

هام

SDK Rust ل Azure Cosmos DB قيد المعاينة العامة حاليا. يتم توفير هذه المعاينة دون اتفاقية على مستوى الخدمة، ولا نوصي بها لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة.

لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

الوثائق | المرجعية لمكتبة الوثائق المرجعية صندوق التعليمات البرمجية | المصدر (Rust) | Azure Developer CLI

المتطلبات الأساسية

  • Docker Desktop
  • Rust 1.80 أو أحدث

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

تثبيت مكتبة العميل

تتوفر مكتبة العميل من خلال Rust، ك azure_data_cosmos صندوق.

  1. إذا لم يكن مثبتا بالفعل، فقم azure_data_cosmos بتثبيت الإنشاء باستخدام cargo install.

    cargo install azure_data_cosmos
    
  2. أيضا، قم بتثبيت azure_identity الصندوق إذا لم يكن مثبتا بالفعل.

    cargo install azure_identity
    

نموذج الكائن

Name ‏‏الوصف
CosmosClient هذا النوع هو العميل الأساسي ويستخدم لإدارة بيانات التعريف أو قواعد البيانات على مستوى الحساب.
DatabaseClient يمثل هذا النوع قاعدة بيانات داخل الحساب.
CollectionClient يستخدم هذا النوع بشكل أساسي لتنفيذ عمليات القراءة والتحديث والحذف على الحاوية أو العناصر المخزنة داخل الحاوية.

أمثلة على التعليمات البرمجية

يستخدم نموذج التعليمات البرمجية في القالب قاعدة بيانات باسم cosmicworks وحاوية باسم products. products تحتوي الحاوية على تفاصيل مثل الاسم والفئة والكمية والمعرف الفريد وعلامة البيع لكل منتج. تستخدم الحاوية الخاصية /category كمفتاح قسم منطقي.

مصادقة العميل

ينشئ هذا النموذج مثيلا CosmosClient جديدا لاستخدام CosmosClient::new المثيل والمصادقة عليه DefaultAzureCredential .

let credential = DefaultAzureCredential::new()?;

let client = CosmosClient::new(&endpoint, credential, None)?;

الحصول على قاعدة بيانات

استخدم client.database لاسترداد قاعدة البيانات الموجودة المسماة cosmicworks.

let database = client.database_client("cosmicworks");

الحصول على حاوية

استرداد الحاوية الموجودة products باستخدام database.container.

let container = database.container_client("products");

إنشاء عنصر

أنشئ نوعا جديدا مع جميع الأعضاء الذين تريد تسلسلهم إلى JSON. في هذا المثال، يحتوي النوع على معرف فريد وحقول للفئة والاسم والكمية والسعر والبيع. اشتقاق السمة serde::Serialize على هذا النوع، بحيث يمكن تسلسلها إلى JSON.

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
pub struct Item {
    pub id: String,
    pub category: String,
    pub name: String,
    pub quantity: i32,
    pub price: f64,
    pub clearance: bool,
}

إنشاء عنصر في الحاوية باستخدام container.upsert_item. هذا الأسلوب "upserts" العنصر استبدال العنصر بشكل فعال إذا كان موجودا بالفعل.

let item = Item {
    id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb".to_string(),
    category: "gear-surf-surfboards".to_string(),
    name: "Yamba Surfboard".to_string(),
    quantity: 12,
    price: 850.00,
    clearance: false,
};

let partition_key = PartitionKey::from(item.category.clone());
        
let partition_key = PartitionKey::from(item.category.clone());

container.upsert_item(partition_key, item.clone(), None).await?;

قراءة عنصر

تنفيذ عملية قراءة نقطة باستخدام كل من المعرف الفريد (id) وحقول مفتاح القسم. استخدم container.ReadItem لاسترداد العنصر المحدد بكفاءة.

let item_id = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
let item_partition_key = "gear-surf-surfboards";

let response = container.read_item(item_partition_key, item_id, None).await?;

let item: Item = response.into_json_body().await?;

عناصر الاستعلام

تنفيذ استعلام عبر عناصر متعددة في حاوية باستخدام container.NewQueryItemsPager. ابحث عن كافة العناصر ضمن فئة محددة باستخدام هذا الاستعلام الذي تم تحديد معلمات له:

SELECT * FROM products p WHERE p.category = @category
let item_partition_key = "gear-surf-surfboards";

let query = Query::from("SELECT * FROM c WHERE c.category = @category")
    .with_parameter("@category", item_partition_key)?;

let mut pager = container.query_items::<Item>(query, item_partition_key, None)?;

while let Some(page_response) = pager.next().await {

    let page = page_response?.into_body().await?;

    for item in page.items {
        // Do something
    }

}

استكشف بياناتك

استخدم ملحق Visual Studio Code ل Azure Cosmos DB لاستكشاف بيانات NoSQL. يمكنك تنفيذ عمليات قاعدة البيانات الأساسية بما في ذلك على سبيل المثال لا الحصر:

  • تنفيذ الاستعلامات باستخدام سجل قصاصات أو محرر الاستعلام
  • تعديل العناصر وتحديثها وإنشائه وحذفها
  • استيراد البيانات المجمعة من مصادر أخرى
  • إدارة قواعد البيانات والحاويات

لمزيد من المعلومات، راجع كيفية استخدام ملحق Visual Studio Code لاستكشاف Azure Cosmos DB لبيانات NoSQL.

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