وحدات الاستعلام في Azure Digital Twins

تتناول هذه المقالة وحدات الاستعلام، وكيفية استخدامها بواسطة Azure Digital Twins، وكيفية العثور على استهلاك وحدة الاستعلام في Azure Digital Twins.

وحدة استعلام التوائم الرقمية من Azure (QU) هي وحدة للحساب عند الطلب تستخدم لتنفيذ استعلامات Azure Digital Twins باستخدام واجهة برمجة تطبيقات Query.

فهو يستخلص موارد النظام مثل وحدة المعالجة المركزية وعمليات الإدخال والإخراج في الثانية والذاكرة المطلوبة لتنفيذ عمليات الاستعلام التي يدعمها Azure Digital Twins، مما يسمح لك بتتبع الاستخدام في وحدات الاستعلام بدلا من ذلك.

يتأثر مقدار وحدات الاستعلام المستهلكة لتنفيذ استعلام بما يلي:

  • تعقيد الاستعلام
  • حجم مجموعة النتائج (لذلك سيستهلك الاستعلام الذي يعرض 10 نتائج وحدات QUs أكثر من استعلام ذي تعقيد مماثل يقوم بإرجاع نتيجة واحدة فقط)

توضح هذه المقالة كيفية فهم وحدات الاستعلام وتعقب استهلاك وحدة الاستعلام.

البحث عن استهلاك وحدة الاستعلام في Azure Digital Twins

عند تشغيل استعلام باستخدام واجهة برمجة تطبيقات Azure Digital Twins Query API، يمكنك فحص رأس الاستجابة لتعقب عدد وحدات الجودة التي استهلكها الاستعلام. ابحث عن "رسوم الاستعلام" في الرد المرسل من Azure Digital Twins.

تتيح لك مجموعات تطوير البرامج (SDK) الخاصة ب Azure Digital Twins استخراج رأس رسوم الاستعلام من الاستجابة القابلة للصفحة. يوضح هذا القسم كيفية الاستعلام عن التوائم الرقمية وكيفية التكرار عبر الاستجابة القابلة للصفحة لاستخراج رأس رسوم الاستعلام.

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

using Azure;
using Azure.DigitalTwins.Core;
using System;

namespace DigitalTwins_Samples
{
    public class GetQueryChargesSample
    {
        async public void Run(DigitalTwinsClient client)
        {
            AsyncPageable<BasicDigitalTwin> asyncPageableResponseWithCharge = client.QueryAsync<BasicDigitalTwin>("SELECT * FROM digitaltwins");
            int pageNum = 0;

            // The "await" keyword here is required, as a call is made when fetching a new page.

            await foreach (Page<BasicDigitalTwin> page in asyncPageableResponseWithCharge.AsPages())
            {
                Console.WriteLine($"Page {++pageNum} results:");

                // Extract the query-charge header from the page

                if (QueryChargeHelper.TryGetQueryCharge(page, out float queryCharge))
                {
                    Console.WriteLine($"Query charge was: {queryCharge}");
                }

                // Iterate over the twin instances.

                // The "await" keyword is not required here, as the paged response is local.

                foreach (BasicDigitalTwin twin in page.Values)
                {
                    Console.WriteLine($"Found digital twin '{twin.Id}'");
                }
            }
        }
    }
}

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

لمعرفة المزيد حول الاستعلام عن Azure Digital Twins، يرجى زيارة:

يمكنك العثور على الحدود المتعلقة باستعلام Azure Digital Twins في حدود خدمة Azure Digital Twins.