Aracılığıyla paylaş


Azure Digital Twins'de Sorgu Birimleri

Bu makalede Sorgu Birimleri, Azure Digital Twins tarafından nasıl kullanıldıkları ve Azure Digital Twins'de Sorgu Birimi tüketimini bulma konularına yer verilmişti.

Azure Digital Twins Sorgu Birimi (QU), Sorgu API'sini kullanarak Azure Digital Twins sorgularınızı yürütmek için kullanılan isteğe bağlı hesaplama birimidir.

Azure Digital Twins tarafından desteklenen sorgu işlemlerini gerçekleştirmek için gereken CPU, IOPS ve bellek gibi sistem kaynaklarını soyutlar ve bunun yerine Sorgu Birimleri'nde kullanımı izlemenize olanak sağlar.

Bir sorguyu yürütmek için kullanılan Sorgu Birimi miktarı aşağıdakilerden etkilenir:

  • Sorgunun karmaşıklığı
  • Sonuç kümesinin boyutu (dolayısıyla 10 sonuç döndüren bir sorgu, tek bir sonuç döndüren benzer karmaşıklıkta bir sorgudan daha fazla QU tüketir)

Bu makalede Sorgu Birimlerini anlama ve Sorgu Birimi tüketimini izleme açıklanmaktadır.

Azure Digital Twins'de Sorgu Birimi tüketimini bulma

Azure Digital Twins Sorgu API'sini kullanarak bir sorgu çalıştırdığınızda, sorgunun tükettiği QU sayısını izlemek için yanıt üst bilgisini inceleyebilirsiniz. Azure Digital Twins'den geri gönderilen yanıtta "sorgu ücreti" ifadesini arayın.

Azure Digital Twins SDK'ları, disk belleğine alınabilen yanıttan sorgu ücreti üst bilgisini ayıklamanıza olanak sağlar. Bu bölümde, dijital ikizleri sorgulama ve sorgu ücreti üst bilgisini ayıklamak için sayfalanabilir yanıt üzerinde yineleme gösterilmektedir.

Aşağıdaki kod parçacığı, Sorgu API'sini çağırırken tahakkuk eden sorgu ücretlerini nasıl ayıklayabileceğinizi gösterir. Sorgu ücreti üst bilgisine erişmek için önce yanıt sayfaları üzerinde yinelenir ve ardından her sayfadaki dijital ikiz sonuçları üzerinde yinelenir.

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

Sonraki adımlar

Azure Digital Twins'i sorgulama hakkında daha fazla bilgi edinmek için şu adresi ziyaret edin:

Azure Digital Twins sorguyla ilgili sınırları Azure Digital Twins hizmet sınırları bölümünde bulabilirsiniz.