Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматривается, что такое единицы запросов, как они используются в Azure Digital Twins, и как найти информацию о потреблении единиц запросов в Azure Digital Twins.
Единица запроса (QU) Azure Digital Twins — это единица вычислений по требованию, используемая для выполнения запросов Azure Digital Twins с использованием API для выполнения запросов.
Он абстрагирует системные ресурсы, такие как ЦП, IOPS и память, необходимые для выполнения операций запросов, поддерживаемых 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.