Leer en inglés

Compartir a través de


Análisis de Protobuf en Azure Stream Analytics

Azure Stream Analytics admite el procesamiento de eventos en formatos de datos de búfer de protocolo (Protobuf). Puede usar el deserializador integrado de Protobuf al configurar las entradas. Para usar el deserializador integrado, especifique el archivo de definición de Protobuf, el tipo de mensaje y el estilo de prefijo.

Nota

Azure Stream Analytics no admite el registro de esquema para los formatos de datos de búfer de protocolo (Protobuf).

Pasos para configurar un trabajo de Stream Analytics

Para configurar el trabajo de Stream Analytics para deserializar eventos en Protobuf:

  1. Después de crear el trabajo de Stream Analytics, seleccione Entradas.

  2. Seleccione Agregar entrada y seleccione qué entrada desea configurar para abrir el panel de configuración de la entrada.

  3. Seleccione Formato de serialización de eventos para mostrar una lista desplegable y, a continuación, seleccione Protobuf.

     Captura de pantalla en la que se muestran los elementos seleccionados para configurar Protobuf para un trabajo de Azure Stream Analytics.

  4. Complete la configuración mediante las instrucciones siguientes:

    Nombre de propiedad Descripción
    Archivo de definición de Protobuf Archivo que especifica la estructura y los tipos de datos de los eventos de Protobuf
    Tipo de mensaje El tipo de mensaje que desea deserializar
    Estilo de prefijo Configuración que determina la longitud de un mensaje para deserializar correctamente los eventos de Protobuf

     Captura de pantalla que muestra los cuadros de entrada del panel de configuración de un trabajo de Azure Stream Analytics, una vez que se ha seleccionado Protobuf como formato de serialización de eventos.

Para obtener más información sobre los tipos de datos de Protobuf, consulte la documentación oficial de búferes de protocolo.

Limitaciones

  • El deserializador de Protobuf solo toma un archivo de definición de Protobuf cada vez. No se admiten las importaciones a archivos de definición de Protobuf personalizados. Por ejemplo:

     Captura de pantalla que muestra un ejemplo de un archivo de definición de Protobuf personalizado.

    Este archivo de definición de Protobuf hace referencia a otro archivo de definición de Protobuf en sus importaciones. Dado que el deserializador de Protobuf solo tendría el archivo de definición de Protobuf actual y no sabría qué es carseat.proto, no sería capaz de deserializar correctamente.

  • Cuando un archivo de definición de Protobuf contiene un espacio de nombres o un paquete, el tipo de mensaje debe incluirlo. Por ejemplo:

     Captura de pantalla que muestra un ejemplo de un archivo de definición de Protobuf con un espacio de nombres.

    En el deserializador de Protobuf del portal, el tipo de mensaje debe ser Namespacetest.Volunteer en lugar de Volunteer como es habitual.

  • Si el paquete o el espacio de nombres original están todo en mayúsculas o minúsculas, el tipo de mensaje debe incluirlo con el primer carácter del paquete o espacio de nombres en mayúsculas. Por ejemplo, si el espacio de nombres es nameSpaceTest, utilice nameSpaceTest.Volunteer. Esta regla se aplica a un tipo de mensaje sin espacio de nombres ni paquete.

  • Debe especificar el mensaje en el archivo de definición de Protobuf sin la palabra clave Optional. En Proto 3, todos los campos son opcionales. Por ejemplo:

    Captura de pantalla que muestra un ejemplo de un archivo de definición de Protobuf con una palabra clave opcional en el mensaje.

    Este archivo de definición de Protobuf muestra un mensaje que tiene la palabra clave Optional. Para deserializar correctamente, debe quitar la palabra clave:

    Captura de pantalla que muestra un ejemplo de un archivo de definición de Protobuf sin palabra clave opcional en el mensaje.

  • Al enviar mensajes que se serializaron mediante google.protobuf, el tipo de prefijo se debe establecer en base128, ya que es el tipo más compatible entre sí.

  • No se admiten mensajes de servicio en los deserializadores de Protobuf. El trabajo produce una excepción si intenta usar un mensaje de servicio. Por ejemplo:

     Captura de pantalla que muestra un ejemplo de un mensaje del servicio.

  • No se admiten estos tipos de datos:

    • Any
    • One of (relacionado con las enumeraciones)
    • Durations
    • Struct
    • Field Mask (no compatible con protobuf-net)
    • List Value
    • Value
    • Null Value
    • Empty

Nota

Para obtener ayuda directa sobre el uso del deserializador de Protobuf, envíe un correo electrónico a askasa@microsoft.com.

Consulte también

Tipos de datos en Azure Stream Analytics