Compartir por


Configuración de una fase de origen de MQ en una canalización de Azure IoT Data Processor Preview

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

La fase de origen es la fase primera y necesaria en una canalización preliminar del procesador de datos de Azure IoT. En la fase de origen se introducen los datos en la canalización de procesamiento de datos y se preparan para procesarlos más a fondo. La fase de origen de MQ le permite suscribirse a mensajes de un tema MQTT. En la fase de origen, se definen los detalles de conexión al origen MQ y se establece una configuración de partición basada en sus requisitos específicos de procesamiento de datos.

Requisitos previos

  • Una instancia implementada de la versión preliminar del procesador de datos de Azure IoT que incluye el componente opcional del procesador de datos.
  • Una instancia del agente de la versión preliminar de Azure IoT MQ con todos los datos sin procesar necesarios está operativa y accesible.

Configuración del origen de MQ

Para configurar el origen de MQ:

  • Proporcione los detalles de conexión al origen MQ. Esta configuración incluye el tipo de origen MQ, la dirección URL del agente MQTT, el nivel calidad de servicio (QoS), el tipo de sesión y los temas a los que suscribirse.
  • Especifique el método de autenticación. Actualmente se limita a la autenticación basada en nombre de usuario o contraseña o token de cuenta de servicio.

En la tabla siguiente se describen los parámetros de configuración de origen de MQ:

Campo Descripción Necesario Valor predeterminado Ejemplo
Nombre Un nombre visible para el cliente de la fase de origen. Obligatorio N/D asset-1broker
Descripción Una descripción visible para el cliente de la fase de origen. Opcional N/D brokerforasset-1
Agente Dirección URL del agente MQTT al que se va a conectar. Obligatorio N/D tls://aio-mq-dmqtt-frontend:8883
Autenticación Método de autenticación para conectarse al agente. Uno de: None, Username/Password, y Service Account Token (SAT). Obligatorio Service Account Token (SAT) Service Account Token (SAT)
Nombre de usuario/contraseña y > nombre de usuario El nombre de usuario para la autenticación con nombre de usuario y contraseña. N/D myuser
Nombre de usuario y contraseña > secreto Referencia a la contraseña almacenada en Azure Key Vault. N/D AKV_USERNAME_PASSWORD
QoS Nivel de QoS para la entrega de mensajes. Obligatorio 1 0
Limpiar sesión Establézcalo en FALSE para una sesión persistente. Obligatorio FALSE FALSE
Tema El tema al que se suscribirá para la adquisición de datos. Obligatorio N/D contoso/site1/asset1, contoso/site1/asset2

Para más información sobre los secretos, consulte Administración de secretos para la implementación preliminar de Operaciones de IoT de Azure.

El procesador de datos no reordena los datos desordenados procedentes del agente MQTT. Si los datos se reciben fuera del orden del agente, permanece así en la canalización.

Selección del formato de datos

En una canalización del procesador de datos, el campo Formato en la fase de origen especifica cómo deserializar los datos entrantes. De manera predeterminada, la canalización del procesador de datos usa el formato raw, lo que significa que no convierte los datos entrantes. Para usar muchas características del procesador de datos, como las fases Filter o Enrich de una canalización, es necesario deserializar los datos en la fase de entrada. Se puede optar por deserializar los datos entrantes de los formatos JSON, jsonStream, MessagePack, CBOR, CSV o Protobuf en un mensaje legible del procesador de datos para poder usar la funcionalidad completa del procesador de datos.

En las tablas siguientes se describen las distintas opciones de configuración de deserialización:

Campo Descripción Necesario Valor predeterminado Value
Formato de datos El tipo del formato de datos. Raw Raw JSON jsonStream MessagePack CBOR CSV Protobuf

El campo Data Format es obligatorio y su valor determina los demás campos obligatorios.

Para deserializar los mensajes de archivo .csv también debe especificar los siguientes campos:

Campo Descripción Obligatorio Value Ejemplo
Encabezado Si los datos de archivo .csv incluyen una línea de encabezado. Yes No No
Nombre Nombre de la columna en CSV - temp, asset
Path La ruta de acceso jq en el mensaje donde se agrega la información de columna. No - La ruta de acceso jq predeterminada es el nombre de columna
Tipo de datos El tipo de datos de los datos de la columna y cómo se representa dentro de la canalización del procesador de datos. No String, Float, Integer, Boolean, Bytes Opción predeterminada: String

Para deserializar los mensajes Protobuf, también debe especificar los siguientes campos:

Campo Descripción Obligatorio Value Ejemplo
Descriptor El descriptor codificado en base64 para la definición de Protobuf. - Zhf...
Mensaje El nombre del tipo de mensaje que se usa para dar formato a los datos. - pipeline
Paquete El nombre del paquete en el descriptor donde se define el tipo. - schedulerv1

Nota:

El procesador de datos solo admite un tipo de mensaje en cada archivo .proto.

Configuración de particiones

La creación de particiones en una canalización divide los datos entrantes en distintas particiones. La creación de particiones permite el paralelismo de datos en la canalización, lo que puede mejorar el rendimiento y reducir la latencia. Las estrategias de creación de particiones afectan a cómo se procesan los datos en las otras fases de la canalización. Por ejemplo, la última fase de valor conocida y la fase de agregado funcionan en cada partición lógica.

Para particionar los datos, especifique una estrategia de creación de particiones y el número de particiones que se usarán:

Campo Descripción Necesario Valor predeterminado Ejemplo
Tipo de partición El tipo de creación de particiones que se usará: partición ID o partición Key Obligatorio Key Key
Expresión de partición La expresión jq que se usará en el mensaje entrante para calcular la partición ID o la partición Key Obligatorio .topic .topic
Número de particiones El número de particiones en una canalización del procesador de datos. Obligatorio 2 2

El procesador de datos agrega metadatos adicionales al mensaje entrante. Consulte Introducción a la estructura de mensajes del procesador de datos para reconocer cómo especificar correctamente la expresión de creación de particiones que se ejecuta en el mensaje entrante. De manera predeterminada, la expresión de creación de particiones se establece en 0 con el Tipo de partición como ID para enviar todos los datos entrantes a una sola partición.

Para obtener recomendaciones y más información, consulte ¿Qué es la creación de particiones?.

Configuración de ejemplo

A continuación se muestra una configuración de ejemplo para la fase:

Parámetro Value
Nombre input data
Agente tls://aio-mq-dmqtt-frontend:8883
Autenticación Service Account Token (SAT)
Tema azure-iot-operations/data/opc-ua-connector-0/#
Formato de datos JSON

A continuación, esta configuración genera mensajes que tienen un aspecto similar al ejemplo siguiente:

{
    "Timestamp": "2023-08-10T00:54:58.6572007Z", 
    "MessageType": "ua-deltaframe",
    "payload": {
      "temperature": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
        "Value": 7109
      },
      "Tag 10": {
        "SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
        "Value": 7109
      }
    },
    "DataSetWriterName": "oven",
    "SequenceNumber": 4660
}