Query-eenheden in Azure Digital Twins
In dit artikel worden queryeenheden beschreven, hoe ze worden gebruikt door Azure Digital Twins en hoe u het verbruik van query-eenheden in Azure Digital Twins kunt vinden.
Een Azure Digital Twins Query Unit (QU) is een eenheid van berekeningen op aanvraag die wordt gebruikt om uw Azure Digital Twins-query's uit te voeren met behulp van de Query-API.
Het abstraheert de systeemresources, zoals CPU, IOPS en geheugen die nodig zijn om querybewerkingen uit te voeren die worden ondersteund door Azure Digital Twins, zodat u in plaats daarvan het gebruik in queryeenheden kunt bijhouden.
De hoeveelheid verbruikte query-eenheden voor het uitvoeren van een query wordt beïnvloed door:
- De complexiteit van de query
- De grootte van de resultatenset (dus een query die 10 resultaten retourneert, verbruikt meer QU's dan een query met vergelijkbare complexiteit die slechts één resultaat retourneert)
In dit artikel wordt uitgelegd hoe u query-eenheden begrijpt en het verbruik van query-eenheden bijhoudt.
Het verbruik van query-eenheden zoeken in Azure Digital Twins
Wanneer u een query uitvoert met behulp van de Azure Digital Twins Query-API, kunt u de antwoordheader onderzoeken om het aantal QU's bij te houden dat door de query is verbruikt. Zoek naar 'querykosten' in het antwoord dat is verzonden vanuit Azure Digital Twins.
Met de Azure Digital Twins SDK's kunt u de querykostenheader extraheren uit het wisselbare antwoord. In deze sectie wordt beschreven hoe u query's kunt uitvoeren op digitale dubbels en hoe u het paginabare antwoord kunt herhalen om de header querykosten op te halen.
Het volgende codefragment laat zien hoe u de querykosten kunt extraheren die zijn gemaakt bij het aanroepen van de Query-API. Het herhaalt eerst de antwoordpagina's om toegang te krijgen tot de header querykosten en herhaalt vervolgens de resultaten van de digitale dubbel op elke pagina.
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}'");
}
}
}
}
}
Volgende stappen
Ga voor meer informatie over het uitvoeren van query's op Azure Digital Twins naar:
U vindt azure Digital Twins-querylimieten in servicelimieten van Azure Digital Twins.