SQL 版本 - AWS IoT Core

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

SQL 版本

AWS IoT 规则引擎使用类似 SQL 的语法从 MQTT 消息中选择数据。SQL 语句基于 SQL 版本进行解释,该版本由描述此规则的 JSON 文档中的 awsIotSqlVersion 属性指定。有关 JSON 规则文档结构的更多信息,请参阅创建规则。该awsIotSqlVersion属性允许您指定要使用的 AWS 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" } }] }

AWS 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]