Обработка данных событий с помощью редактора обработчика событий

Редактор обработчика событий — это интерфейс без кода, который позволяет перетаскивать и перетаскивать для разработки логики обработки данных событий. В этой статье описывается, как использовать редактор для разработки логики обработки.

Примечание.

Если вы хотите использовать расширенные возможности, которые находятся в предварительной версии, выберите расширенные возможности в верхней части. В противном случае выберите стандартные возможности. Сведения о расширенных возможностях, которые находятся в предварительной версии, см. в разделе "Общие сведения о потоках событий Fabric".

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

Перед началом работы необходимо выполнить следующие предварительные требования:

  • Получите доступ к рабочей области premium с разрешениями участника или выше, где находится ваш поток событий.

Внимание

Расширенные возможности потоков событий Fabric в настоящее время находятся в предварительной версии.

Проектирование обработки событий с помощью редактора

Чтобы выполнять операции потоковой обработки потоков в потоках данных с помощью редактора без кода, выполните следующие действия.

  1. Выберите "Изменить " на ленте, если вы еще не в режиме редактирования. Убедитесь, что узел вышестоящий для операций, подключенных, имеет схему.

    Снимок экрана: редактор обработчика событий в режиме редактирования.

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

    • Вставьте оператор непосредственно из строки подключения. Наведите указатель мыши на строку подключения и нажмите кнопку + . Раскрывающееся меню отображается в строке подключения, и вы можете выбрать оператора из этого меню.

      Снимок экрана: выбор кнопки +в строке подключения.

    • Вставьте оператор из меню ленты или холста.

      1. Оператор можно выбрать в меню "Преобразование событий " на ленте.

        Снимок экрана: выделенные поля

        Кроме того, можно наведите указатель мыши на один из узлов и нажмите + кнопку, если вы удалили строку подключения. Раскрывающееся меню отображается рядом с этим узлом, и вы можете выбрать оператора из этого меню.

        Снимок экрана: выбор ссылки плюса в строке подключения.

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

        Снимок экрана: подключение плитки

  3. Выберите узел оператора "Управление полями". На панели конфигурации "Управление полями" выберите нужные поля. Если вы хотите добавить все поля, нажмите кнопку "Добавить все поля". Вы также можете добавить новое поле со встроенными функциями для агрегирования данных из вышестоящий. (В настоящее время встроенные функции, которые мы поддерживаем, являются некоторыми функциями в строковых функциях, функциях даты и времени, математических функциях. Чтобы найти их, выполните поиск по built-in.)

    Снимок экрана: настройка плитки

  4. После настройки оператора "Управление полями " выберите "Обновить ", чтобы проверить результат теста, созданный этим оператором.

    Снимок экрана: обновленная страница.

  5. Если у вас есть ошибки конфигурации, они отображаются на вкладке "Ошибки разработки " в нижней области.

    Снимок экрана: вкладка

  6. Если результат теста выглядит правильно, выберите "Опубликовать ", чтобы сохранить логику обработки событий и вернуться в режим реального времени.

    Снимок экрана: кнопка

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

    Снимок экрана: режим реального времени.

Редактор обработки событий

Редактор обработчика событий (холст в режиме редактирования) позволяет преобразовать данные в различные назначения. Введите режим редактирования для разработки операций потоковой обработки для потоков данных.

Снимок экрана: редактор обработки событий для потока событий с расширенными возможностями.

В режиме редактирования есть холст и нижняя панель, в которой можно:

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

Макет редактора

Снимок экрана: макет редактора обработки событий для потока событий с расширенными возможностями.

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

Поддерживаемые типы узлов и примеры

Ниже приведены типы назначения, которые поддерживают добавление операторов перед приемом:

  • Гибридное решение "хранилище и озеро данных"
  • База данных KQL (обработка событий перед приемом)
  • Производный поток

Примечание.

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

Снимок экрана: макет редактора обработки событий с фильтрацией выходных данных в неподдерживаемое место назначения.

Обработчик событий в Lakehouse и базе данных KQL (обработка событий перед приемом) позволяет обрабатывать данные перед приемом в место назначения.

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

Перед началом работы необходимо выполнить следующие предварительные требования:

  • Получите доступ к рабочей области premium с разрешениями участника или выше, где находится ваш поток событий.
  • Получите доступ к рабочей области premium с разрешениями участника или выше, где находится база данных Lakehouse или KQL.

Проектирование обработки событий с помощью редактора

