قياس Azure Cosmos DB لأداء NoSQL باستخدام إطار عمل قياس
مقالة
هناك المزيد من الخيارات، الآن أكثر من أي وقت مضى، على نوع قاعدة البيانات لاستخدامها مع حمل عمل البيانات. أحد العوامل الرئيسية لاختيار قاعدة بيانات هو أداء قاعدة البيانات أو الخدمة، ولكن يمكن أن يكون أداء قياس الأداء مرهقا وعرضة للخطأ. يبسط إطار عمل قياس الأداء لقواعد بيانات Azure عملية قياس الأداء باستخدام أدوات قياس الأداء مفتوحة المصدر الشائعة مع وصفات منخفضة الاحتكاك تنفذ أفضل الممارسات الشائعة. في Azure Cosmos DB ل NoSQL، ينفذ إطار العمل أفضل الممارسات ل Java SDK ويستخدم أداة YCSB مفتوحة المصدر. في هذا الدليل، يمكنك استخدام إطار عمل القياس هذا لتنفيذ حمل عمل للقراءة للتعرف على إطار العمل.
انتقل إلى واجهة برمجة التطبيقات الموجودة لحساب NoSQL في مدخل Microsoft Azure.
في قائمة الموارد، حدد Data Explorer.
في صفحة Data Explorer ، حدد الخيار New Container في شريط الأوامر.
في مربع الحوار حاوية جديدة، قم بإنشاء حاوية جديدة بالإعدادات التالية:
الإعداد
القيمة
مُعرِّف قاعدة البيانات
ycsb
نوع معدل نقل قاعدة البيانات
يدوي
مقدار معدل نقل قاعدة البيانات
400
معرف الحاوية
usertable
مفتاح التقسيم
/id
إذا لم تكن قد قمت بتسجيل الدخول بالفعل، فسجل الدخول إلى Azure CLI باستخدام الأمر az login.
إنشاء متغيرات shell للقيم التالية:
اسم Azure Cosmos DB الحالي لحساب NoSQL المسمى cosmosAccountName.
اسم مجموعة الموارد الأولى مع الموارد المسماة sourceResourceGroupName.
اسم مجموعة الموارد الفارغة الثانية المسماة targetResourceGroupName.
URI لنقطة نهاية حساب Azure Cosmos DB ل NoSQL باسم cosmosEndpoint
المفتاح الأساسي لحساب Azure Cosmos DB الحالي ل NoSQL المسمى cosmosPrimaryKey
# Variable for Azure Cosmos DB for NoSQL account name
cosmosAccountName="<cosmos-db-nosql-account-name>"
# Variable for resource group with Azure Cosmos DB and Azure Storage accounts
sourceResourceGroupName="<first-resource-group-name>"
# Variable for empty resource group
targetResourceGroupName="<second-resource-group-name>"
# Variable for API for NoSQL endpoint URI
cosmosEndpoint="<cosmos-db-nosql-endpoint-uri>"
# Variable for API for NoSQL primary key
cosmosPrimaryKey="<cosmos-db-nosql-primary-key>"
# Variable for Azure Storage account name
storageAccountName="<storage-account-name>"
# Variable for storage account connection string
storageConnectionString="<storage-connection-string>"
# Variable for raw template JSON on GitHub
templateUri="https://raw.githubusercontent.com/Azure/azure-db-benchmarking/main/cosmos/sql/tools/java/ycsb/recipes/read/try-it-read/azuredeploy.json"
az deployment group create \
--resource-group $targetResourceGroupName \
--name "benchmarking-framework" \
--template-uri $templateUri \
--parameters \
adminPassword='P@ssw.rd' \
resultsStorageConnectionString=$storageConnectionString \
cosmosURI=$cosmosEndpoint \
cosmosKey=$cosmosPrimaryKey
انتظر حتى يكتمل التوزيع.
تلميح
يمكن أن يستغرق النشر من 5 إلى 10 دقائق حتى يكتمل.
عرض نتائج المعيار
الآن، يمكنك استخدام حساب Azure Storage الحالي للتحقق من حالة المهمة القياسية وعرض النتائج المجمعة. يتم تخزين الحالة باستخدام جدول تخزين ويتم تجميع النتائج في كائن ثنائي كبير الحجم للتخزين باستخدام تنسيق CSV.
لاحظ نتائج هذا الاستعلام. يجب أن ترجع النتائج مهمة واحدة مع JobStartTimeخصائص JobStatusو و JobFinishTime . في البداية، تكون حالة المهمة Started وتتضمن طابعا زمنيا في الخاصية JobStartTime ولكن ليس الخاصية JobFinishTime .
استخدم [az storage blob query]/cli/azure/storage/blob#az-storage-blob-query) للاستعلام عن نتائج المهمة في كائن ثنائي كبير الحجم للتخزين مخزن في الحاوية الموجودة مسبقا.
يتضمن إطار عمل قياس الأداء لقواعد بيانات Azure وصفات لتغليف تعريفات حمل العمل التي يتم تمريرها إلى أداة قياس الأداء الأساسية لتجربة "1-Click". تم تصميم تعريفات حمل العمل بناء على أفضل الممارسات التي نشرها فريق Azure Cosmos DB وفريق أداة القياس. تم اختبار الوصفات والتحقق من صحتها للحصول على نتائج متسقة.
يمكنك أن تتوقع رؤية زمن الانتقال التالي لجميع وصفات القراءة والكتابة في مستودع GitHub.
زمن انتقال القراءة
زمن انتقال الكتابة
المشكلات الشائعة
يتضمن هذا القسم الأخطاء الشائعة التي قد تحدث عند تشغيل أداة القياس. عادة ما تتوفر سجلات الخطأ للأداة في حاوية داخل حساب Azure Storage.
إذا لم تكن السجلات متوفرة في حساب التخزين، فعادة ما تحدث هذه المشكلة بسبب سلسلة الاتصال تخزين غير صحيح أو مفقود. في هذه الحالة، يتم سرد هذا الخطأ في ملف agent.out داخل المجلد /home/benchmarking للجهاز الظاهري للعميل.
Error while accessing storage account, exiting from this machine in agent.out on the VM
يتم سرد هذا الخطأ في ملف agent.out في كل من الجهاز الظاهري للعميل وحساب التخزين إذا كان عنوان URI لنقطة نهاية Azure Cosmos DB غير صحيح أو لا يمكن الوصول إليه.
Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known
يتم سرد هذا الخطأ في ملف agent.out في كل من الجهاز الظاهري للعميل وحساب التخزين إذا كان مفتاح Azure Cosmos DB غير صحيح.
The input authorization token can't serve the request. The wrong key is being used….
الخطوات التالية
تعرف على المزيد حول أداة قياس الأداء باستخدام دليل البدء.