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

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

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

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

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

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

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

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

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

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

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

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.