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

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

通过亚马逊 CloudWatch 活动获取延迟数据通知

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

您可以使用Amazon IoT Analytics控制台、APIAmazon Command Line Interface(Amazon CLI)AmazonSDK 为数据集指定后期数据规则。

在Amazon IoT Analytics API 中,该LateDataRuleConfiguration对象表示数据集的后期数据规则设置。此对象是与CreateDatasetUpdateDataset API 操作关联的Dataset对象的一部分。

参数

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

ruleConfiguration (LateDataRuleConfiguration)

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

deltaTimeSessionWindowConfiguration

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

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

timeoutInMinutes

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

类型:整数

有效范围:1-60

ruleName

延迟数据规则的名称。

类型:字符串

重要

要指定lateDataRules,数据集必须使用DeltaTime筛选器。

配置后期数据规则(控制台)

以下流程介绍了如何使用Amazon IoT Analytics控制台配置数据集的延迟数据规则。

配置后期数据规则
  1. 登录到 Amazon IoT Analytics 控制台

  2. 在导航窗格中,选择 Da service

  3. 在 “数据集” 下,选择目标数据组。

  4. 在导航窗格中,选择 Dev ics

  5. “增量” 窗口部分中,选择 “编辑”

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

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

    2. 对于 “偏移”,输入时间段,然后选择一个单位。

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

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

    4. 对于 “延迟数据通知”,选择 “有效”。

    5. 对于增量时间,输入一个整数。有效范围为 1-60。

    6. 选择保存

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

配置后期数据规则 (CLI)

在Amazon IoT Analytics API 中,该LateDataRuleConfiguration对象表示数据集的后期数据规则设置。此对象是与CreateDataset和关联的Dataset对象的一部分UpdateDataset。您可以使用 API Amazon CLI、或 AmazonSDK 为数据集指定延迟数据规则。以下示例使用 Amazon CLI。

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

注意

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

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

dataset.json文件应包含以下内容:

  • demo_dat aset 替换为目标数据集名称。

  • demo_datastor e 替换为目标数据存储名称。

  • 将 f rom_unixtime(时间)替换为时间戳字段的名称,或可以推断时间的 SQL 表达式。

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

  • 超时替换为 1—60 之间的整数。

  • demo_rule 替换为任何名称。

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

订阅接收延迟数据通知

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

创建Events CloudWatch 规则的先决条件

在为创建 E CloudWatch vents 规则之前Amazon IoT Analytics,您应执行以下操作:

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

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

    • Amazon Kinesis Streams

    • Amazon Lambda 函数

    • Amazon Simple Notification Service (Amazon SNS) 主题

    • Amazon Simple Queue Service (Amazon SQS) 队列

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

有关更多信息,请参阅什么是 CloudWatch 事件? 以及《亚马逊 CloudWatch 活动用户指南》中的 “亚马逊 CloudWatch 活动入门”。

延迟数据通知事件

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

{ "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 事件规则以接收延迟数据通知

以下流程介绍了如何创建向 Amazon SQS 队列发送Amazon IoT Analytics延迟数据通知的规则。

要创建 Ev CloudWatch ents 规则
  1. 登录亚马逊控制 CloudWatch台

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

  3. 规则页面上,选择创建规则

  4. 在 “事件源” 下,选择 “事件模式”。

  5. 在 B uild pervice pvice service servic e service pvice

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

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

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

  6. 在 “目标” 下,选择 “添加目标*”。

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

    1. 对于 Queue*,选择目标队列。

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

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

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