Unidades de Consulta em Gémeos Digitais Azure

Este artigo abrange as Unidades de Consulta, como são usadas pela Azure Digital Twins e como encontrar o consumo da Unidade de Consulta em Gémeos Digitais Azure.

A Azure Digital Twins Query Unit (QU) é uma unidade de computação a pedido que é usada para executar as suas consultas Azure Digital Twins utilizando a API de Consulta.

Retira os recursos do sistema como CPU, IOPS e memória que são necessários para realizar operações de consulta suportadas pela Azure Digital Twins, permitindo-lhe acompanhar 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 (assim uma consulta que devolve 10 resultados consumirá mais QUs do que uma consulta de complexidade semelhante que devolve apenas um resultado)

Este artigo explica como compreender as Unidades de Consulta e acompanhar o consumo da Unidade de Consulta.

Encontre o consumo da Unidade de Consulta em Gémeos Digitais Azure

Quando fizer uma consulta utilizando a API de Consulta de Gémeos Digitais Azure, pode examinar o cabeçalho de resposta para rastrear o número de QUs que a consulta consumiu. Procure "consulta-charge" na resposta enviada de Azure Digital Twins.

Os SDKs Azure Digital Twins permitem extrair o cabeçalho de carga de consulta da resposta pageable. Esta secção mostra como consultar gémeos digitais e como iterar sobre a resposta pageable para extrair o cabeçalho de carga de consulta.

O seguinte corte de código demonstra como pode extrair os encargos de consulta incorridos ao ligar para a API de consulta. Iterates sobre as páginas de resposta primeiro para aceder ao cabeçalho de carga de consulta, e depois iterates sobre os resultados digitais gémeos em 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}'");
                }
            }
        }
    }
}

Passos seguintes

Para saber mais sobre a consulta das Gémeas Digitais Azure, visite:

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