Unità di query in Gemelli digitali di Azure

Questo articolo illustra le unità di query, il modo in cui vengono usate da Gemelli digitali di Azure e come trovare l'utilizzo dell'unità di query in Gemelli digitali di Azure.

Un'unità di query di Gemelli digitali di Azure è un'unità di calcolo su richiesta usata per eseguire le query di Gemelli digitali di Azure usando l'API Query.

Astrae le risorse di sistema, ad esempio CPU, operazioni di I/O al secondo e memoria necessarie per eseguire le operazioni di query supportate da Gemelli digitali di Azure, consentendo di tenere traccia dell'utilizzo in Unità query.

La quantità di unità di query usate per eseguire una query è influenzata da:

  • Complessità della query
  • Le dimensioni del set di risultati (quindi una query che restituisce 10 risultati utilizzerà più QUS di una query di complessità simile che restituisce un solo risultato)

Questo articolo illustra come comprendere le unità di query e tenere traccia dell'utilizzo di unità query.

Trovare l'utilizzo dell'unità di query in Gemelli digitali di Azure

Quando si esegue una query usando l'API Query gemelli digitali di Azure, è possibile esaminare l'intestazione della risposta per tenere traccia del numero di unità qus usate dalla query. Cercare "carica query" nella risposta inviata da Gemelli digitali di Azure.

Gli SDK di Gemelli digitali di Azure consentono di estrarre l'intestazione di addebito della query dalla risposta impaginabile. Questa sezione illustra come eseguire query per gemelli digitali e come eseguire l'iterazione della risposta impaginabile per estrarre l'intestazione di addebito della query.

Il frammento di codice seguente illustra come estrarre gli addebiti di query sostenuti quando si chiama l'API query. Esegue l'iterazione delle pagine di risposta prima di tutto per accedere all'intestazione di addebito della query e quindi esegue l'iterazione dei risultati dei gemelli digitali all'interno di ogni 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}'");
                }
            }
        }
    }
}

Passaggi successivi

Per altre informazioni sull'esecuzione di query su Gemelli digitali di Azure, vedere:

È possibile trovare limiti correlati alle query di Gemelli digitali di Azure nei limiti del servizio Gemelli digitali di Azure.