Единицы запросов в Azure Digital Twins
В этой статье рассматриваются единицы запросов, их использование Azure Digital Twins и поиск потребления единиц запросов в Azure Digital Twins.
Единица запроса (QU) Azure Digital Twins — это единица вычислений по требованию, которая используется для выполнения запросов к двойников Azure Digital Twins через API запросов.
Он абстрагирует системные ресурсы, такие как ЦП, операции ввода-вывода в секунду и память, необходимые для выполнения операций запросов, поддерживаемых Azure Digital Twins, что позволяет отслеживать использование в единицах запросов.
Количество единиц запросов, потребляемых для выполнения запроса, зависит от:
- сложности запроса;
- Размер результирующий набор (поэтому запрос, возвращающий 10 результатов, будет потреблять больше единиц, чем запрос аналогичной сложности, возвращающий только один результат).
В этой статье объясняется, что такое единицы запросов и как отслеживать их потребление.
Поиск сведений о потреблении единиц запросов в Azure Digital Twins
При выполнении запроса с помощью API запросов Azure Digital Twins можно просмотреть заголовок ответа, чтобы отследить количество QU, потребляемых данным запросом. В ответе, полученном из Azure Digital Twins, найдите поле query-charge.
Пакеты SDK для Azure Digital Twins позволяют извлекать заголовок query-charge из разбиваемого на страницы ответа. В этом разделе показано, как отправлять запросы к цифровым двойникам и выполнять итерацию по разбиваемым на страницы ответам для извлечения заголовка query-charge.
В следующем фрагменте кода показано, как извлечь расходы на запрос, связанные с вызовом API запросов. Сначала в нем перебираются страницы ответа в поиске заголовка query-charge, а затем — результаты цифрового двойника на каждой странице.
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.