Compartir vía


Deserializadores de .NET personalizados para Azure Stream Analytics en Visual Studio (versión preliminar)

Importante

El deserializador .net personalizado para Azure Stream Analytics se retirará el 30 de septiembre de 2024. Después de esa fecha, no será posible usar la característica. Realice la transición a un deserializador integrado JSON, AVRO o CSV antes de esa fecha.

Azure Stream Analytics tiene compatibilidad integrada con tres formatos de datos: JSON, CSV y Avro. Con los deserializadores de .NET personalizados, puede leer datos de otros formatos, como el búfer de protocolo, Bond y otros definidos por el usuario para trabajos en la nube y perimetrales.

En este tutorial se muestra cómo crear un deserializador de .NET personalizado para un trabajo en la nube de Azure Stream Analytics mediante Visual Studio. Para aprender a crear deserializadores de .NET en Visual Studio Code, consulte Creación de deserializadores de .NET para trabajos de Azure Stream Analytics en Visual Studio Code.

En este tutorial, aprenderá a:

  • Crear un deserializador personalizado para el búfer de protocolo.
  • Crear un trabajo de Azure Stream Analytics en Visual Studio.
  • Configurar el trabajo de Stream Analytics para usar el deserializador personalizado.
  • Ejecutar de forma local el trabajo de Stream Analytics para probar y depurar el deserializador personalizado.

Prerrequisitos

Creación de un deserializador personalizado

  1. Abra Visual Studio y seleccione Archivo > Nuevo > Proyecto. Busque Stream Analytics y seleccione Azure Stream Analytics Custom Deserializer Project (.NET) [Proyecto de deserializador personalizado de Azure Stream Analytics (.NET)]. Asigne un nombre al proyecto, como Deserializador protobuf.

    Create Visual Studio dotnet standard class library project

  2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto Deserializador protobuf y seleccione Administrar paquetes NuGet en el menú. Después, instale los paquetes NuGet Microsoft.Azure.StreamAnalytics y Google.Protobuf.

  3. Agregue la clase MessageBodyProto y la clase MessageBodyDeserializer al proyecto.

  4. Compile el proyecto Deserializador protobuf.

Incorporación de un proyecto de Azure Stream Analytics

  1. En el Explorador de soluciones, haga clic con el botón derecho en la solución Deserializador protobuf y seleccione Agregar > Nuevo proyecto. En Azure Stream Analytics > Stream Analytics, elija Aplicación Azure Stream Analytics. Asígnele el nombre ProtobufCloudDeserializer y seleccione Aceptar.

  2. Haga clic con el botón derecho en Referencias en el proyecto de Azure Stream Analytics ProtobufCloudDeserializer. En Proyectos, agregue Deserializador protobuf. Se rellenará automáticamente.

Configuración de un trabajo de Stream Analytics

  1. Haga doble clic en JobConfig.json. Use las configuraciones predeterminadas, excepto las siguientes:

    Configuración Valor sugerido
    Recurso de configuración de almacenamiento global Selección del origen de datos desde la cuenta actual
    Suscripción de configuración de almacenamiento global < su suscripción >
    Cuenta de almacenamiento de la configuración de almacenamiento global < su cuenta de almacenamiento >
    Recurso de configuración de almacenamiento de código personalizado Selección del origen de datos desde la cuenta actual
    Cuenta de almacenamiento de configuración de almacenamiento de código personalizado < su cuenta de almacenamiento >
    Contenedor de configuración de almacenamiento de código personalizado < su contenedor de almacenamiento >
  2. En Entradas, haga doble clic en Input.json. Use las configuraciones predeterminadas, excepto las siguientes:

    Configuración Valor sugerido
    Source Blob Storage
    Resource Selección del origen de datos desde la cuenta actual
    Suscripción < su suscripción >
    Cuenta de almacenamiento < su cuenta de almacenamiento >
    Contenedor < su contenedor de almacenamiento >
    Formato de serialización de eventos Otro (protobuf, XML, propietario...)
    Resource Carga desde Referencia de proyecto ASA o de CodeBehind
    Nombre del ensamblado CSharp ProtobufDeserializer.dll
    Class Name (Nombre de clase) MessageBodyProto.MessageBodyDeserializer
    Tipo de compresión de eventos None
  3. Agregue la siguiente consulta al archivo Script.asaql.

    SELECT * FROM Input
    
  4. Descargue el archivo de entrada de ejemplo protobuf. En la carpeta Inputs, haga clic con el botón derecho en Inputs.json y seleccione Agregar entrada local. A continuación, haga doble clic en local_Input.json y configure las siguientes opciones:

    Configuración Valor sugerido
    Alias de entrada Entrada
    Tipo de origen Flujo de datos
    Formato de serialización de eventos Otro (protobuf, XML, propietario...)
    Nombre del ensamblado CSharp ProtobufDeserializer.dll
    Class Name (Nombre de clase) MessageBodyProto.MessageBodyDeserializer
    La ruta de acceso del archivo de entrada local < la ruta de acceso del archivo de entrada de protobuf de ejemplo descargado>

Ejecución del trabajo de Stream Analytics

  1. Abra script.asaql y seleccione Ejecutar localmente.

  2. Observe los resultados en los resultados de la ejecución local de Stream Analytics.

Ha implementado correctamente un deserializador personalizado para el trabajo de Stream Analytics. En este tutorial, ha probado el deserializador personalizado localmente. Para los datos reales, configuraría correctamente la entrada y la salida. Después, envíe el trabajo a Azure desde Visual Studio para ejecutar el trabajo en la nube con el deserializador personalizado recién implementado.

Depuración del deserializador

Puede depurar el deserializador de .NET localmente de la misma manera que el código de .NET estándar.

  1. Haga clic con el botón derecho en el nombre del proyecto ProtobufCloudDeserializer y establézcalo como proyecto de inicio.

  2. Agregue puntos de interrupción a la función.

  3. Pulse F5 para iniciar la depuración. El programa se detendrá en los puntos de interrupción según lo previsto.

Limpieza de recursos

Cuando no los necesite, elimine el grupo de recursos, el trabajo de streaming y todos los recursos relacionados. La eliminación del trabajo evita la facturación de las unidades de streaming utilizadas por el trabajo. Si piensa utilizar el trabajo en el futuro, puede detenerlo y volver a iniciarlo más adelante cuando sea necesario. Si no va a seguir usando este trabajo, siga estos pasos para eliminar todos los recursos creados en este tutorial:

  1. En el menú de la izquierda de Azure Portal, seleccione Grupos de recursos y luego el nombre del recurso que creó.

  2. En la página del grupo de recursos, seleccione Eliminar, escriba el nombre del recurso que quiere eliminar en el cuadro de texto y, luego, seleccione Eliminar.

Pasos siguientes

En este tutorial, aprendió a implementar un deserializador de .NET personalizado para la serialización de entrada del búfer de protocolo. Para más información sobre la creación de deserializadores personalizados, continúe con el siguiente artículo: