AWS IoT Analytics
Guía del usuario de AWS IoT Analytics

¿Qué es AWS IoT Analytics?

AWS IoT Analytics automatiza los pasos necesarios para analizar datos desde dispositivos de IoT. Además, filtra, transforma y enriquece datos de IoT antes de almacenarlos en un almacén de datos de series temporales para su análisis. Puede configurar el servicio para recopilar solo los datos que necesite de sus dispositivos, aplicar transformaciones matemáticas a los datos para procesarlos y enriquecerlos con metadatos específicos del dispositivo, como el tipo de dispositivo y la ubicación, antes de almacenarlos. A continuación, puede analizar los datos ejecutando consultas mediante el motor de consultas SQL integrado, o realizar inferencia de aprendizaje automático y análisis más complejos. AWS IoT Analytics permite la exploración de datos avanzada a través de la integración con blocs de notas de Jupyter. También permite la visualización de datos a través de la integración con Amazon QuickSight. (Amazon QuickSight está disponible en estas regiones).

Las herramientas tradicionales de análisis e inteligencia empresarial están diseñadas para procesar datos estructurados. Los datos de IoT suelen proceder de dispositivos que graban procesos con ruido (tales como temperatura, movimiento o sonido). Como consecuencia, los datos de estos dispositivos pueden tener con frecuencia discontinuidades notables, mensajes dañados y lecturas falsas que se deben limpiar antes de poder llevar a cabo un análisis. Además, los datos de IoT suelen ser significativos solo en el contexto de otros datos de fuentes externas. AWS IoT Analytics le permite solucionar estos problemas y recopilar grandes cantidades de datos de dispositivos, procesar mensajes y almacenarlos. A continuación, puede consultar los datos y ejecutar análisis sofisticados en ellos. AWS IoT Analytics incluye modelos predefinidos para casos de uso comunes de IoT, de modo que puede responder a preguntas como qué dispositivos están a punto de dar error o qué clientes corren riesgo de abandonar sus dispositivos "llevables" o "ponibles".

Cómo se usa AWS IoT Analytics

Características clave

Recopilación
  • Integración con AWS IoT Core: AWS IoT Analytics está plenamente integrado con AWS IoT Core, de modo que puede procesar mensajes de los dispositivos conectados a medida que se reciben.

  • Uso de una API de procesamiento por lotes para agregar datos de cualquier origen: AWS IoT Analytics puede recibir datos de cualquier origen a través de HTTP. Esto significa que cualquier dispositivo o servicio que esté conectado a Internet puede enviar datos a AWS IoT Analytics. (BatchPutMessage)

  • Recopilación exclusiva de los datos que se desean almacenar y analizar: puede utilizar la consola de AWS IoT Analytics para configurar AWS IoT Analytics para recibir mensajes desde dispositivos a través de filtros de tema MQTT en diversos formatos y frecuencias. AWS IoT Analytics comprueba que los datos están dentro de los parámetros específicos que se han definido y crea canales. A continuación, el servicio dirige los canales a las canalizaciones adecuadas para realizar el procesamiento, la transformación y el enriquecimiento de los mensajes.

Procesamiento
  • Limpieza y filtrado: AWS IoT Analytics le permite definir funciones de AWS Lambda que se activan cuando AWS IoT Analytics detecta datos que faltan, de modo que se puede ejecutar código para estimar y cubrir las discontinuidades. También se pueden definir filtros de máximo/mínimo y umbrales de percentil para quitar casos atípicos en los datos.

  • Transformación: AWS IoT Analytics puede transformar mensajes utilizando la lógica matemática o condicional que se defina, de modo que puede realizar cálculos comunes tales como conversión de grados Celsius a Fahrenheit.

  • Enriquecimiento: AWS IoT Analytics puede enriquecer los datos con orígenes de datos externos como, por ejemplo, información de previsión meteorológica y, a continuación, dirigir los datos al almacén de datos de AWS IoT Analytics.