Чтобы разработать обработку событий с помощью редактора обработчика событий:

  1. Добавьте назначение Lakehouse и введите необходимые параметры в правой области. (См. раздел Добавьте назначение и управляйте им в потоке событий для получения подробных инструкций.

  2. Выберите "Открыть обработчик событий". Откроется экран редактора обработки событий.

    Снимок экрана, показывающий, где выбрать обработчик событий Open на экране конфигурации назначения Lakehouse.

  3. На холсте редактора обработки событий выберите узел eventstream. Вы можете просмотреть схему данных или изменить тип данных в правой области событий .

    Снимок экрана: схема данных в правой области экрана редактора обработки событий.

  4. Чтобы вставить оператор обработки событий между этим потоком событий и назначением в редактор обработчика событий, можно использовать один из следующих двух методов:

    1. Вставьте оператор непосредственно из строки подключения. Наведите указатель мыши на строку подключения и нажмите кнопку "+". Раскрывающееся меню отображается в строке подключения, и вы можете выбрать оператора из этого меню.

      Снимок экрана: наведите указатель мыши на строку подключения, чтобы вставить узел.

    2. Вставьте оператор из меню ленты или холста.

      1. Оператор можно выбрать в меню "Операции " на ленте. Кроме того, можно наведите указатель мыши на один из узлов, а затем нажмите кнопку "+", если вы удалили строку подключения. Раскрывающееся меню отображается рядом с этим узлом, и вы можете выбрать оператора из этого меню.

        Снимок экрана: место выбора оператора в меню

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

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

        Снимок экрана: место подключения узлов.

  5. Выберите узел оператора "Управление полями". На панели конфигурации "Управление полями" выберите нужные поля. Если вы хотите добавить все поля, нажмите кнопку "Добавить все поля". Вы также можете добавить новое поле со встроенными функциями для агрегирования данных из вышестоящий. (В настоящее время встроенные функции, которые мы поддерживаем, являются некоторыми функциями в Строковые функции, функции даты и времени, математические функции. Чтобы найти их, выполните поиск по "встроенному".

    Снимок экрана: настройка оператора.

  6. После настройки оператора "Управление полями " выберите "Обновить статическую предварительную версию" , чтобы просмотреть данные, которые создает этот оператор.

    Снимок экрана: просмотр данных в редакторе обработчика событий.

  7. Если у вас возникли ошибки конфигурации, они отображаются на вкладке " Ошибка разработки" в нижней области.

    Снимок экрана: вкладка

  8. Если предварительный просмотр данных выглядит правильно, нажмите кнопку "Готово ", чтобы сохранить логику обработки событий и вернуться на экран конфигурации назначения Lakehouse.

  9. Нажмите кнопку "Добавить ", чтобы завершить создание назначения Lakehouse.

Редактор обработчика событий

Обработчик событий позволяет преобразовать данные, которые вы отправляете в место назначения lakehouse. При настройке назначения Lakehouse вы найдете параметр обработчика событий Open в середине экрана конфигурации назначения Lakehouse.

Снимок экрана: место открытия редактора обработчика событий.

При выборе обработчика событий Open запускается экран редактора обработки событий, где можно определить логику преобразования данных.

Редактор обработчика событий включает холст и нижняя панель, в которой можно:

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

Макет экрана похож на главный редактор. Он состоит из трех разделов, показанных на следующем рисунке:

Снимок экрана: экран редактора обработки событий, указывающий три основных раздела.

  1. Холст с представлением схемы: на этой панели можно разработать логику преобразования данных, выбрав оператор (в меню "Операции ") и подключив поток событий и конечные узлы через только что созданный узел оператора. Можно перетащить линии подключения или выбрать и удалить подключения.

  2. Правая область редактирования: эта область позволяет настроить выбранный узел операции или просмотреть схему потока событий и назначения.

  3. В нижней области с вкладками "Предварительный просмотр данных" и "Создание ошибок" в этой области можно просмотреть данные на выбранном узле с вкладкой "Предварительный просмотр данных". На вкладке "Ошибки разработки" перечислены все неполные или неправильные конфигурации на узлах операций.

Ошибки разработки

Ошибки разработки ссылаются на ошибки, возникающие в редакторе обработчика событий из-за неполной или неправильной конфигурации узлов операций, помогая найти и устранить потенциальные проблемы в обработчике событий.

Ошибки разработки можно просмотреть на нижней панели редактора обработчика событий. На нижней панели перечислены все ошибки разработки, каждая ошибка разработки содержит четыре столбца:

  • Идентификатор узла: указывает идентификатор узла операции, в котором произошла ошибка разработки.
  • Тип узла: указывает тип узла операции, в котором произошла ошибка разработки.
  • Уровень: указывает серьезность ошибки разработки, существует два уровня: "Неустранимая версия" и "Сведения". Ошибка разработки на неустранимом уровне означает, что обработчик событий имеет серьезные проблемы и не может быть сохранен или запущен. Ошибка разработки на уровне информации означает, что обработчик событий имеет некоторые советы или предложения, которые помогут оптимизировать или улучшить обработчик событий.
  • Ошибка: указывает конкретную информацию об ошибке разработки, кратко описывая причину и влияние ошибки разработки. Чтобы просмотреть сведения, можно выбрать вкладку "Показать сведения ".

Так как eventstream и KQL Database поддерживают различные типы данных, процесс преобразования типов данных может привести к ошибкам разработки.

В следующей таблице показаны результаты преобразования типов данных из Eventstream в базу данных KQL. Столбцы представляют типы данных, поддерживаемые eventstream, и строки представляют типы данных, поддерживаемые базой данных KQL. Ячейки указывают результаты преобразования, которые могут быть одним из следующих трех:

✔️ Указывает на успешное преобразование, ошибки или предупреждения не создаются.

❌ Указывает на невозможное преобразование, возникает неустранимая ошибка разработки. Сообщение об ошибке аналогично: тип данных "{1}" для столбца "{0}" не соответствует ожидаемому типу "{2}" в выбранной таблице KQL и не может быть автоконвертирован.

⚠️ Указывает на возможное, но неточное преобразование, возникает ошибка разработки сведений. Сообщение об ошибке аналогично: тип данных "{1}" для столбца "{0}" не соответствует ожидаемому типу "{2}" в выбранной таблице KQL. Он автоматически перевернут на "{2}".

строка bool datetime по строкам guid INT длинный real timespan десятичное
Int64 ✔️ ⚠️ ✔️ ⚠️ ✔️
Двойной ✔️ ⚠️ ⚠️
String ✔️ ✔️
Дата и время ⚠️ ✔️ ✔️
Запись ⚠️ ✔️
Массив ⚠️ ✔️

Как видно из таблицы, некоторые преобразования типов данных успешны, например строка в строку. Эти преобразования не создают ошибок разработки и не влияют на работу обработчика событий.

Некоторые преобразования типов данных являются невозможными, например int в строку. Эти преобразования создают неустранимые ошибки разработки уровня, что приводит к сбою сохранения обработчика событий. Чтобы избежать этих ошибок, необходимо изменить тип данных в потоке событий или в таблице KQL.

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

Операторы преобразования

Обработчик событий предоставляет шесть операторов, которые можно использовать для преобразования данных событий в соответствии с вашими бизнес-потребностями.

Снимок экрана: операторы, доступные в меню

Агрегированное

Используйте преобразование "Агрегат" для вычисления агрегирования (суммы, минимального, максимального или среднего) при каждом возникновении нового события в течение определенного периода времени. Эта операция также позволяет переименовать эти вычисляемые столбцы и отфильтровать или срезы агрегирования на основе других измерений в данных. В одном или нескольких агрегатах можно выполнить одно или несколько агрегатов.

Разверните

Используйте преобразование "Развернуть массив" для создания новой строки для каждого значения в массиве.

Фильтр

Используйте преобразование фильтра для фильтрации событий на основе значения поля во входных данных. В зависимости от типа данных (число или текст), преобразование сохраняет значения, соответствующие выбранному условию, например null или не null.

Группировать по

Используйте группу путем преобразования для вычисления агрегатов во всех событиях в течение определенного периода времени. Вы можете выполнять группирование по значениям в одном или нескольких полях. Это похоже на преобразование "Агрегат " позволяет переименовать столбцы, но предоставляет дополнительные возможности агрегирования и включает более сложные параметры для временных окон. Например , агрегат можно добавить несколько агрегатов для каждого преобразования.

Агрегаты, доступные в преобразовании:

  • Среднее значение
  • Численность
  • Максимум
  • Минимум
  • Процентиль (постоянный и дискретный).
  • стандартное отклонение.
  • Sum
  • Отклонение

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

Снимок экрана: оператор group by, доступный в редакторе обработчика событий.

Управление полями

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

Снимок экрана: оператор

Кроме того, можно добавить новое поле со встроенными функциями, чтобы агрегировать данные из вышестоящий. (В настоящее время встроенные функции, которые мы поддерживаем, являются некоторыми функциями в Строковые функции, функции даты и времени и математические функции. Чтобы найти их, выполните поиск по "встроенному".

Снимок экрана: встроенные функции управления полями.

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

  • Если в ячейке есть ✔️ ячейка, это означает, что она может быть преобразована напрямую, и в раскрывающемся списке отображается параметр целевого типа данных.
  • Если в ячейке есть ❌ ячейка, это означает, что она не может быть преобразована, и в раскрывающемся списке не отображается параметр целевого типа данных.
  • Если в ячейке есть ⚠️, это означает, что его можно преобразовать, но оно должно соответствовать определенным условиям, таким как формат строки, должен соответствовать требованиям целевого типа данных. Например, при преобразовании из строки в int строка должна быть допустимой целочисленной формой, например 123, не abc.
Int64 Двойной Строка Datetime Запись Массив
Int64 ✔️ ✔️ ✔️
Двойной ✔️ ✔️ ✔️
String ⚠️ ⚠️ ✔️ ⚠️
Дата и время ✔️ ✔️
Запись ✔️ ✔️
Массив ✔️ ✔️

Объединение

Используйте преобразование Union для подключения двух или нескольких узлов и добавления событий, которые совместно используют поля (с одинаковым именем и типом данных) в одну таблицу. Поля, которые не соответствуют, удаляются и не включаются в выходные данные.

Присоединиться

Используйте преобразование Join для объединения событий из двух входных данных на основе пар полей, которые вы выбрали. Если вы не выбираете пару полей, соединение зависит от времени по умолчанию. По умолчанию это преобразование отличается от пакетной.

Как и при регулярных соединениях, у вас есть варианты для логики соединения:

  • Внутреннее соединение: включите только записи из обеих таблиц, в которых пара совпадает.
  • Левое внешнее соединение: включите все записи из левой (первой) таблицы и только записи из второй, которые соответствуют паре полей. Если совпадения нет, поля из второго входного ввода пусты.