Поделиться через


Руководство по созданию допустимого запроса для подключения данных метрик

Важно!

Начиная с 20 сентября 2023 г. вы не сможете создавать новые ресурсы помощника по метрикам. Служба помощника по метрикам отменяется 1 октября 2026 года.

В этом руководстве описано следующее:

  • создание допустимого запроса для подключения данных;
  • типичные ошибки и способы избежать их.

Необходимые компоненты

Создание ресурса Помощника по метрикам

Чтобы изучить возможности помощника по метрикам, может потребоваться создать ресурс помощника по метрикам в портал Azure для развертывания экземпляра помощника по метрикам.

Требования к схеме данных

Помощник по метрикам ИИ Azure — это служба для обнаружения аномалий временных рядов, диагностика и анализа. Это служба на основе ИИ, а значит она использует предоставленные данные для обучения используемой модели. Эта служба принимает таблицы агрегированных данных со следующими столбцами:

  • Measure (Мера), обязательный: это фундаментальный термин, зависящий от единицы, и количественное значение метрики. Это один или несколько столбцов, содержащих числовые значения.
  • Timestamp (Метка времени), необязательный: не более одного столбца с типом DateTime или String. Если этот столбец не задан, меткой времени считается время начала каждого периода приема. Указывайте метку времени в формате yyyy-MM-ddTHH:mm:ssZ.
  • Dimension (Измерение), необязательный: это одно или несколько значений категорий. Сочетание этих значений определяет определенную унарную временные ряды (например, страну или регион, язык и клиент). Столбцы измерений могут иметь любой тип данных. Соблюдайте осторожность при работе с большим количеством столбцов и значений, чтобы не выполнять обработку слишком большого числа измерений.

Если вы используете такие источники данных, как Azure Data Lake Storage или Хранилище BLOB-объектов Azure, можно выполнить агрегирование данных, чтобы согласовать их с ожидаемой схемой метрик. Это обусловлено тем, что эти источники данных используют файл в качестве входных данных метрик.

Если вы используете такие источники данных, как Azure SQL или Azure Data Explorer, можно использовать статистические функции для агрегирования данных в ожидаемую схему. Это обусловлено тем, что эти источники данных поддерживают выполнение запроса для получения данных метрик из источников.

Как работает прием данных в Помощнике по метрикам?

Для подключения метрик к Помощнику по метрикам обычно можно выбрать любой из следующих двух способов.

  • Выполните предварительное статистическое вычисление по метрикам, преобразовав их в нужную схему данных, и сохраните эти данные в нужные файлы. Заполните шаблон пути в процессе подключения, и Помощник по метрикам будет постоянно собирать новые файлы из указанного пути и выполнять по ним обнаружение метрик. Это типичный прием для таких источников данных, как Azure Data Lake или Хранилище BLOB-объектов Azure.
  • Если вы принимаете данные из таких источников данных, как Azure SQL Server, Azure Data Explorer и другие источники, которые поддерживают использование скрипта запроса, вам необходимо правильно составить запрос. Из этой статьи вы узнаете, как создать допустимый запрос для правильного подключения данных метрик.

Что такое интервал?

Метрики должны отслеживаться с определенной степенью детализации в соответствии с бизнес-требованиями. Например, ключевые показатели эффективности (КПЭ) бизнеса отслеживаются со степенью детализации до одного дня. Но для мониторинга метрик производительности службы часто требуется степень детализации до часа или нескольких минут. Поэтому частота сбора данных метрик будет разной для разных источников.

Помощник по метрикам непрерывно собирает данные метрик в каждом интервале времени, интервал соответствует степени детализации метрик. Каждый раз Помощник по метрикам выполняет созданный вами запрос на прием данных с указанным интервалом. Учитывая такой механизм приема данных, скрипт запроса должен возвращать в результате не все данные метрик из базы данных, а только данные за один интервал.

Illustration that describes what is an interval

Как создать допустимый запрос?

Use @IntervalStart and @IntervalEnd to limit query results

Для поддержки этой возможности предусмотрены два параметра для использования в запросе: @IntervalStart и @IntervalEnd.