Almacenar
  • Almacén de datos de series temporales: AWS IoT Analytics almacena los datos de los dispositivos en un almacén de datos de series temporales optimizado para realizar un análisis y una recuperación más rápidos. También puede administrar permisos de acceso, implementar políticas de retención de datos y exportar los datos a puntos de acceso externos.

  • Almacenar datos procesados y sin procesar: AWS IoT Analytics almacena los datos procesados y además almacena automáticamente los datos sin procesar adquiridos para que pueda procesarlos más adelante.

Análisis
  • Ejecución de consultas SQL ad hoc: AWS IoT Analytics proporciona un motor de consultas SQL que permite ejecutar consultas ad hoc y obtener los resultados rápidamente. Por ejemplo, es posible que desee ejecutar una consulta rápida para descubrir el número de usuarios activos para cada dispositivo de la flota.

  • Análisis de series temporales: AWS IoT Analytics admite los análisis de series temporales que permiten analizar el rendimiento de los dispositivos a lo largo del tiempo y entender cómo y dónde se están utilizando, monitorizar continuamente los datos de los dispositivos para predecir problemas de mantenimiento y monitorizar sensores para predecir y reaccionar ante condiciones ambientales.

  • Blocs de notas alojados para realizar operaciones sofisticadas de análisis y aprendizaje automático: AWS IoT Analytics incluye soporte para blocs de notas alojados en Jupyter Notebooks para realizar análisis estadísticos y aprendizaje automático. El servicio incluye un conjunto de plantillas de bloc de notas prediseñadas que contienen visualizaciones y modelos de aprendizaje automático creados por AWS para ayudarle en casos de uso de IoT relacionados con perfiles de averías de dispositivos, previsión de eventos de bajo uso que podrían indicar que el cliente abandonará el producto o segmentación de dispositivos por niveles de uso de los clientes (por ejemplo, usuarios intensivos, usuarios de fin de semana) o estado del dispositivo. Después de crear un bloc de notas, puede incluirlo en contenedores y ejecutarlo según una programación que especifique (Automatización del flujo de trabajo).

  • Predicción: es posible realizar una clasificación estadística a través de un método denominado regresión logística. Además puede utilizar la Memoria a largo-corto plazo (LSTM), que es una potente técnica de redes neuronales para predecir el resultado o estado de un proceso que varía a lo largo del tiempo. Las plantillas de bloc de notas prediseñadas admiten además el algoritmo de clústering de K-means para segmentación de dispositivos, que agrupa los dispositivos en grupos de dispositivos similares. Estas plantillas se utilizan normalmente para realizar perfiles de estado de dispositivos como, por ejemplo, equipos de sistemas de aire acondicionado en una fábrica de chocolate o el desgaste de las palas de una turbina eólica. Además, estas plantillas de bloc de notas pueden incluirse en contenedores y ejecutarse según una programación.

Compilación/visualización
  • Integración de QuickSight: AWS IoT Analytics proporciona un conector para Amazon QuickSight que permite visualizar los conjuntos de datos en un panel de QuickSight.

  • Integración de la consola: además, puede visualizar los resultados o su análisis ad-hoc en los blocs de notas de Jupyter integrados en la consola de AWS IoT Analytics.

Componentes y conceptos de AWS IoT Analytics

Canal: recopilación de datos

Un canal recopila datos desde un tema MQTT y archiva los mensajes sin procesar antes de publicar los datos en una canalización. También puede enviar mensajes a un canal directamente con el comando BatchPutMessage. Los mensajes sin procesar se almacenan en un bucket de Amazon S3 administrado por IoT Analytics o en uno administrado por usted.

Canalización: procesamiento de datos

Una canalización consume mensajes de un canal y permite procesar los mensajes antes de guardarlos en un almacén de datos. Las etapas de procesamiento, denominadas actividades (actividades de canalización), realizan transformaciones en los mensajes, tales como eliminar, cambiar el nombre o añadir atributos al mensaje, filtrar mensajes en función de los valores de los atributos, ejecutar funciones de Lambda con los mensajes para el procesamiento avanzado o realizar transformaciones matemáticas para normalizar los datos de los dispositivos.

