SQL 版本 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

SQL 版本

Amazon IoT 规则引擎使用类似 SQL 的语法从 MQTT 消息中选择数据。SQL 语句基于 SQL 版本进行解释,该版本由描述此规则的 JSON 文档中的 awsIotSqlVersion 属性指定。有关 JSON 规则文档结构的更多信息,请参阅创建规则。该awsIotSqlVersion属性允许您指定要使用的 Amazon IoT SQL 规则引擎版本。当部署新版本时,您可以继续使用早期版本或更改规则以使用新版本。您当前的规则将继续使用创建时所用的版本。

以下 JSON 示例介绍了如何使用 awsIotSqlVersion 属性指定 SQL 版本:

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "republish": { "topic": "my-mqtt-topic", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } }] }

Amazon IoT 目前支持以下 SQL 版本:

  • 2016-03-23 – 2016 年 3 月 23 日构建的 SQL 版本(建议)。

  • 2015-10-08 – 2015 年 10 月 8 日构建的 SQL 原始版本。

  • beta – 最新的 SQL 测试版本。此版本可能会给您的规则带来突破性变化。

2016-03-23 SQL 规则引擎版本中的新增功能

  • 针对选择嵌套 JSON 对象的修复程序。

  • 针对阵列查询的修复程序。

  • 对象内查询支持。有关更多信息,请参阅嵌套对象查询

  • 支持将阵列作为顶级对象输出。

  • 添加可应用于 JSON 和非 JSON 格式数据的 encode(value, encodingScheme) 函数。有关更多信息,请参阅编码函数

Array 作为顶级对象输出

此特征允许规则将阵列作为顶级对象返回。例如,给定了以下 MQTT 消息:

{ "a": {"b":"c"}, "arr":[1,2,3,4] }

以及以下规则:

SELECT VALUE arr FROM 'topic'

该规则生成以下输出。

[1,2,3,4]