مشاركة عبر


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

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

الوثائق | المرجعية لواجهة برمجة التطبيقات حزمة التعليمات البرمجية | المصدر لمكتبة (Maven) | Azure Developer CLI

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

  • Azure Developer CLI
  • Docker Desktop
  • Java 21

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

تهيئة المشروع

استخدم Azure Developer CLI (azd) لإنشاء حساب Azure Cosmos DB للجدول ونشر نموذج تطبيق حاوية. يستخدم نموذج التطبيق مكتبة العميل لإدارة البيانات النموذجية وإنشاءها وقراءتها والاستعلام عن البيانات.

  1. افتح محطة طرفية في دليل فارغ.

  2. إذا لم تكن قد تمت مصادقتك بالفعل، فقم بالمصادقة على Azure Developer CLI باستخدام azd auth login. اتبع الخطوات المحددة بواسطة الأداة للمصادقة على CLI باستخدام بيانات اعتماد Azure المفضلة لديك.

    azd auth login
    
  3. استخدم azd init لتهيئة المشروع.

    azd init --template cosmos-db-nosql-java-quickstart
    
  4. أثناء التهيئة، قم بتكوين اسم بيئة فريد.

  5. انشر حساب Azure Cosmos DB باستخدام azd up. تنشر قوالب Bicep أيضا نموذج تطبيق ويب.

    azd up
    
  6. أثناء عملية التوفير، حدد اشتراكك والموقع المطلوب ومجموعة الموارد المستهدفة. انتظر حتى اكتمال عملية التوفير. قد تستغرق العملية حوالي خمس دقائق.

  7. بمجرد توفير موارد Azure الخاصة بك، يتم تضمين عنوان URL لتطبيق الويب قيد التشغيل في الإخراج.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. استخدم عنوان URL في وحدة التحكم للانتقال إلى تطبيق الويب الخاص بك في المستعرض. لاحظ إخراج التطبيق قيد التشغيل.

لقطة شاشة لتطبيق الويب قيد التشغيل.

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

تتوفر مكتبة العميل من خلال Maven، كحزمة azure-spring-data-cosmos .

  1. انتقل إلى /src/web المجلد وافتح ملف pom.xml .

  2. إذا لم يكن موجودا بالفعل، أضف إدخالا للحزمة azure-spring-data-cosmos .

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-spring-data-cosmos</artifactId>
    </dependency>
    
  3. أضف أيضا تبعية أخرى للحزمة azure-identity إذا لم تكن موجودة بالفعل.

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
    </dependency>
    

نموذج الكائن

Name ‏‏الوصف
EnableCosmosRepositories هذا النوع هو مصمم أسلوب يستخدم لتكوين مستودع للوصول إلى Azure Cosmos DB ل NoSQL.
CosmosRepository هذه الفئة هي فئة العميل الأساسية وتستخدم لإدارة البيانات داخل حاوية.
CosmosClientBuilder هذه الفئة هي مصنع يستخدم لإنشاء عميل يستخدمه المستودع.
Query هذا النوع هو مصمم أسلوب يستخدم لتحديد الاستعلام الذي ينفذه المستودع.

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

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

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

أولا، ينشئ هذا النموذج فئة جديدة ترث من AbstractCosmosConfiguration لتكوين الاتصال ب Azure Cosmos DB ل NoSQL.

@Configuration
@EnableCosmosRepositories
public class CosmosConfiguration extends AbstractCosmosConfiguration {
}

داخل فئة التكوين، ينشئ هذا النموذج مثيلا جديدا من CosmosClientBuilder الفئة ويكون المصادقة باستخدام مثيل DefaultAzureCredential .

@Bean
public CosmosClientBuilder getCosmosClientBuilder() {
    DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
        .build();
        
    return new CosmosClientBuilder()
        .endpoint("<azure-cosmos-db-nosql-account-endpoint>")
        .credential(credential);
}

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

في فئة التكوين، ينفذ النموذج أسلوبا لإرجاع اسم قاعدة البيانات الموجودة المسماة cosmicworks.

@Override
protected String getDatabaseName() {
    return "cosmicworks";
}

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

Container استخدم مصمم الأسلوب لتكوين فئة لتمثيل العناصر في حاوية. تأليف الفئة لتضمين جميع الأعضاء الذين تريد تسلسلهم في JSON. في هذا المثال، يحتوي النوع على معرف فريد وحقول للفئة والاسم والكمية والسعر والخلوص.

@Container(containerName = "products", autoCreateContainer = false)
public class Item {
    private String id;
    private String name;
    private Integer quantity;
    private Boolean sale;

    @PartitionKey
    private String category;

    // Extra members omitted for brevity
}

إنشاء عنصر

إنشاء عنصر في الحاوية باستخدام repository.save.

Item item = new Item(
    "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "gear-surf-surfboards",
    "Yamba Surfboard",
    12,
    false
);
Item created_item = repository.save(item);

قراءة عنصر

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

PartitionKey partitionKey = new PartitionKey("gear-surf-surfboards");
Optional<Item> existing_item = repository.findById("aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", partitionKey);
if (existing_item.isPresent()) {
    // Do something
}

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

قم بإجراء استعلام عبر عناصر متعددة في حاوية عن طريق تعريف استعلام في واجهة المستودع. يستخدم Query هذا النموذج مزخرف الأسلوب لتعريف أسلوب ينفذ هذا الاستعلام ذات المعلمات:

SELECT * FROM products p WHERE p.category = @category
@Repository
public interface ItemRepository extends CosmosRepository<Item, String> {

    @Query("SELECT * FROM products p WHERE p.category = @category")
    List<Item> getItemsByCategory(@Param("category") String category);

}

إحضار كافة نتائج الاستعلام باستخدام repository.getItemsByCategory. التكرار الحلقي عبر نتائج الاستعلام.

List<Item> items = repository.getItemsByCategory("gear-surf-surfboards");
for (Item item : items) {
    // Do something
}

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

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

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

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

تنظيف الموارد

عندما لم تعد بحاجة إلى نموذج التطبيق أو الموارد، قم بإزالة التوزيع المقابل وجميع الموارد.

azd down