Versiones de SQL - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Versiones de SQL

El motor de AWS IoT reglas utiliza una sintaxis similar a la de SQL para seleccionar los datos de los mensajes MQTT. Las instrucciones SQL se interpretan según la versión de SQL especificada en la propiedad awsIotSqlVersion de un documento JSON que describe la regla. Para obtener más información acerca de la estructura de los documentos de reglas JSON, consulte Creación de una regla. La awsIotSqlVersion propiedad le permite especificar qué versión del motor de reglas AWS IoT SQL desea utilizar. Cuando se implementa una nueva versión, puede continuar utilizando una versión anterior o cambiar la regla para utilizar la nueva versión. Las reglas actuales seguirán utilizando la versión con la que se crearon.

En el siguiente ejemplo de JSON se muestra cómo especificar la versión de SQL mediante la propiedad awsIotSqlVersion:

{ "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 actualmente admite las siguientes versiones de SQL:

  • 2016-03-23: la versión de SQL creada el 23/03/2016 (recomendada).

  • 2015-10-08: la versión de SQL original creada el 08/10/2015.

  • beta: la versión beta de SQL más reciente. Esta versión podría introducir cambios bruscos en sus reglas.

Novedades de la versión del motor de reglas SQL del 23/03/2016

  • Soluciones para seleccionar objetos JSON anidados.

  • Soluciones para consultas de matriz.

  • Compatibilidad con consultas dentro de objetos. Para obtener más información, consulte Consultas de objetos anidados.

  • Compatibilidad con la generación de una matriz como objeto de nivel superior.

  • Adición de la función encode(value, encodingScheme), que se puede aplicar en datos con formato JSON y no JSON. Para obtener más información, consulte la función de codificación.

Generación de Array como objeto de nivel superior

Esta característica permite que una regla devuelva una matriz como objeto de nivel superior. Por ejemplo, si se recibe el mensaje MQTT siguiente:

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

Y la regla siguiente:

SELECT VALUE arr FROM 'topic'

La regla generará la salida siguiente.

[1,2,3,4]