Obtención de notificaciones de datos atrasados a través de Eventos de Amazon CloudWatch - AWS IoT Analytics

Para obtener capacidades similares a AWS IoT Analytics, explore Amazon Kinesis, Amazon S3 y Amazon Athena. Estos servicios proporcionan escalabilidad y flexibilidad adicionales para cumplir con sus requisitos de análisis en constante evolución. Descubra cómo hacerlo aquí.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Obtención de notificaciones de datos atrasados a través de Eventos de Amazon CloudWatch

Al crear contenidos de conjuntos de datos con datos de mensajes de un periodo de tiempo determinado, es posible que algunos de estos datos no lleguen a tiempo para ser procesados. Para permitir un retraso, puede especificar un desplazamiento de deltaTime para QueryFilter cuando cree un conjunto de datos mediante la aplicación de una queryAction (una consulta SQL). AWS IoT Analytics sigue procesando los datos que llegan dentro del tiempo delta y el contenido del conjunto de datos tiene un desfase temporal. La característica de notificación de datos atrasados permite a AWS IoT Analytics enviar notificaciones a través de Eventos de Amazon CloudWatch cuando los datos llegan después del tiempo delta.

Puede usar la consola de AWS IoT Analytics, la API, AWS Command Line Interface (AWS CLI) o el SDK de AWS para especificar las reglas de datos atrasados para un conjunto de datos.

En la API de AWS IoT Analytics, el objeto LateDataRuleConfiguration representa la configuración de las reglas de datos atrasados de un conjunto de datos. Este objeto forma parte del objeto Dataset asociado a las operaciones CreateDataset y UpdateDataset de la API.

Parámetros

Cuando cree una regla de datos tardíos para un conjunto de datos con AWS IoT Analytics, debe especificar la siguiente información:

ruleConfiguration (LateDataRuleConfiguration)

Una estructura que contiene la información de configuración de una regla de datos tardíos.

deltaTimeSessionWindowConfiguration

Una estructura que contiene la información de configuración de una ventana de sesión de tiempo delta.

DeltaTime (Tiempo delta) especifica un intervalo de tiempo. Puede utilizar DeltaTime para crear contenido de un conjunto de datos con los datos que hayan llegado al almacén de datos desde la última ejecución. Para ver un ejemplo de DeltaTime, consulte Creación de un conjunto de datos SQL con una ventana diferencial (CLI).

timeoutInMinutes

Un intervalo de tiempo. Puede utilizar timeoutInMinutes para que AWS IoT Analytics envíe por lotes las notificaciones de datos tardíos que se hayan generado desde la última ejecución. AWS IoT Analytics envía un lote de notificaciones a Eventos de CloudWatch al mismo tiempo.

Tipo: entero

Rango válido: 1-60

ruleName

El nombre de la regla de datos tardíos.

Tipo: String

importante

Para especificar lateDataRules, el conjunto de datos debe utilizar un filtro DeltaTime.

Configuración de las reglas de datos atrasados (consola)

En el siguiente procedimiento se explica cómo configurar la regla de datos atrasados de un conjunto de datos en la consola de AWS IoT Analytics.

Para configurar las reglas de datos atrasados
  1. Inicie sesión en la consola de AWS IoT Analytics.

  2. En el panel de navegación, seleccione Conjuntos de datos.

  3. En Conjuntos de datos, seleccione el conjunto de datos de destino.

  4. En el panel de navegación, seleccione Detalles.

  5. En la sección Ventana diferencial, seleccione Editar.

  6. En Configurar el filtro de selección de datos, haga lo siguiente:

    1. En la ventana de Selección de datos, seleccione Tiempo delta.

    2. En Desplazamiento, introduzca un período de tiempo y, a continuación, seleccione una unidad.

    3. En Expresión de marca de tiempo, introduzca una expresión. Puede ser el nombre de un campo de marca de tiempo o una expresión SQL que puede obtener la hora, como por ejemplo, from_unixtime(time).

      Para obtener más información sobre cómo escribir una expresión de marca de tiempo, consulte Funciones y operadores de fecha y hora, en la documentación de Presto 0.172.

    4. En Notificación de datos atrasados, seleccione Activo.

    5. En Tiempo diferencia, introduzca un número entero. El rango válido es de 1 a 60.

    6. Seleccione Save (Guardar).

    Configure el filtro de selección de datos en la consola de AWS IoT Analytics.

Configuración de reglas de datos atrasados (CLI)

En la API de AWS IoT Analytics, el objeto LateDataRuleConfiguration representa la configuración de las reglas de datos atrasados de un conjunto de datos. Este objeto forma parte del objeto Dataset asociado a CreateDataset y UpdateDataset. Puede usar la API, AWS CLI, o el SDK de AWS para especificar reglas de datos atrasados para un conjunto de datos. El siguiente ejemplo utiliza la AWS CLI.

Use el siguiente comando para crear un conjunto de datos atrasados específicos. El comando da por hecho que el archivo dataset.json está en el directorio actual.

