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 Query Unit (QU) az igény szerinti számítás egysége, amely az Azure Digital Twins-lekérdezések Lekérdezési API használatával történő végrehajtására szolgál.
Elvonja a rendszer erőforrásait, például a CPU-t, az IOPS-t és a memóriát, amelyek az Azure Digital Twins által támogatott lekérdezési műveletek végrehajtásához szükségesek, így ehelyett a lekérdezési egységekben követheti nyomon a használatot.
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 (így egy 10 találatot visszaadó lekérdezés több QU-t használ fel, 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 használatá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-kkal kinyerheti a lekérdezési díj 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
Az Azure Digital Twins lekérdezésével kapcsolatos további információkért látogasson el a következőre:
Az Azure Digital Twins lekérdezéssel kapcsolatos korlátait az Azure Digital Twins szolgáltatás korlátai között találja.