Выходные данные концентратора событий из Azure Stream Analytics

Центры событий Azure — это высокомасштабируемая служба приема данных о событиях публикации и подписки. Она может принимать миллионы событий в секунду. Концентратор событий может использоваться в качестве места назначения выходных данных, например в случае, когда выходные данные задания Stream Analytics становятся входными данными для другого задания потоковой передачи. Сведения о максимальном размере сообщений и оптимизации размера пакета см. в разделе Размер пакета выходных данных.

Конфигурация выходных данных

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

Имя свойства Описание
Псевдоним выходных данных Понятное имя, которое используется в запросах для направления выходных данных запроса в концентратор событий.
Пространство имен концентратора событий Контейнер для набора сущностей обмена сообщениями. При создании концентратора событий создается также пространство имен концентратора событий.
Имя концентратора событий Имя выходных данных концентратора событий.
Имя политики концентратора событий Политика общего доступа, которую можно создать на вкладке Настройка концентратора событий. Каждой политике общего доступа присваивается имя, а также для нее задаются разрешения и ключи доступа.
Ключ политики концентратора событий Ключ общего доступа, используемый для аутентификации доступа к пространству имен концентратора событий.
Столбец ключа раздела Необязательный параметр. Этот столбец содержит ключ раздела для выходных данных концентратора событий.
Формат сериализации событий Формат сериализации для выходных данных. Поддерживаются форматы JSON, CSV и Avro.
Кодирование В настоящее время единственным поддерживаемым форматом кодирования файлов CSV и JSON является UTF-8.
Разделитель Применяется только для сериализации в формате CSV. Служба Stream Analytics позволяет использовать ряд распространенных разделителей для сериализации данных в формате CSV. Поддерживаются такие разделители: запятая, точка с запятой, пробел, табуляция и вертикальная черта.
Формат Применяется только для сериализации в формате JSON. Вариант строки-разделители предусматривает форматирование выходных данных таким образом, что каждый объект JSON будет отделен новой строкой. Если выбрать вариант строки-разделители, то JSON считывает по одному объекту за раз. Все содержимое само по себе не будет допустимым форматом JSON. Вариант массив означает, что выходные данные будут отформатированы как массив объектов JSON.
Столбцы свойств Необязательный параметр. Столбцы с разделителями-запятыми, которые необходимо присоединить как пользовательские свойства исходящего сообщения вместо полезных данных. Дополнительные сведения об этой функции см. в разделе Свойства пользовательских метаданных для выходных данных.

Секционирование

Секционирование зависит от выравнивания секций. Если ключ раздела для выходных данных концентратора событий не согласован с вышестоящим (предыдущим) шагом запроса, то число модулей записи совпадает с количеством разделов в выходных данных концентратора событий. Каждый модуль записи использует класс EventHubSender для отправки событий в определенный раздел. Если ключ раздела для выходных данных концентратора событий не согласован с вышестоящим (предыдущим) шагом запроса, то число модулей записи совпадает с количеством разделов на этом предыдущем шаге. Каждый модуль записи использует класс SendBatchAsync в EventHubClient для отправки событий во все разделы выходных данных.

Размер выходного пакета

Максимальный размер сообщения составляет 256 КБ или 1 МБ на сообщение. Дополнительные сведения см. в статье Границы Центров событий. Если секционирование ввода-вывода не согласовано, каждое событие упаковывается по отдельности в EventData и отправляется в составе пакета, пока его размер не достигнет максимального размера сообщения. Это также происходит, если используются пользовательские свойства метаданных. Если разделение входных и выходных данных согласовано, то нескольких событий упаковываются в один экземпляр EventData, пока его размер не достигнет максимального размера сообщения, после чего он отправляется.

Свойства пользовательских метаданных для выходных данных

Столбцы запросов можно прикреплять к исходящим сообщениям как пользовательские свойства. Эти столбцы не переходят в полезные данные. Свойства представлены в виде словаря в выходном сообщении. Ключ — это имя столбца, а значение — это значение столбца в словаре свойств. Поддерживаются все типы данных Stream Analytics, кроме записи и массива.

В следующем примере мы добавим в метаданные два поля DeviceId и DeviceStatus.

  1. Используйте следующий запрос:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Настройте DeviceId,DeviceStatus как столбцы свойств в выходных данных.

    Столбцы свойств

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

Настраиваемые свойства события

Доставка ровно один раз

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

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