Unidades de consulta en Azure Digital Twins

En este artículo se tratan las unidades de consulta, cómo se usan en Azure Digital Twins y cómo encontrar el consumo de unidades de consulta en Azure Digital Twins.

Una unidad de consulta de Azure Digital Twins es una unidad de cálculo a petición que se usa para ejecutar las consultas de Azure Digital Twins mediante la API de consulta.

Abstrae los recursos del sistema, como CPU, IOPS y memoria, que son necesarios para realizar operaciones de consulta admitidas por Azure Digital Twins, lo que le permite realizar un seguimiento del uso en unidades de consulta en su lugar.

La cantidad de unidades de consulta consumidas para ejecutar una consulta se ve afectada por:

  • La complejidad de la consulta
  • El tamaño del conjunto de resultados (por lo que una consulta que devuelve diez resultados consumirá más unidades de consulta que una consulta de complejidad similar que devuelve solo un resultado)

En este artículo se explica cómo comprender las unidades de consulta y realizar el seguimiento del consumo de la unidad de consulta.

Búsqueda del consumo de unidades de consulta en Azure Digital Twins

Al ejecutar una consulta mediante la API de consulta de Azure Digital Twins, puede examinar el encabezado de respuesta para realizar un seguimiento del número de QU que ha consumido la consulta. Busque "query-charge" en la respuesta que se devuelve desde Azure Digital Twins.

Los SDK de Azure Digital Twins permiten extraer el encabezado de cargo de consulta de la respuesta paginable. En esta sección se muestra cómo consultar los gemelos digitales y cómo recorrer en iteración la respuesta paginable para extraer el encabezado del cargo de la consulta.

En el fragmento de código siguiente se muestra cómo extraer los cargos de consulta en los que se incurre al llamar a query API. Recorre en iteración las páginas de respuesta en primer lugar para acceder al encabezado de cargos de consulta y, a continuación, recorre en iteración los resultados de los gemelos digitales dentro de cada página.

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

Pasos siguientes

Para más información sobre cómo hacer consultas en Azure Digital Twins, consulte:

Puede encontrar límites relacionados con las consultas de Azure Digital Twins en Límites del servicio Azure Digital Twins.