Прочитать на английском

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


Анализ Protobuf в Azure Stream Analytics

Azure Stream Analytics поддерживает обработку событий в форматах данных буфера протокола (Protobuf). При настройке входных данных можно использовать встроенный десериализатор Protobuf. Чтобы использовать встроенный десериализатор, укажите файл определения Protobuf, тип сообщения и стиль префикса.

Примечание

Azure Stream Analytics не поддерживает реестр схем для форматов данных буфера протокола (Protobuf).

Действия по настройке задания Stream Analytics

Чтобы настроить задание Stream Analytics для десериализации событий в Protobuf:

  1. После создания задания Stream Analytics выберите входные данные.

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

  3. Выберите формат сериализации событий, чтобы отобразить раскрывающийся список, а затем выберите Protobuf.

     Снимок экрана: выбор для настройки protobuf для задания Azure Stream Analytics.

  4. Выполните настройку с помощью следующего руководства:

    Имя свойства Description
    Файл определения Protobuf Файл, указывающий структуру и типы данных событий Protobuf
    Тип сообщения Тип сообщения, который требуется десериализировать
    Стиль префикса Параметр, определяющий, сколько времени требуется для десериализации событий Protobuf правильно

     Снимок экрана: поля ввода в области конфигурации для задания Azure Stream Analytics после выбора Protobuf в качестве формата сериализации событий.

Дополнительные сведения о типах данных Protobuf см. в официальной документации по буферам протокола.

Ограничения

  • Десериализатор Protobuf принимает только один файл определения Protobuf одновременно. Импорт в пользовательские файлы определений Protobuf не поддерживается. Например:

     Снимок экрана: пример пользовательского файла определения Protobuf.

    Этот файл определения Protobuf ссылается на другой файл определения Protobuf в импорте. Так как десериализатор Protobuf будет иметь только текущий файл определения Protobuf и не знать, что такое careat.proto , он не сможет правильно десериализировать.

  • Если файл определения Protobuf содержит пространство имен или пакет, тип сообщения должен включать его. Например:

     Снимок экрана: пример файла определения Protobuf с пространством имен.

    В десериализаторе Protobuf на портале тип сообщения должен быть Namespacetest.Volunteer не обычным Volunteer.

  • Если исходный пакет или пространство имен является всем верхним или нижним регистром, тип сообщения должен включать его с первым символом пакета или пространства имен в верхнем регистре. Например, если пространство имен имеет значение nameSpaceTest, используйте nameSpaceTest.Volunteer. Это правило применяется к типу сообщения без пространства имен или пакета.

  • Необходимо указать сообщение в файле определения protobuf без ключевого Optional слова. В Proto 3 все поля являются необязательными. Например:

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

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

    Снимок экрана: пример файла определения Protobuf без необязательного ключевого слова в сообщении.

  • При отправке сообщений, сериализованных с помощью google.protobuf, необходимо задать base128 тип префикса, так как это самый кросс-совместимый тип.

  • Сообщения службы не поддерживаются в десериализаторах Protobuf. Задание создает исключение, если вы пытаетесь использовать сообщение службы. Например:

     Снимок экрана: пример сообщения службы.

  • Эти типы данных не поддерживаются:

    • Any
    • One of (связанные с перечислениями)
    • Durations
    • Struct
    • Field Mask (не поддерживается protobuf-net)
    • List Value
    • Value
    • Null Value
    • Empty

Примечание

Чтобы получить прямую помощь с помощью десериализатора Protobuf, отправьте сообщение электронной почты askasa@microsoft.comв .

См. также

Типы данных в Azure Stream Analytics