Azure Stream Analytics en IoT Edge

Azure Stream Analytics en IoT Edge permite a los desarrolladores implementar inteligencia analítica casi en tiempo real más próxima a los dispositivos IoT para que puedan desbloquear el valor total de los datos generados por los dispositivos. Azure Stream Analytics está diseñado con los objetivos de baja latencia, resiliencia, uso eficiente de ancho de banda y cumplimiento. Las empresas pueden implementar la lógica de control cerca de las operaciones industriales y complementar los análisis de macrodatos que se realizan en la nube.

Azure Stream Analytics en IoT Edge se ejecuta en el marco de Azure IoT Edge. Una vez que el trabajo se crea en Stream Analytics, puede implementarlo y administrarlo mediante IoT Hub.

Escenarios frecuentes

En esta sección se describen los escenarios comunes de Stream Analytics en IoT Edge. En el diagrama siguiente se muestra el flujo de datos entre los dispositivos de IoT y la nube de Azure.

High level diagram of IoT Edge

Control y comando de baja latencia

Los sistemas de seguridad en la fabricación deben responder a los datos operativos con una latencia muy baja. Con Stream Analytics en IoT Edge, puede analizar los datos de los sensores casi en tiempo real y emitir comandos cuando detecte anomalías para detener una máquina o desencadenar alertas.

Conectividad limitada a la nube

Los sistemas críticos, como un equipo de minería remoto, buques conectados o las perforaciones petrolíferas en mar abierto necesitan analizar y reaccionar ante los datos, incluso cuando la conectividad a la nube sea intermitente. Con Stream Analytics, la lógica de streaming funciona independientemente de la conectividad de red y puede elegir lo que envía a la nube para su posterior procesamiento o almacenamiento.

Ancho de banda limitado

El volumen de datos que generan los motores de jet o los automóviles conectados puede ser tan grande que los datos se deben filtrar o procesar con anterioridad antes de enviarlos a la nube. Mediante Azure Stream Analytics puede filtrar o agregar los datos que hay que enviar a la nube.

Cumplimiento

El cumplimiento de las normas puede requerir que se agreguen algunos datos o que se oculte su identidad localmente antes de enviarlos a la nube.

Trabajos de Edge en Azure Stream Analytics

Los trabajos de Stream Analytics en Edge se ejecutan en contenedores implementados en dispositivos de Azure IoT Edge. Los trabajos en Edge constan de dos partes:

  • Una parte en la nube que es responsable de la definición del trabajo: los usuarios definen las entradas, la salida, la consulta y otros valores, como los eventos fuera de servicio, en la nube.

  • Un módulo que se ejecuta en dispositivos IoT. El módulo contiene el motor de Stream Analytics y recibe la definición del trabajo de la nube.

Stream Analytics usa IoT Hub para implementar los trabajos perimetrales en los dispositivos. Para más información, consulte Implementación de IoT Edge.

Azure Stream Analytics Edge job

Limitaciones de los trabajos en Edge

El objetivo es tener paridad entre los trabajos de IoT Edge y los trabajos en la nube. La mayoría de las características del lenguaje de consulta SQL se admiten tanto en el borde como en la nube. Sin embargo, las siguientes características aún no se admiten en los trabajos perimetrales:

  • Funciones definidas por el usuario (UDF) en JavaScript. Las UDF están disponibles en C# para trabajos de IoT Edge (versión preliminar).
  • Agregados definidos por el usuario (UDA).
  • Funciones de Azure Machine Learning.
  • Formato AVRO para la entrada y salida. En este momento solo se admiten CSV y JSON.
  • Los siguientes operadores de SQL:
    • PARTITION BY
    • GetMetadataPropertyValue
  • Directiva de llegada tardía

Requisitos de runtime y hardware

Para ejecutar Stream Analytics en IoT Edge, se necesitan dispositivos que puedan ejecutar Azure IoT Edge.

Stream Analytics y Azure IoT Edge usan contenedores de Docker para proporcionar una solución portátil que se ejecuta en varios sistemas operativos host (Windows y Linux).

Stream Analytics en IoT Edge está disponible en forma de imágenes de Windows y Linux, que se ejecutan en arquitecturas x86-64 o ARM (Advanced RISC Machines).

Entrada y salida

Los trabajos de Edge de Stream Analytics pueden obtener entradas y salidas de otros módulos que se ejecutan en dispositivos de IoT Edge. Para conectarse a determinados módulos, y desde ellos, puede establecer la configuración de enrutamiento en el momento de la implementación. Se puede encontrar más información en la documentación de composición del módulo de IoT Edge.

En las entradas y salidas, se admiten los formatos CSV y JSON.

Por cada flujo de entrada y salida que se crea en un trabajo de Stream Analytics, se crea un punto de conexión correspondiente en el módulo implementado. Estos puntos de conexión se pueden utilizar en las rutas de la implementación.

Los tipos de entrada de secuencia admitidos son:

  • Centro de Microsoft Edge
  • Centro de eventos
  • IoT Hub

Los tipos de salida de secuencia que se admiten son:

  • Centro de Microsoft Edge
  • SQL Database
  • Centro de eventos
  • Blob Storage/ADLS Gen2

La entrada de referencia admite el tipo de archivo de referencia. Se puede llegar a otras salidas mediante un trabajo de nube de nivel inferior. Por ejemplo, un trabajo de Stream Analytics hospedado en Edge envía una salida al Centro de Microsoft Edge, el cual puede enviar luego una salida a IoT Hub. Puede usar un segundo trabajo de Azure Stream Analytics hospedado en la nube con entrada desde IoT Hub y salida a Power BI u otro tipo de salida.

Licencia y avisos de terceros

Información de la imagen del módulo de Azure Stream Analytics

Esta información de versión se actualizó por última vez el 21 de septiembre de 2020:

  • Imagen: mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-amd64

    • imagen base: mcr.microsoft.com/dotnet/core/runtime:2.1.13-alpine
    • plataforma:
      • arquitectura: amd64
      • so: linux
  • Imagen: mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-arm32v7

    • imagen base: mcr.microsoft.com/dotnet/core/runtime:2.1.13-bionic-arm32v7
    • plataforma:
      • arquitectura: arm
      • so: linux
  • Imagen: mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-arm64

    • imagen base: mcr.microsoft.com/dotnet/core/runtime:3.0-bionic-arm64v8
    • plataforma:
      • arquitectura: arm64
      • so: linux

Obtener ayuda

Para más ayuda, pruebe la Página de preguntas y respuestas de Microsoft sobre Azure Stream Analytics.

Pasos siguientes