Azure Digital Twins의 쿼리 단위

이 문서에서는 쿼리 단위, Azure Digital Twins에서 쿼리 단위를 사용하는 방법 및 Azure Digital Twins에서 쿼리 단위 사용량을 찾는 방법을 다룹니다.

Azure Digital Twins QU(쿼리 단위)쿼리 API를 사용하여 Azure Digital Twins 쿼리를 실행하는 데 사용되는 주문형 계산 단위입니다.

Azure Digital Twins에서 지원하는 쿼리 작업을 수행하는 데 필요한 CPU, IOPS 및 메모리와 같은 시스템 리소스를 추상화하여 쿼리 단위 사용량을 추적할 수 있습니다.

쿼리를 실행하는 데 사용되는 쿼리 단위의 양은 다음에 의해 영향을 받습니다.

  • 쿼리의 복잡성
  • 결과 집합의 크기(결과 10개를 반환하는 쿼리는 하나의 결과만 반환하는 비슷한 복잡성의 쿼리보다 더 많은 QU를 사용함)

이 문서에서는 쿼리 단위를 이해하고 쿼리 단위 소비를 추적하는 방법을 설명합니다.

Azure Digital Twins에서 쿼리 단위 소비 찾기

Azure Digital Twins 쿼리 API를 사용하여 쿼리를 실행할 때 응답 헤더를 검사하여 쿼리에 사용된 QU 수를 추적할 수 있습니다. Azure Digital Twins에서 다시 전송된 응답에서 "쿼리 요금"을 찾습니다.

Azure Digital Twins SDK를 사용하면 페이징할 수 있는 응답에서 쿼리 요금 헤더를 추출할 수 있습니다. 이 섹션에서는 디지털 트윈을 쿼리하는 방법과 페이징할 수 있는 응답을 반복하여 쿼리 요금 헤더를 추출하는 방법을 보여줍니다.

다음 코드 조각에서는 쿼리 API를 호출할 때 발생하는 쿼리 요금을 추출하는 방법을 보여 줍니다. 먼저 응답 페이지를 반복하여 쿼리 요금 헤더에 액세스한 다음, 각 페이지 내의 디지털 트윈 결과를 반복합니다.

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

다음 단계

Azure Digital Twins 쿼리에 대해 자세히 알아보려면 다음을 방문하세요.

Azure Digital Twins 서비스 제한에서 Azure Digital Twins 쿼리 관련 제한을 찾을 수 있습니다.