Almacén de datos: almacenamiento de datos

Las canalizaciones almacenan sus mensajes procesados en un almacén de datos. Un almacén de datos no es una base de datos, sino un repositorio de mensajes que se puede escalar y consultar. Puede tener varios almacenes de datos para mensajes procedentes de distintos dispositivos o ubicaciones, o para mensajes filtrados mediante diferentes atributos, en función de la configuración de la canalización y de los requisitos. Como ocurre con los mensajes de canal sin procesar, los mensajes procesados de un almacén de datos se almacenan en un bucket de Amazon S3 administrado por IoT Analytics o en uno administrado por usted.

Conjunto de datos: recuperación de datos para el análisis

Los datos de un almacén de datos se recuperan creando un conjunto de datos. AWS IoT Analytics le permite crear un conjunto de datos SQL o un conjunto de datos de contenedores.

Cuando disponga de un conjunto de datos, puede explorar y obtener información sobre los datos a través de la integración con Amazon QuickSight. También puede realizar funciones de análisis más avanzadas a través de la integración con Jupyter Notebooks. Jupyter Notebooks proporciona potentes herramientas de ciencia de datos que pueden llevar a cabo aprendizaje automático y una amplia gama de análisis estadísticos. Para obtener más información, consulte Plantillas de bloc de notas.

Puede enviar contenido de un conjunto de datos a un bucket de Amazon Simple Storage Service (S3), lo que permite la integración con los lagos de datos existentes o el acceso desde aplicaciones internas y herramientas de visualización. También puede enviar contenido del conjunto de datos como una entrada a AWS IoT Events, un servicio que le permite monitorizar dispositivos o procesos para ver si se producen errores o cambios en la operación, y para activar acciones adicionales cuando se producen esos eventos.

Conjunto de datos SQL: recuperación de datos con acciones SQL

Un conjunto de datos SQL es algo parecido a una vista materializada de una base de datos SQL. De hecho, los conjuntos de datos SQL se crean aplicando una acción SQL. Los conjuntos de datos SQL se pueden generar automáticamente de forma periódica especificando un desencadenador.

Conjunto de datos de contenedores: combinación de herramientas de recuperación y análisis de datos

Un conjunto de datos de contenedores le permite ejecutar automáticamente herramientas de análisis y generar resultados (Automatización del flujo de trabajo). Aúna un conjunto de datos SQL como entrada, un contenedor de Docker con las herramientas de análisis y los archivos de biblioteca necesarios, variables de entrada y salida y un desencadenador de programación opcional. Las variables de entrada y salida indican a la imagen ejecutable dónde obtener los datos y almacenar los resultados. El desencadenador puede ejecutar el análisis cuando un conjunto de datos SQL termina de crear su contenido o de acuerdo con una expresión de programación de tiempo. Un conjunto de datos de contenedores se ejecutará automáticamente, y generará y, a continuación, guardará los resultados de las herramientas de análisis.

Desencadenador: automatización de la recuperación de datos

Puede crear automáticamente un conjunto de datos especificando un desencadenador. El desencadenador puede ser un intervalo de tiempo (por ejemplo, crear este conjunto de datos cada dos horas) o el momento en que se crea el contenido de otro conjunto de datos (por ejemplo, crear este conjunto de datos cuando "myOtherDataset" termine de crear su contenido). O bien, puede generar el contenido del conjunto de datos manualmente llamando a CreateDatasetContent.

Contenedor Docker: todo lo necesario para la ejecución

Según www.docker.com, "un contenedor es un paquete ejecutable independiente y ligero de un componente de software que incluye todo lo necesario para ejecutarse: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuración". Puede crear su propio contenedor de Docker para empaquetar las herramientas de análisis o utilizar las opciones que proporciona Amazon SageMaker. Puede almacenar un contenedor en un registro de Amazon ECR que especifique de forma que esté disponible para su instalación en la plataforma deseada. El tema Inclusión de un bloc de notas en contenedores describe cómo incluir un bloc de notas en contenedores. Los contenedores de Docker son capaces de ejecutar el código de análisis personalizado preparado con Matlab, Octave, Wise.io, SPSS, R, Fortran, Python, Scala, Java, C++, etc.