При каждом выполнении запроса параметрам @IntervalStart и @IntervalEnd будет автоматически присваиваться значение меток времени для последнего интервала, чтобы получать соответствующие данные метрик. Значение @IntervalEnd всегда равно значению @IntervalStart, увеличенному на одну степень детализации.

Ниже приведен пример правильного использования этих двух параметров для Azure SQL Server.

SELECT [timestampColumnName] AS timestamp, [dimensionColumnName], [metricColumnName] FROM [sampleTable] WHERE [timestampColumnName] >= @IntervalStart and [timestampColumnName] < @IntervalEnd;

Если скрипт запроса создается таким образом, метки времени для метрик должны находиться в пределах одного интервала для каждого результата запроса. Помощник по метрикам автоматически сопоставит метки времени со степенью детализации метрики.

Использование функций агрегирования для статистической обработки метрик

Довольно часто в клиентских источниках данных есть много столбцов, не все из которых нужно отслеживать или включать в измерения. Клиенты могут использовать функции агрегирования для статистической обработки метрик, включая в набор измерений только значимые столбцы.

В следующем примере в клиентском источнике данных содержится более 10 столбцов, но только некоторые из них являются значимыми и должны включаться в статистическую обработку для мониторинга метрики.

TS Рынок ОС устройства Категория ... Measure1 Measure2 Measure3
2020-09-18T12:23:22Z Нью-Йорк iOS Солнцезащитные очки ... 43242 322 54546
2020-09-18T12:27:34Z Пекин Android Сумки ... 3333 126 67677
...

Предположим, что клиент хочет отслеживать метрику Measure1 с почасовой степенью детализации, а в качестве измерений выбирает значения Market и Category. В следующих примерах показано, как с помощью функций агрегирования добиться этого результата:

  • Пример SQL:

        SELECT dateadd(hour, datediff(hour, 0, TS),0) as NewTS
        ,Market
        ,Category
        ,sum(Measure1) as M1
        FROM [dbo].[SampleTable] where TS >= @IntervalStart and TS < @IntervalEnd
        group by Market, Category, dateadd(hour, datediff(hour, 0, TS),0)
    
  • Пример для Azure Data Explorer:

        SampleTable
        | where TS >= @IntervalStart and TS < @IntervalEnd
        | summarize M1 = sum(Measure1) by Market, Category, NewTS = startofhour(TS)
    

Примечание.

В приведенном выше сценарии клиенту нужно отслеживать метрики с почасовой степенью детализации, но необработанные значения меток времени (TS) не согласованы. В операторе агрегирования требуется обработка метки времени, чтобы объединить данные за каждый час и создать новый столбец меток времени с именем NewTS.

Распространенные ошибки при подключении данных

  • Ошибка: в результатах запроса обнаружено несколько значений меток времени

    Эта ошибка обычно возникает, если вы не ограничили результаты запроса одним интервалом. Например, если вы отслеживаете метрику с ежедневной степенью детализации, эта ошибка возникает при выполнении запроса, который возвращает такие результаты:

    Screenshot that shows multiple timestamp values returned

    Здесь несколько значений меток времени, которые относятся к разным интервалам (дням) для данных метрики. Раздел Как работает прием данных в Помощнике по метрикам? поможет вам разобраться, как Помощник по метрикам собирает данные метрик по каждому интервалу метрик. Затем убедитесь, что в запросе используются @IntervalStart и @IntervalEnd, чтобы ограничить результаты для каждого интервала. Подробные указания и примеры можно найти в Use @IntervalStart and @IntervalEnd to limit query results.

  • Ошибка: в пределах одного интервала метрики обнаружены дублирующиеся значения метрики по одной и той же комбинации измерений

    В пределах одного интервала Помощник по метрикам ожидает получить только одно значение метрики для каждой комбинаций измерений. Например, если вы отслеживаете метрику с ежедневной степенью детализации, эта ошибка возникает при выполнении запроса, который возвращает такие результаты:

    Screenshot that shows duplicate values returned

    Подробные инструкции и примеры см. в разделе Использование функций агрегирования для статистической обработки метрик.

Следующие шаги

Перейдите к следующей статье, чтобы узнать, как создать запрос.