Unidades de consulta em gêmeos digitais do Azure

Este artigo aborda as Unidades de Consulta, como elas são usadas pelos Gêmeos Digitais do Azure e como encontrar o consumo de Unidade de Consulta nos Gêmeos Digitais do Azure.

Uma Unidade de Consulta (QU) de Gêmeos Digitais do Azure é uma unidade de computação sob demanda usada para executar suas consultas de Gêmeos Digitais do Azure usando a API de Consulta.

Ele abstrai os recursos do sistema, como CPU, IOPS e memória, que são necessários para executar operações de consulta suportadas pelos Gêmeos Digitais do Azure, permitindo que você rastreie o uso em Unidades de Consulta.

A quantidade de Unidades de Consulta consumidas para executar uma consulta é afetada por:

  • A complexidade da consulta
  • O tamanho do conjunto de resultados (portanto, uma consulta que retorna 10 resultados consumirá mais QUs do que uma consulta de complexidade semelhante que retorna apenas um resultado)

Este artigo explica como compreender as Unidades de Consulta e controlar o consumo de Unidades de Consulta.

Localizar o consumo da Unidade de Consulta nos Gêmeos Digitais do Azure

Ao executar uma consulta usando a API de Consulta de Gêmeos Digitais do Azure, você pode examinar o cabeçalho de resposta para controlar o número de QUs que a consulta consumiu. Procure "query-charge" na resposta enviada de volta dos Gêmeos Digitais do Azure.

Os SDKs do Azure Digital Twins permitem extrair o cabeçalho query-charge da resposta paginável. Esta seção mostra como consultar gêmeos digitais e como iterar sobre a resposta paginável para extrair o cabeçalho query-charge.

O trecho de código a seguir demonstra como você pode extrair as taxas de consulta incorridas ao chamar a API de consulta. Ele itera sobre as páginas de resposta primeiro para acessar o cabeçalho de carga de consulta e, em seguida, itera sobre os resultados do gêmeo digital 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}'");
                }
            }
        }
    }
}

Próximos passos

Para saber mais sobre como consultar os Gêmeos Digitais do Azure, visite:

Você pode encontrar limites relacionados a consultas do Azure Digital Twins nos limites de serviço do Azure Digital Twins.