Partilhar via


Unidades de Consulta no Azure Digital Twins

Este artigo aborda As Unidades de Consulta, como são utilizadas pelo Azure Digital Twins e como encontrar o consumo da Unidade de Consulta no Azure Digital Twins.

Uma Unidade de Consulta do Azure Digital Twins (QU) é uma unidade de computação a pedido que é utilizada para executar as suas consultas do Azure Digital Twins com a API de Consulta.

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

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

Localizar o consumo da Unidade de Consulta no Azure Digital Twins

Quando executa uma consulta com a API de Consulta do Azure Digital Twins, pode examinar o cabeçalho de resposta para controlar o número de QUs que a consulta consumiu. Procure "cobrança de consultas" na resposta enviada do Azure Digital Twins.

Os SDKs do Azure Digital Twins permitem-lhe extrair o cabeçalho de cobrança de consulta da resposta paginável. Esta secção mostra como consultar duplos digitais e como iterar através da resposta paginável para extrair o cabeçalho de cobrança de consulta.

O fragmento de código seguinte demonstra como pode extrair os custos de consulta incorridos ao chamar a API de Consulta. Itera as páginas de resposta primeiro para aceder ao cabeçalho de cobrança de consulta e, em seguida, itera através dos resultados do duplo digital 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 como consultar o Azure Digital Twins, visite:

Pode encontrar limites relacionados com consultas do Azure Digital Twins nos limites do serviço Azure Digital Twins.