Выходные данные концентратора событий из 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
.
Используйте следующий запрос:
select *, DeviceId, DeviceStatus from iotHubInput
Настройте
DeviceId,DeviceStatus
как столбцы свойств в выходных данных.
На следующем рисунке представлены ожидаемые свойства выходных сообщений, проверяемые в концентраторе событий с помощью Обозреватель служебной шины.
Доставка ровно один раз
По умолчанию в выходных данных Центров событий поддерживается только один раз. Независимо от входных данных, Stream Analytics гарантирует отсутствие потери данных или их дублирования в выходных данных Центров событий при перезапусках, инициированных пользователем с момента последнего вывода, что предотвращает создание дубликатов. Это значительно упрощает конвейер потоковой передачи, так как не требуется отслеживать, реализовывать и устранять неполадки логики дедупликации.