Lekérdezési egységek az Azure Digital Twinsben

Ez a cikk bemutatja a lekérdezési egységeket, az Azure Digital Twins használatát, valamint a lekérdezési egységek használatát az Azure Digital Twinsben.

Az Azure Digital Twins-lekérdezési egység (QU) az igény szerinti számítás egysége, amely az Azure Digital Twins-lekérdezésekLekérdezési API használatával történő végrehajtására szolgál.

Az Azure Digital Twins által támogatott lekérdezési műveletek végrehajtásához szükséges rendszererőforrásokat, például a CPU-t, az IOPS-t és a memóriát absztrakciós elvonja, amely lehetővé teszi a használat nyomon követését a lekérdezési egységekben.

A lekérdezés végrehajtásához felhasznált lekérdezési egységek mennyiségét a következő befolyásolja:

  • A lekérdezés összetettsége
  • Az eredményhalmaz mérete (tehát egy 10 eredményt vissza adó lekérdezés több QU-t fog használni, mint egy hasonló összetettségű lekérdezés, amely csak egy eredményt ad vissza)

Ez a cikk bemutatja, hogyan értelmezheti a lekérdezési egységeket, és hogyan követheti nyomon a lekérdezési egységek használatát.

A lekérdezési egység használatának megkeresése az Azure Digital Twinsben

Amikor lekérdezést futtat az Azure Digital Twins Query API-val, megvizsgálhatja a válaszfejlécet a lekérdezés által felhasznált QU-k számának nyomon követéséhez. Keresse meg a "lekérdezési díjat" az Azure Digital Twinstől visszaküldött válaszban.

Az Azure Digital Twins SDK-k lehetővé teszik, hogy kinyerje a lekérdezési terhelés fejlécét a lapozható válaszból. Ez a szakasz bemutatja, hogyan kérdezhet le digitális ikerpéldányokat, és hogyan lehet iterálni a lapozható válaszon a lekérdezési díj fejlécének kinyeréséhez.

Az alábbi kódrészlet bemutatja, hogyan nyerheti ki a Lekérdezési API meghívásakor felmerülő lekérdezési díjakat. Először a válaszoldalakon iterálva éri el a lekérdezési díj fejlécét, majd iterálja az egyes oldalakon belüli digitális ikerpéldány-eredményeket.

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}'");
                }
            }
        }
    }
}

Következő lépések

Ha többet szeretne megtudni az Azure Digital Twins lekérdezéséről, látogasson el a következő oldalra:

Az Azure Digital Twins lekérdezéssel kapcsolatos korlátait az Azure Digital Twins szolgáltatás korlátai között találja.