Stream Analytics и Power BI: панель мониторинга аналитики для потоковой передачи данных в режиме реального времени

Azure Stream Analytics позволяет воспользоваться одним из лучших инструментов для бизнес-аналитики, Microsoft Power BI. В этой статье вы узнаете, как создавать средства бизнес-аналитики, отображая в Power BI выходные данные заданий Azure Stream Analytics. Вы также узнаете, как создать и использовать панель мониторинга в реальном времени, которая постоянно обновляется заданием Stream Analytics.

Эта статья является продолжением руководства Stream Analytics по выявлению мошенничества в реальном времени. Она создана на основе рабочего процесса, изложенного в этом руководстве. Кроме того, в ней добавлены выходные данные Power BI для визуализации мошеннических телефонных вызовов, обнаруженных заданием Stream Analytics.

Посмотрите видео об этом сценарии.

Предварительные требования

Чтобы начать, у вас должны быть следующие компоненты:

  • Учетная запись Azure.
  • Учетная запись Power BI Pro. Вы можете использовать рабочую или учебную учетную запись.
  • Полная версия руководства по выявлению мошенничества в режиме реального времени представлена здесь. Руководство включает приложение, создающее вымышленные метаданные телефонных вызовов. В этом руководстве описано создание концентратора событий и отправка потоковых данных телефонных вызовов к нему. Вы напишете запрос, определяющий мошеннические вызовы (вызовы с одного и того же номера одновременно из разных мест).

Добавление Power BI в качестве места назначения выходных данных

В руководстве по выявлению мошенничества в реальном времени выходные данные отправлялись в хранилище BLOB-объектов Azure. В этом разделе вы добавите выход, который отправляет сведения в Power BI.

  1. На портале Azure откройте задание Streaming Analytics, созданное ранее. Если вы использовали рекомендуемое имя, задание называется sa_frauddetection_job_demo.

  2. В разделе Топология задания в меню слева выберите Выходные данные. Нажмите + Добавить и в раскрывающемся меню выберите Power BI.

  3. Выберите + Добавить > Power BI. Затем введите в форму следующие сведения и выберите Авторизовать, чтобы использовать собственное удостоверение пользователя для подключения к Power BI (маркер действует в течение 90 дней).

Параметр Рекомендуемое значение
Псевдоним выходных данных CallStream-PowerBI
Имя набора данных sa-dataset
Имя таблицы fraudulent-calls

Настройка выходных данных Stream Analytics

Предупреждение

Если в Power BI есть набор данных и таблица с такими же именами, которые вы указали в задании Stream Analytics, имеющиеся имена будут перезаписаны. Мы не рекомендуем явным образом создавать набор данных и таблицу в учетной записи Power BI. При запуске задания Stream Analytics они будут созданы автоматически, и задание начнет вносить выходные данные для Power BI. Если ваш запрос задания не возвращает никаких результатов, набор данных и таблица не создаются.

  1. Когда вы нажмете кнопку Авторизовать, откроется всплывающее окно и вам будет предложено ввести учетные данные для проверки подлинности учетной записи Power BI. Когда авторизация будет выполнена успешно, сохраните параметры.

  2. Нажмите кнопку Создать.

Набор данных создается со следующими параметрами:

  • defaultRetentionPolicy: BasicFIFO — для данных используется метод FIFO, максимальное число строк — 200 тыс.
  • defaultMode: hybrid — набор данных поддерживает как политики потоковой передачи (также называются push-уведомлениями), так и традиционные визуальные элементы на основе отчетов. При использовании содержимого push-уведомлений данные постоянно обновляются из задания Stream Analytics, без необходимости обновлять их в Power BI.

Сейчас нельзя создавать наборы данных с другими флагами.

Дополнительные сведения о наборах данных Power BI см. в справочнике по REST API Power BI.

Написание запроса

  1. Закройте колонку Выходные данные и вернитесь в колонку задания.

  2. Щелкните поле Запрос.

  3. Введите следующий запрос. Этот запрос аналогичен запросу самосоединения, созданному в руководстве по обнаружению мошенничества. Различие заключается в том, что этот запрос передает результаты в новые выходные данные, созданные вами (CallStream-PowerBI).

    Примечание

    Если вы не присвоили имя входным данным CallStream в руководстве по обнаружению мошенничества, замените имя CallStream в предложениях FROM и JOIN в запросе.

    /* Our criteria for fraud:
    Calls made from the same caller to two phone switches in different locations (for example, Australia and Europe) within five seconds */
    
    SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls
    INTO "CallStream-PowerBI"
    FROM "CallStream" CS1 TIMESTAMP BY CallRecTime
    JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime
    
    /* Where the caller is the same, as indicated by IMSI (International Mobile Subscriber Identity) */
    ON CS1.CallingIMSI = CS2.CallingIMSI
    
    /* ...and date between CS1 and CS2 is between one and five seconds */
    AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5
    
    /* Where the switch location is different */
    WHERE CS1.SwitchNum != CS2.SwitchNum
    GROUP BY TumblingWindow(Duration(second, 1))
    
  4. Выберите команду Сохранить.

Проверка запроса

