Sdílet prostřednictvím


Jednotky dotazů ve službě Azure Digital Twins

Tento článek se zabývá jednotkami dotazů, způsob jejich používání službou Azure Digital Twins a zjištění spotřeby jednotek dotazů ve službě Azure Digital Twins.

Jednotka dotazů Azure Digital Twins (QU) je jednotka výpočtu na vyžádání, která se používá ke spouštění dotazů Azure Digital Twins pomocí rozhraní API pro dotazy.

Abstrahuje systémové prostředky, jako jsou procesor, IOPS a paměť potřebné k provádění operací dotazů podporovaných službou Azure Digital Twins, a umožňuje místo toho sledovat využití v jednotkách dotazů.

Množství jednotek dotazů spotřebovaných k provedení dotazu je ovlivněno:

  • Složitost dotazu
  • Velikost sady výsledků (takže dotaz vracející 10 výsledků bude spotřebovávat více jednotek QU než dotaz podobné složitosti, který vrací jenom jeden výsledek).

Tento článek vysvětluje, jak porozumět jednotkám dotazů a sledovat spotřebu jednotek dotazů.

Vyhledání spotřeby jednotek dotazů ve službě Azure Digital Twins

Když spustíte dotaz pomocí rozhraní API pro dotazy Azure Digital Twins, můžete prozkoumat hlavičku odpovědi a sledovat počet jednotek QU, které dotaz spotřeboval. V odpovědi odeslané ze služby Azure Digital Twins vyhledejte "poplatky za dotazy".

Sady SDK služby Azure Digital Twins umožňují extrahovat hlavičku poplatku za dotaz z stránkovatelné odpovědi. Tato část ukazuje, jak dotazovat digitální dvojčata a jak iterovat stránkovatelnou odpověď na extrahování hlavičky poplatku za dotaz.

Následující fragment kódu ukazuje, jak můžete extrahovat poplatky za dotazy vzniklé při volání rozhraní API pro dotazy. Nejprve iteruje přes stránky odpovědí pro přístup k hlavičce poplatku za dotaz a pak iteruje výsledky digitálního dvojčete v rámci každé stránky.

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

Další kroky

Další informace o dotazování služby Azure Digital Twins najdete tady:

Omezení související s dotazy služby Azure Digital Twins najdete v limitech služby Azure Digital Twins.