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 con la API de consulta de Azure Digital Twins, puede examinar el encabezado de respuesta para realizar el seguimiento del número de unidades de consulta que la consulta consume. 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 se pueden extraer los cargos de consulta en los que se incurre cuando se llama a la API de consulta. 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.