nota

Puede usar la API UpdateDataset para actualizar un conjunto de datos existente.

aws iotanalytics create-dataset --cli-input-json file://dataset.json

El archivo dataset.json debe contener lo siguiente:

  • Sustituya demo_dataset por el nombre del conjunto de datos de destino.

  • Sustituya demo_datastore por el nombre del almacén de datos de destino.

  • Sustituya from_unixtime(time) por el nombre de un campo de marca de tiempo o una expresión SQL que pueda obtener la hora.

    Para obtener más información sobre cómo escribir una expresión de marca de tiempo, consulte Funciones y operadores de fecha y hora, en la documentación de Presto 0.172.

  • Sustituya tiemeout por un número entero comprendido entre 1 y 60.

  • Sustituya demo_rule por cualquier nombre.

{ "datasetName": "demo_dataset", "actions": [ { "actionName": "myDatasetAction", "queryAction": { "filters": [ { "deltaTime": { "offsetSeconds": -180, "timeExpression": "from_unixtime(time)" } } ], "sqlQuery": "SELECT * FROM demo_datastore" } } ], "retentionPeriod": { "unlimited": false, "numberOfDays": 90 }, "lateDataRules": [ { "ruleConfiguration": { "deltaTimeSessionWindowConfiguration": { "timeoutInMinutes": timeout } }, "ruleName": "demo_rule" } ] }

Suscripción para recibir notificaciones de datos atrasados

Puede crear reglas en Eventos de CloudWatchque que definan cómo procesar las notificaciones de datos atrasados enviadas desde AWS IoT Analytics. Cuando Eventos de CloudWatch recibe las notificaciones, invoca las acciones de destino especificadas y definidas en sus reglas.

Requisitos previos para crear las reglas de Eventos de CloudWatch

Antes de crear una regla de Eventos de CloudWatch para AWS IoT Analytics, debe hacer lo siguiente:

  • Familiarizarse con los eventos, las reglas y los destinos de Eventos de CloudWatch.

  • Cree y configure los destinos que las reglas de Eventos de CloudWatch han invocado. Las reglas pueden invocar muchos tipos de destinos, como los siguientes:

    • Amazon Kinesis Streams

    • Funciones de AWS Lambda

    • Temas de Amazon Simple Notification Service (Amazon SNS)

    • Colas de Amazon Simple Queue Service (Amazon SQS)

    La regla de Eventos de CloudWatch y los destinos asociados deben estar en la región de AWS en la que creó sus recursos de AWS IoT Analytics. Para obtener más información, consulte Puntos de enlace y cuotas en la Referencia general de AWS.

Para obtener más información, consulte ¿Qué es Eventos de Amazon CloudWatch? e Introducción a Eventos de Amazon CloudWatch en la Guía del usuario de Eventos de Amazon CloudWatch.

Evento de notificaciones de datos atrasados

El evento de notificaciones de datos atrasados utiliza el siguiente formato.

{ "version": "0", "id": "7f51dfa7-ffef-97a5-c625-abddbac5eadd", "detail-type": "IoT Analytics Dataset Lifecycle Notification", "source": "aws.iotanalytics", "account": "123456789012", "time": "2020-05-14T02:38:46Z", "region": "us-east-2", "resources": ["arn:aws:iotanalytics:us-east-2:123456789012:dataset/demo_dataset"], "detail": { "event-detail-version": "1.0", "dataset-name": "demo_dataset", "late-data-rule-name": "demo_rule", "version-ids": ["78244852-8737-4650-aa4d-3071a01338fa"], "message": null } }

Cree una regla de Eventos de CloudWatch para recibir notificaciones de datos atrasados.

En el siguiente procedimiento se explica cómo crear una regla que envíe notificaciones de datos atrasados de AWS IoT Analytics a una cola de Amazon SQS.

Para crear manualmente una regla de Eventos de CloudWatch
  1. Inicie sesión en la consola de Amazon CloudWatch.

  2. En el panel de navegación, en Events (Eventos), seleccione Rules (Reglas).

  3. En la página Reglas, seleccione Crear una regla.

  4. En Origen de eventos, seleccione Patrón de eventos.

  5. En la sección Crear patrón de eventos para buscar eventos coincidentes por servicio, haga lo siguiente:

    1. En Nombre del servicio, seleccione IoT Analytics

    2. En Tipo de evento, seleccione Notificación del ciclo de vida del conjunto de datos de IoT Analytics.

    3. Seleccione Nombre o nombres de conjuntos de datos específicos y, a continuación, introduzca el nombre del conjunto de datos de destino.

  6. En Destinos, seleccione Añadir objetivo*.

  7. Seleccione Cola SQS y, a continuación, haga lo siguiente:

    1. En Cola*, seleccione la cola de destino.

  8. Seleccione Configure details (Configurar detalles).

  9. En la página Paso 2: Configurar detalles de la regla, escriba el nombre y una descripción.

  10. Seleccione Create rule (Crear regla).