通过 Amazon CloudWatch Events 获取延迟的数据通知 - Amazon IoT Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过 Amazon CloudWatch Events 获取延迟的数据通知

当您使用指定时间范围内的数据创建数据集内容时,某些数据可能无法及时到达以进行处理。要允许延迟,可以指定deltaTime对于的偏移量QueryFilter当您时创建数据集通过应用queryAction(SQL 查询)。Amazon IoT Analytics仍然处理在增量时间内到达的数据,并且您的数据集内容有时滞。延迟数据通知功能启用Amazon IoT Analytics通过发送通知Amazon CloudWatch Events当数据在增量时间之后到达时。

您可以使用Amazon IoT Analytics控制台,APIAmazon Command Line Interface(Amazon CLI),或者Amazon开发工具包以便为数据集指定晚期数据规则。

在Amazon IoT AnalyticsAPI,LateDataRuleConfiguration对象表示数据集的晚期数据规则设置。这个对象是DatasetCreateDatasetUpdateDatasetAPI 操作。

Parameters

当您为数据集创建延迟数据规则时Amazon IoT Analytics中,必须指定以下信息:

ruleConfiguration (LateDataRuleConfiguration)

包含延迟数据规则的配置信息的结构。

deltaTimeSessionWindowConfiguration

包含增量时间会话窗口的配置信息的结构。

DeltaTime指定时间间隔。您可以通过 DeltaTime 使用上次执行后到达数据存储的数据创建数据集内容。对于示例DeltaTime,请参阅创建具有增量时段的 SQL 数据集 (CLI).

timeoutInMinutes

一个时间间隔。您可以使用timeoutInMinutes以便Amazon IoT Analytics可以批量处理上次执行后生成的延迟数据通知。Amazon IoT Analytics一次向 CloudWatch Events 发送一批通知。

类型: 整数

有效范围:1-60

ruleName

延迟数据规则的名称。

类型: 字符串

重要

指定lateDataRules中,数据集必须使用DeltaTime筛选条件。

配置延迟数据规则(控制台)

以下过程说明如何在配置数据集的延迟数据规则:Amazon IoT Analytics控制台。

配置迟期数据规则

  1. 登录到 Amazon IoT Analytics 控制台

  2. 在导航窗格中,选择。数据集.

  3. 数据集中,选择目标数据集。

  4. 在导航窗格中,选择。详细信息.

  5. 增量时段部分,选择编辑.

  6. 配置数据选择过滤器中,执行以下操作:

    1. 适用于数据选择窗口,选择增量时间.

    2. 适用于Offset中,输入时间段,然后选择一个单位。

    3. 适用于时间戳表达中,输入表达式。这可以是时间戳字段的名称,或可以推断时间的 SQL 表达式,例如from_unixtime(时间).

      有关如何编写时间戳表达式的更多信息,请参阅日期与时间函数和运算符中的Presto 0.172 文档.

    4. 适用于延迟数据通知,选择处于活动状态.

    5. 适用于增量时间中,输入整数。有效范围为 1-60。

    6. 选择 Save(保存)。

    
      在中配置数据选择筛选器Amazon IoT Analytics控制台。

配置迟期数据规则 (CLI)

在Amazon IoT AnalyticsAPI,LateDataRuleConfiguration对象表示数据集的晚期数据规则设置。这个对象是Dataset与关联的对象CreateDatasetUpdateDataset. 您可以使用APIAmazon CLI,或者Amazon开发工具包以便为数据集指定晚期数据规则。以下示例使用 Amazon CLI。

要使用指定延迟数据规则创建数据集,请运行以下命令。该命令假定dataset.json文件位于当前目录中。

注意

您可以使用UpdateDatasetAPI 更新现有数据集。

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

这些区域有:dataset.json文件应包含以下内容:

  • Replacedemo_data使用目标数据集名称。

  • Replacedemo_data 存储使用目标数据存储名称。

  • Replacefrom_unixtime(时间)具有时间戳字段的名称或可推断时间的 SQL 表达式。

    有关如何编写时间戳表达式的更多信息,请参阅日期与时间函数和运算符中的Presto 0.172 文档.

  • Replace超时整数介于 1—60 之间。

  • Replacedemo_规则有任何名字。

{ "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" } ] }

订阅接收延迟数据通知

您可以在 CloudWatch Events 中创建规则,用于定义如何处理从发送的延迟数据通知Amazon IoT Analytics. 当 CloudWatch Events 收到通知时,它会调用规则中定义的指定目标操作。

创建 CloudWatch Events 规则的前提

在创建 CloudWatch Events 规则之前Amazon IoT Analytics中,您应该执行以下操作:

  • 熟悉 CloudWatch Events 中的事件、规则和目标。

  • 创建并配置目标由您的 CloudWatch 事件规则调用。规则可以调用许多类型的目标,例如:

    • Amazon Kinesis Streams

    • Amazon Lambda 函数

    • Amazon Simple Notification Service (Amazon SNS) 主题

    • Amazon Simple Queue Service (Amazon SQS) 队列

    您的 CloudWatch Event 规则以及关联的目标必须位于Amazon创建您的区域Amazon IoT Analytics资源的费用。有关更多信息,请参阅 。服务终端节点和配额中的Amazon一般参考.

有关更多信息,请参阅 。什么是 CloudWatch Events?Amazon CloudWatch Events 入门中的Amazon CloudWatch Events 用户指南.

延迟数据通知事件

延迟数据通知的事件采用以下格式。

{ "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 } }

创建 CloudWatch Event 规则以接收延迟的数据通知

以下过程说明如何创建发送规则:Amazon IoT Analytics延迟到 Amazon SQS 队列的数据通知。

要创建 CloudWatch Events 规则

  1. 登录到Amazon CloudWatch 控制台.

  2. 在导航窗格中的事件下,选择规则

  3. 在存储库的Rule页面上,选择创建规则.

  4. 事件源,选择事件模式.

  5. 按服务构建事件模式以匹配事件部分中,执行以下操作:

    1. 适用于服务名称,选择IoT Analytics

    2. 适用于事件类型,选择IoT Analytics 数据集生命周期通.

    3. 选择特定数据集名称,然后输入目标数据集的名称。

  6. 目标,选择添加目标 *.

  7. 选择SQS 队列,然后执行以下操作:

    1. 适用于队列 *中,选择目标队列。

  8. 选择 Configure details (配置详细信息)

  9. 在存储库的步骤 2: 配置规则详细信息页面上,输入名称和描述。

  10. 选择 Create rule (创建规则)