Пользовательские десериализаторы .NET для Azure Stream Analytics в Visual Studio (предварительная версия)

Внимание

Пользовательский десериализатор .net для Azure Stream Analytics будет прекращен 30 сентября 2024 года. После этой даты невозможно использовать эту функцию. Перейдите к встроенному десериализатору JSON, AVRO или CSV по этой дате.

Azure Stream Analytics поддерживает три формата данных: JSON, CSV и Avro. С помощью настраиваемых десериализаторов .NET для облачных и граничных заданий можно считывать данные из форматов, таких какбуфер протоколов, облигации и других пользовательских форматов.

В этом руководстве показано, как создать настраиваемый десериализатор .NET для облачного задания Azure Stream Analytics с помощью Visual Studio. Сведения о создании десериализаторов .NET в Visual Studio Code см. в статье Создание десериализаторов .NET для заданий Azure Stream Analytics в Visual Studio Code.

В этом руководстве описано следующее:

  • Создание настраиваемого десериализатора для буфера протокола.
  • Создание задания Stream Analytics с использованием инструментов Azure Stream Analytics в Visual Studio.
  • Настройка задания Stream Analytics для использования настраиваемого десериализатора.
  • Выполните локальный запуск задания Stream Analytics для тестирования и отладки настраиваемого десериализатора.

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

Создание настраиваемого десериализатора

  1. Откройте Visual Studio и выберите Файл > Создать > Проект. Выполните поиск Stream Analytics и выберите Проект настраиваемого десериализатора Azure Stream Analytics (.NET). Присвойте проекту имя, например Protobuf Deserializer.

    Create Visual Studio dotnet standard class library project

  2. В обозревателе решений щелкните правой кнопкой мыши проект Protobuf Deserializer и выберите пункт Manage NuGet Packages (Управление пакетами NuGet) в меню. Затем установите пакеты NuGet Microsoft.Azure.StreamAnalytics и Google.Protobuf.

  3. Добавьте в проект класс MessageBodyProto и класс MessageBodyDeserializer.

  4. Создайте проект Protobuf Deserializer.

Добавление проекта Azure Stream Analytics

  1. В обозревателе решений щелкните правой кнопкой мыши решение Protobuf Deserializer и выберите Добавить > Новый проект. В разделе Azure Stream Analytics > Stream Analytics выберите Приложение Azure Stream Analytics. Присвойте ему имя ProtobufCloudDeserializer и выберите ОК.

  2. Щелкните правой кнопкой мыши Ссылки в проекте Azure Stream Analytics ProtobufCloudDeserializer. В пункт Проекты добавьте Protobuf Deserializer. Оно должно заполнится автоматически.

Настройка задания Stream Analytics

  1. Дважды щелкните JobConfig.json. Используйте конфигурации по умолчанию, за исключением следующих параметров:

    Параметр Рекомендуемое значение
    Ресурс параметров глобального хранилища Выберите источник данных из текущей учетной записи
    Подписка на параметры глобального хранилища < ваша подписка >
    Учетная запись хранения параметров глобального хранилища < ваша учетная запись хранения >
    Ресурс параметров хранилища настраиваемого кода Выберите источник данных из текущей учетной записи
    Учетная запись хранения параметров хранилища настраиваемого кода < ваша учетная запись хранения >
    Контейнер параметров хранилища настраиваемого кода < ваш контейнер хранилища >
  2. В разделе Входные данныедважды щелкните Input.json. Используйте конфигурации по умолчанию, за исключением следующих параметров:

    Параметр Рекомендуемое значение
    Оригинал Хранилище BLOB-объектов
    Ресурс Выберите источник данных из текущей учетной записи
    Отток подписок < ваша подписка >
    Учетная запись хранения < ваша учетная запись хранения >
    Контейнер < ваш контейнер хранилища >
    Формат сериализации событий Другие (Protobuf, XML, Частный...)
    Ресурс Загрузка из ссылки на проект ASA или CodeBehind
    Имя сборки CSharp ProtobufDeserializer.dll
    Имя класса MessageBodyProto.MessageBodyDeserializer
    Тип сжатия событий нет
  3. Добавьте следующий запрос в файл script. asaql.

    SELECT * FROM Input
    
  4. Скачайте пример входного файла protobuf. В папке Входные данные, щелкните правой кнопкой мыши Input.json и выберите команду Добавить локальный ввод. Затем дважды щелкните local_Input.json и настройте следующие параметры:

    Параметр Рекомендуемое значение
    Псевдоним входных данных Входные данные
    Тип источника Поток данных
    Формат сериализации событий Другие (Protobuf, XML, Частный...)
    Имя сборки CSharp ProtobufDeserializer.dll
    Имя класса MessageBodyProto.MessageBodyDeserializer
    Путь к локальному входному файлу < путь к файлу скачанного примера входного файла protobuf >

Выполнение задания Stream Analytics

  1. Откройте Script.asaql и выберите Запустить локально.

  2. Просмотрите результаты в модуле результаты локального выполнения Stream Analytics.

Вы успешно внедрили настраиваемый десериализатор в задание Stream Analytics! В этом руководстве вы локально проверили настраиваемый десериализатор. Для реальных данных необходимо правильно настроить входные и выходные данные. Затем отправьте задание в Azure из Visual Studio, чтобы запустить задание в облаке, используя только что внедренный настраиваемый десериализатор.

Отладка десериализатора

Десериализатор .NET можно отлаживать локально так же, как и стандартный код .NET.

  1. Щелкните правой кнопкой мыши имя проекта ProtobufCloudDeserializer и задайте его в качестве запускаемого проекта.

  2. Добавьте точки останова в функцию.

  3. Нажмите клавишу F5, чтобы запустить отладку. Программа будет останавливаться в точках останова.

Очистка ресурсов

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

  1. В меню слева на портале Azure выберите Группы ресурсов, а затем выберите имя созданного ресурса.

  2. На странице группы ресурсов выберите Удалить, в текстовом поле введите имя ресурса для удаления и щелкните Удалить.

Следующие шаги

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