Пользовательские десериализаторы .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 для тестирования и отладки настраиваемого десериализатора.
Необходимые компоненты
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
Установите Visual Studio 2019 (рекомендуется) или Visual Studio 2017. Поддерживаются выпуски Enterprise (Ultimate/Premium), Professional и Community. Выпуск Express не поддерживается.
Установите инструменты Stream Analytics для Visual Studio или обновите до последней версии.
Откройте Cloud Explorer в Visual Studio и войдите в свою подписку Azure.
Создайте контейнер в учетной записи хранения. Созданный контейнер будет использоваться для хранения ресурсов, связанных с заданием Stream Analytics. Если у вас уже есть учетная запись хранения с существующими контейнерами, вы можете их использовать. Если нет, создайте новый контейнер.
Создание настраиваемого десериализатора
Откройте Visual Studio и выберите Файл > Создать > Проект. Выполните поиск Stream Analytics и выберите Проект настраиваемого десериализатора Azure Stream Analytics (.NET). Присвойте проекту имя, например Protobuf Deserializer.
В обозревателе решений щелкните правой кнопкой мыши проект Protobuf Deserializer и выберите пункт Manage NuGet Packages (Управление пакетами NuGet) в меню. Затем установите пакеты NuGet Microsoft.Azure.StreamAnalytics и Google.Protobuf.
Добавьте в проект класс MessageBodyProto и класс MessageBodyDeserializer.
Создайте проект Protobuf Deserializer.
Добавление проекта Azure Stream Analytics
В обозревателе решений щелкните правой кнопкой мыши решение Protobuf Deserializer и выберите Добавить > Новый проект. В разделе Azure Stream Analytics > Stream Analytics выберите Приложение Azure Stream Analytics. Присвойте ему имя ProtobufCloudDeserializer и выберите ОК.
Щелкните правой кнопкой мыши Ссылки в проекте Azure Stream Analytics ProtobufCloudDeserializer. В пункт Проекты добавьте Protobuf Deserializer. Оно должно заполнится автоматически.
Настройка задания Stream Analytics
Дважды щелкните JobConfig.json. Используйте конфигурации по умолчанию, за исключением следующих параметров:
Параметр Рекомендуемое значение Ресурс параметров глобального хранилища Выберите источник данных из текущей учетной записи Подписка на параметры глобального хранилища < ваша подписка > Учетная запись хранения параметров глобального хранилища < ваша учетная запись хранения > Ресурс параметров хранилища настраиваемого кода Выберите источник данных из текущей учетной записи Учетная запись хранения параметров хранилища настраиваемого кода < ваша учетная запись хранения > Контейнер параметров хранилища настраиваемого кода < ваш контейнер хранилища > В разделе Входные данныедважды щелкните Input.json. Используйте конфигурации по умолчанию, за исключением следующих параметров:
Параметр Рекомендуемое значение Оригинал Хранилище BLOB-объектов Ресурс Выберите источник данных из текущей учетной записи Отток подписок < ваша подписка > Учетная запись хранения < ваша учетная запись хранения > Контейнер < ваш контейнер хранилища > Формат сериализации событий Другие (Protobuf, XML, Частный...) Ресурс Загрузка из ссылки на проект ASA или CodeBehind Имя сборки CSharp ProtobufDeserializer.dll Имя класса MessageBodyProto.MessageBodyDeserializer Тип сжатия событий нет Добавьте следующий запрос в файл script. asaql.
SELECT * FROM Input
Скачайте пример входного файла protobuf. В папке Входные данные, щелкните правой кнопкой мыши Input.json и выберите команду Добавить локальный ввод. Затем дважды щелкните local_Input.json и настройте следующие параметры:
Параметр Рекомендуемое значение Псевдоним входных данных Входные данные Тип источника Поток данных Формат сериализации событий Другие (Protobuf, XML, Частный...) Имя сборки CSharp ProtobufDeserializer.dll Имя класса MessageBodyProto.MessageBodyDeserializer Путь к локальному входному файлу < путь к файлу скачанного примера входного файла protobuf >
Выполнение задания Stream Analytics
Откройте Script.asaql и выберите Запустить локально.
Просмотрите результаты в модуле результаты локального выполнения Stream Analytics.
Вы успешно внедрили настраиваемый десериализатор в задание Stream Analytics! В этом руководстве вы локально проверили настраиваемый десериализатор. Для реальных данных необходимо правильно настроить входные и выходные данные. Затем отправьте задание в Azure из Visual Studio, чтобы запустить задание в облаке, используя только что внедренный настраиваемый десериализатор.
Отладка десериализатора
Десериализатор .NET можно отлаживать локально так же, как и стандартный код .NET.
Щелкните правой кнопкой мыши имя проекта ProtobufCloudDeserializer и задайте его в качестве запускаемого проекта.
Добавьте точки останова в функцию.
Нажмите клавишу F5, чтобы запустить отладку. Программа будет останавливаться в точках останова.
Очистка ресурсов
Ставшие ненужными группу ресурсов, задание потоковой передачи и все связанные ресурсы можно удалить. При удалении задания будет прекращена тарификация за единицы потоковой передачи, потребляемые заданием. Если вы планируете использовать это задание в будущем, вы можете остановить и перезапустить его позже. Если вы не собираетесь использовать это задание дальше, удалите все ресурсы, созданные в ходе работы с этим руководством, выполнив следующие шаги:
В меню слева на портале Azure выберите Группы ресурсов, а затем выберите имя созданного ресурса.
На странице группы ресурсов выберите Удалить, в текстовом поле введите имя ресурса для удаления и щелкните Удалить.
Следующие шаги
В этом руководстве вы узнали, как внедрить настраиваемый десериализатор .NET для входной сериализации буфера протокола. Дополнительные сведения о создании настраиваемых десериализаторов, см. в следующей статье: