Jednostki zapytań w usłudze Azure Digital Twins

W tym artykule opisano jednostki zapytań, sposób ich użycia przez usługę Azure Digital Twins oraz sposób znajdowania użycia jednostek zapytań w usłudze Azure Digital Twins.

Jednostka zapytań usługi Azure Digital Twins (QU) to jednostka obliczeń na żądanie, która służy do wykonywania zapytań usługi Azure Digital Twins przy użyciu interfejsu API zapytań.

Wyodrębnia ona zasoby systemowe, takie jak procesor CPU, liczba operacji we/wy na sekundę i pamięć, które są wymagane do wykonywania operacji zapytań obsługiwanych przez usługę Azure Digital Twins, co pozwala na śledzenie użycia w jednostkach zapytań.

Na liczbę jednostek zapytania użytych do wykonania zapytania ma wpływ:

  • Złożoność zapytania
  • Rozmiar zestawu wyników (więc zapytanie zwracające 10 wyników będzie zużywać więcej jednostek QU niż zapytanie o podobnej złożoności, które zwraca tylko jeden wynik)

W tym artykule wyjaśniono, jak interpretować jednostki zapytań i śledzić użycie jednostek zapytań.

Znajdowanie użycia jednostek zapytań w usłudze Azure Digital Twins

Po uruchomieniu zapytania przy użyciu interfejsu API zapytań usługi Azure Digital Twins możesz sprawdzić nagłówek odpowiedzi, aby śledzić liczbę jednostek QU użytych przez zapytanie. Wyszukaj ciąg "query-charge" w odpowiedzi wysłanej z usługi Azure Digital Twins.

Zestawy SDK usługi Azure Digital Twins umożliwiają wyodrębnianie nagłówka query-charge z odpowiedzi z możliwością stronicowania. W tej sekcji pokazano, jak wykonywać zapytania dotyczące cyfrowych reprezentacji bliźniaczych i jak iterować po stronie odpowiedzi w celu wyodrębnienia nagłówka zapytania opłaty.

Poniższy fragment kodu pokazuje, jak można wyodrębnić opłaty za zapytania poniesione podczas wywoływania interfejsu API zapytań. Iteruje najpierw na stronach odpowiedzi, aby uzyskać dostęp do nagłówka zapytania opłaty, a następnie iteruje wyniki cyfrowej reprezentacji bliźniaczej w każdej stronie.

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

Następne kroki

Aby dowiedzieć się więcej na temat wykonywania zapytań dotyczących usługi Azure Digital Twins, odwiedź stronę:

Limity związane z zapytaniami usługi Azure Digital Twins można znaleźć w temacie Azure Digital Twins service limits (Limity usługi Azure Digital Twins).