Ventanas diferenciales: eliminación de solapamientos de datos

Las ventanas diferenciales son una serie de intervalos de tiempo definidos por el usuario, no solapados y contiguos. Las ventanas diferenciales le permiten crear el contenido del conjunto de datos y realizar análisis a partir de los datos nuevos que han llegado al almacén de datos desde el último análisis. Para crear una ventana diferencial, establezca el valor deltaTime en la parte filters de una queryAction de un conjunto de datos (CreateDataset). Normalmente, querrá crear el contenido del conjunto de datos automáticamente mediante la configuración de un desencadenador de intervalo de tiempo (triggersschedule:expression). Básicamente, esto le permite filtrar los mensajes que han llegado durante un periodo de tiempo específico, para que los datos contenidos en mensajes de periodos de tiempo anteriores no se cuenten dos veces. Consulte Ejemplo 6. Creación de un conjunto de datos SQL con una ventana diferencial (CLI):.

Acceso a AWS IoT Analytics

Como parte de AWS IoT, AWS IoT Analytics proporciona las siguientes interfaces para permitir a sus dispositivos generar datos y a sus aplicaciones interactuar con los datos que generan.

Interfaz de línea de comandos de AWS (AWS CLI)

Ejecute comandos para AWS IoT Analytics en Windows, OS X y Linux. Estos comandos le permiten crear y administrar objetos, certificados, reglas y políticas. Para comenzar, consulte la Guía del usuario de la interfaz de línea de comandos de AWS. Para obtener más información sobre los comandos para AWS IoT, consulte iot en la Referencia de interfaz de línea de comandos de AWS.

importante

Utilice el comando aws iotanalytics para interactuar con AWS IoT Analytics utilizando la CLI. Utilice el comando aws iot para interactuar con otras partes del sistema de IoT utilizando la CLI.

API de AWS IoT

Cree sus aplicaciones IoT mediante solicitudes HTTP o HTTPS. Estas acciones de la API le permiten crear y administrar objetos, certificados, reglas y políticas. Para obtener más información sobre las acciones de la API para AWS IoT, consulte Acciones en la Referencia de la API de AWS IoT.

SDK de AWS

Cree sus aplicaciones de AWS IoT Analytics mediante API específicas de distintos lenguajes. Estos SDK encapsulan las API de HTTP/HTTPS y le permiten programar en cualquiera de los lenguajes admitidos. Para obtener más información, consulte SDK y herramientas de AWS.

SDK de dispositivos AWS IoT

Cree aplicaciones que se ejecutan en sus dispositivos para enviar mensajes a AWS IoT Analytics. Para obtener más información, consulte los SDK de AWS IoT.

Consola de AWS IoT Analytics

Desde la creación de los componentes hasta la visualización de los resultados, están disponibles en la consola de AWS IoT Analytics.

¿Por qué usar AWS IoT Analytics?

Beneficios

Ejecutar consultas en datos de IoT

Con AWS IoT Analytics, puede ejecutar consultas ad-hoc sencillas utilizando el motor de consultas SQL integrado de AWS IoT Analytics. El servicio le permite utilizar consultas SQL estándar para extraer datos desde el almacén de datos para responder a preguntas como la distancia media que recorre una flota de vehículos conectados o cuántas puertas están bloqueadas después de las 19:00 h en un edificio inteligente. Estas consultas se pueden reutilizar incluso si cambian los dispositivos conectados, el tamaño de la flota y los requisitos de análisis.

Ejecutar análisis de series temporales

AWS IoT Analytics también admite el análisis de serie temporal para que pueda analizar el rendimiento de los dispositivos a lo largo del tiempo y conocer cómo y dónde se utilizan. Le permite monitorear de forma continua los datos de los dispositivos para anticipar problemas de mantenimiento y supervisar los sensores para prever condiciones medioambientales y reaccionar en consecuencia.

Almacenamiento de datos optimizado para IoT

