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

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 版本:

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

  • 2016-03-23 – 2016 年 3 月 23 日构建的 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]