Этот раздел необязательный, но мы рекомендуем ознакомиться с ним.

  1. Если сейчас приложение TelcoStreaming не запущено, запустите его, сделав следующее:

    • Откройте командную строку.

    • Перейдите в папку, где находятся измененные файлы telcogenerator.exe и telcodatagen.exe.config.

    • Выполните следующую команду:

      telcodatagen.exe 1000 .2 2

  2. На странице Запрос задания Stream Analytics щелкните точки рядом с входными данными CallStream, а затем выберите Образец данных со входа.

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

  4. Нажмите Проверка и проверьте результаты.

Запуск задания

  1. Убедитесь, что приложение TelcoStreaming выполняется.

  2. Перейдите на страницу Обзор задания Stream Analytics и нажмите Пуск.

    Запуск задания Stream Analytics

Задание Stream Analytics начинает искать мошеннические вызовы во входящем потоке. Задание также создает набор данных и таблицу в Power BI и начинает отправлять данные о мошеннических вызовах к ним.

Создание панели мониторинга в Power BI

  1. Перейдите на сайт Powerbi.com и войдите с помощью рабочей или учебной учетной записи. Если результаты запроса задания Stream Analytics были выведены, вы увидите уже созданный набор данных:

    Местоположение набора данных потоковой передачи в Power BI

  2. В рабочей области щелкните + Создать.

    Кнопка "Создать" в рабочей области Power BI

  3. Создайте информационную панель и назовите ее Fraudulent Calls.

    Создание информационной панели и присвоение ей имени в рабочей области Power BI

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

    Настраиваемый элемент набора данных потоковой передачи в Power BI

  5. В области Your datsets (Ваши наборы данных) выберите свой набор данных и щелкните Далее.

    Набор данных потоковой передачи в Power BI

  6. В поле Тип визуализации выберите Карточка, а затем в списке Поля выберите fraudulentcalls.

    Сведения о визуализации для новой плитки

  7. Щелкните Далее.

  8. Заполните сведения о плитке, такие как заголовок и подзаголовок.

    Заголовок и подзаголовок для новой плитки

  9. Нажмите кнопку Применить.

    Теперь у вас есть счетчик попыток совершения мошенничества.

    Счетчик попыток совершения мошенничества на панели мониторинга Power BI

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

    • В поле Тип визуализации выберите График.

    • Добавьте ось и выберите windowend.

    • Добавьте значение и выберите fraudulentcalls.

    • В списке Отображаемый интервал времени укажите последние 10 минут.

      Создание плитки графика в Power BI

  11. Щелкните Далее, добавьте заголовок и подзаголовок, а затем щелкните Применить.

    Теперь на информационной панели Power BI есть два представления данных о мошеннических вызовах, обнаруженных в потоковой передаче данных.

    Готовая информационная панель Power BI, отображающая 2 плитки со сведениями о мошеннических вызовах

Информация об ограничениях и рекомендациях

Сейчас Power BI можно вызывать примерно один раз в секунду. Визуальные элементы потоковой передачи поддерживают пакеты размером в 15 КБ. При превышении этого порога визуальные элементы потоковой передачи останавливаются (но данные для отправки продолжают обрабатываться). С учетом этого Power BI лучше всего подходит для случаев, когда Azure Stream Analytics значительно уменьшает объем передаваемых данных. Мы рекомендуем использовать переворачивающееся или прыгающее окно, чтобы отправка данных происходила не чаще одного раза в секунду, а запрос отвечал требованиям к пропускной способности.

Можно использовать следующую формулу для вычисления длительности окна в секундах:

Формула для вычисления длительности окна в секундах

Пример:

  • У вас есть 1000 устройств, отправляющих данные с интервалами в 1 секунду.
  • Вы используете лицензию Power BI Pro, которая поддерживает 1 000 000 строк в час.
  • Вы хотите публиковать в Power BI средний объем данных на каждом устройстве.

Соответствующее выражение для расчета выглядит так:

Формула на основе критериев примера

При такой конфигурации можно изменить исходный запрос на следующий:

    SELECT
        MAX(hmdt) AS hmdt,
        MAX(temp) AS temp,
        System.TimeStamp AS time,
        dspl
    INTO "CallStream-PowerBI"
    FROM
        Input TIMESTAMP BY time
    GROUP BY
        TUMBLINGWINDOW(ss,4),
        dspl

Обновление авторизации

Если с момента создания задания или последней аутентификации пароль был изменен, необходимо повторно выполнить аутентификацию с учетной записью Power BI. Если в клиенте Azure Active Directory (Azure AD) настроена многофакторная идентификация Azure, вам потребуется каждые две недели обновлять авторизацию Power BI. Если вы этого не сделаете, возможны такие проблемы, как отсутствие выходных данных задания или Authenticate user error в журналах операций.

Аналогично, если задание запускается после истечения срока действия маркера, возникает ошибка и происходит сбой задания. Чтобы устранить эту проблему, остановите выполнение задания и перейдите к выходным данным Power BI. Чтобы избежать потери данных, щелкните ссылку Обновить авторизацию и перезапустите задание со времени последней остановки.

Когда вы обновите авторизацию в Power BI, в области авторизации появится оповещение зеленого цвета о том, что проблема устранена.

Дальнейшие действия