AWS IoT Analytics almacena los datos procesados del dispositivo en un almacén de datos de serie temporal optimizado para ofrecer tiempos de respuesta rápidos normalmente necesarios en consultas de IoT. Los datos sin procesar se almacenan automáticamente para su procesamiento posterior o para reprocesarlos para otro caso de uso.

Prepara los datos de IoT para su análisis

AWS IoT Analytics incluye técnicas de preparación de datos que le permiten preparar y procesar los datos para su análisis. AWS IoT Analytics está integrado con AWS IoT Core, por lo que resulta sencillo adquirir datos directamente de los dispositivo conectados. Puede limpiar lecturas falsas, cubrir discontinuidades de los datos y realizar transformaciones matemáticas de datos de mensajes. Conforme se adquieren los datos, AWS IoT Analytics puede procesarlos utilizando instrucciones condicionales, filtrar datos para recopilar solo los datos que se desean analizar, y enriquecerlos con información del registro de AWS IoT. También puede utilizar funciones de AWS Lambda para enriquecer los datos de los dispositivos de fuentes externas como Servicio Meteorológico, Mapas de HERE, Salesforce o Amazon DynamoDB.

Herramientas para aprendizaje automático

AWS IoT Analytics le permite aplicar aprendizaje automático a los datos de IoT con Jupyter Notebooks alojado. Puede conectar directamente los datos de IoT al bloc de notas y crear, entrenar y ejecutar modelos desde la consola de AWS IoT Analytics sin necesidad de administrar la infraestructura subyacente. Utilizando AWS IoT Analytics, puede aplicar algoritmos de aprendizaje automático a los datos de los dispositivos para producir una puntuación de estado para cada dispositivo de la flota. Después de crear un bloc de notas, puede incluirlo en contenedores y ejecutarlo según una programación que especifique (Automatización del flujo de trabajo).

Casos de uso

Mantenimiento predictivo

AWS IoT Analytics proporciona plantillas predefinidas para crear modelos de mantenimiento predictivo y aplicarlos a los dispositivos. Por ejemplo, es posible utilizar AWS IoT Analytics para predecir cuándo es probable que se produzcan averías en los sistemas de calefacción y ventilación en los vehículos de carga conectados, de modo que el vehículo se pueda redirigir para evitar daños en la carga. O bien, un fabricante de automóviles puede detectar qué clientes tienen gastadas las pastillas de freno y avisarles para que sus vehículos se sometan a revisión.

Reabastecimiento de suministros proactivo

AWS IoT Analytics le permite crear aplicaciones de IoT que pueden monitorizar inventarios en tiempo real. Por ejemplo, una compañía de alimentación y bebidas puede analizar los datos de las máquinas expendedoras de forma proactiva y realizar un pedido de mercancía cuando baje el nivel de existencias.

Puntuación de la eficiencia de los procesos

Con AWS IoT Analytics, puede crear aplicaciones que monitoricen constantemente la eficiencia de distintos procesos y tomen medidas para mejorar el proceso. Por ejemplo, una empresa minera puede mejorar la eficiencia de sus camiones de mineral maximizando la carga en cada viaje. Con AWS IoT Analytics, la empresa puede identificar la carga más eficiente para una ubicación o camión a lo largo del tiempo y, a continuación, comparar las diferencias respecto a la carga objetivo en tiempo real y planificar mejor las directrices de carga para mejorar la eficiencia.

Agricultura inteligente

AWS IoT Analytics puede enriquecer automáticamente datos de dispositivos de IoT con metadatos contextuales utilizando datos del registro de AWS IoT u orígenes de datos públicos, de modo que los análisis puedan tener en cuenta factores como la hora, la ubicación, la temperatura, la altitud y otras condiciones medioambientales. Con dicho análisis, es posible escribir modelos que generen acciones recomendadas que deben tomar los dispositivos en el campo. Por ejemplo, para determinar cuándo hay que regar, los sistemas de riego podrían enriquecer los datos del sensor de humedad con datos sobre precipitaciones, lo que permite un uso más eficiente del agua.