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

¿Qué es AWS IoT Analytics?

AWS IoT Analytics le permite 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 permite realizar la exploración de datos avanzada a través de la integración con Jupyter Notebooks y la visualización de datos a través de la integración con Amazon QuickSight.

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 automatiza los pasos necesarios para analizar datos desde dispositivos de IoT. AWS IoT Analytics 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 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".

¿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 preguntas como la distancia promedio que recorre una flota de vehículos conectados o cuántas puertas están cerradas con llave 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 admite además los análisis de series temporales que permiten analizar el rendimiento de los dispositivos a lo largo del tiempo y saber 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.

Almacenamiento de datos optimizado para IoT

AWS IoT Analytics almacena los datos de los dispositivos procesados en un almacén de datos de serie temporal que está optimizado para proporcionar tiempos de respuesta rápidos a consultas de IoT que normalmente incluyen el tiempo como criterio. 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

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.

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 se producirán 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.

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.

Almacenamiento
  • 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 IoT para su análisis. Es posible administrar permisos de acceso, implementar políticas de retención de datos y exportar los datos a puntos de acceso externos.

  • Almacenamiento de datos procesados y sin procesar: AWS IoT Analytics almacena los datos procesados. También almacena automáticamente los datos adquiridos sin procesar para poder hacerlo posteriormente.

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.

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. 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.

Cómo se usa AWS IoT Analytics

Componentes y conceptos de AWS IoT Analytics

Canal

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.

Canalización

Una canalización consume mensajes de uno o varios canales 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

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.

Conjunto de datos

Los datos de un almacén de datos se recuperan creando un conjunto de datos. 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.

Conjunto de datos 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

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, generará y, a continuación, guardará los resultados de las herramientas de análisis.

Desencadenador

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 de Docker

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

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). 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.

Acceso a AWS IoT Analytics

Como parte de AWS IoT, AWS IoT Analytics proporciona las siguientes interfaces para interactuar con los dispositivos y 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 acerca de los comandos para AWS IoT, consulte iot en la Referencia de la 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 acerca de las acciones de la API para AWS IoT, consulte las 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.

Restricciones de carga del mensaje de AWS IoT Analytics

Los nombres de los campos de las cargas de mensajes (datos) que se envían a AWS IoT Analytics:

  • Solo deben contener caracteres alfanuméricos y guiones bajos (_); no se permiten otros caracteres especiales.

  • Deben comenzar por un carácter alfabético o un carácter de subrayado (_).

  • No pueden contener guiones (-).

  • En términos de expresión regular: "^[A-Za-z_]([A-Za-z0-9]*|[A-Za-z0-9][A-Za-z0-9_]*)$".

  • No pueden tener más de 255 caracteres.

  • No distinguen entre mayúsculas y minúsculas. (Los campos denominados "foo" y "FOO" en la misma carga se considerarán duplicados.)

Por ejemplo, {"temp_01": 29} o {"_temp_01": 29} son válidos, pero {"temp-01": 29}, {"01_temp": 29} o {"__temp_01": 29} no son válidos en cargas de mensajes.

Límites de los servicios de AWS IoT Analytics

API Descripción del límite ¿Ajustable?

SampleChannelData

1 transacción por segundo por canal

CreateDatasetContent

1 transacción por segundo por conjunto de datos

RunPipelineActivity

1 transacción por segundo

Otras API de administración

20 transacciones por segundo

BatchPutMessage

100 000 mensajes por segundo por canal; 100 mensajes por lote; 128 kb por mensaje

sí; sí; no

Recurso Descripción del límite ¿Ajustable?

canal

50 por cuenta

almacén de datos

25 por cuenta

canalización

100 por cuenta

actividades

25 por canalización

no

conjunto de datos

100 por cuenta

intervalo mínimo de actualización del conjunto de datos

1 hora

generación de contenido simultáneo de conjuntos de datos

2 conjuntos de datos simultáneamente

no

Acerca de Amazon Web Services

Amazon Web Services (AWS) es una colección de servicios de infraestructura digital que los desarrolladores pueden usar para desarrollar aplicaciones. Los servicios incluyen informática, almacenamiento, base de datos y sincronización de aplicaciones (mensajería y puesta en cola).

AWS usa un modelo de servicio de pago por uso. Solo se le cobrará por los servicios que usted (o su aplicación) utilicen. Asimismo, para que AWS sea útil como plataforma para prototipado y experimentación, AWS ofrece una capa de uso gratuita, en la que los servicios son gratuitos por debajo de un determinado nivel de uso. Para obtener más información sobre los costos de AWS y la capa de uso gratuita, consulte el tema relacionado con la realización de pruebas de AWS en la capa de uso gratuita.

Si no dispone de una cuenta de AWS, vaya a aws.amazon.com y elija Crear una cuenta de AWS.