Frågeenheter i Azure Digital Twins
Den här artikeln beskriver frågeenheter, hur de används av Azure Digital Twins och hur du hittar förbrukningen för frågeenheten i Azure Digital Twins.
En Azure Digital Twins-frågeenhet (QU) är en beräkningsenhet på begäran som används för att köra dina Azure Digital Twins-frågor med hjälp av fråge-API:et.
Den abstraherar bort systemresurser som CPU, IOPS och minne som krävs för att utföra frågeåtgärder som stöds av Azure Digital Twins, så att du kan spåra användningen i Frågeenheter i stället.
Mängden frågeenheter som används för att köra en fråga påverkas av:
- Frågans komplexitet
- Storleken på resultatuppsättningen (så en fråga som returnerar 10 resultat förbrukar fler QUs än en fråga med liknande komplexitet som bara returnerar ett resultat)
Den här artikeln beskriver hur du förstår frågeenheter och spårar förbrukning av frågeenheter.
Hitta förbrukningen för frågeenhet i Azure Digital Twins
När du kör en fråga med azure digital twins-fråge-API:et kan du granska svarshuvudet för att spåra antalet QU:er som frågan förbrukade. Leta efter "query-charge" i svaret som skickas tillbaka från Azure Digital Twins.
Med Azure Digital Twins-SDK:erna kan du extrahera frågedebiteringshuvudet från det sidbara svaret. Det här avsnittet visar hur du frågar efter digitala tvillingar och hur du itererar över det sidbara svaret för att extrahera frågedebiteringshuvudet.
Följande kodfragment visar hur du kan extrahera de frågeavgifter som uppstår när du anropar fråge-API:et. Den itererar över svarssidorna först för att få åtkomst till frågedebiteringshuvudet och itererar sedan över de digitala tvillingresultaten på varje sida.
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}'");
}
}
}
}
}
Nästa steg
Mer information om hur du frågar Azure Digital Twins finns i:
Du hittar frågerelaterade gränser för Azure Digital Twins i Azure Digital Twins-tjänstgränser.