Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
SELECT-Klausel
Die AWS IoT SELECT-Klausel entspricht im Wesentlichen der ANSI SQL SELECT-Klausel, mit einigen geringfügigen Unterschieden.
Die SELECT-Klausel unterstützt Datentypen, Operatoren, Funktionen, Literale, Case-Anweisungen, JSON-Erweiterungen, Ersetzungsvorlagen, Verschachtelte Objektabfragen und Binäre Nutzlasten.
Sie können die SELECT-Klausel verwenden, um Informationen aus eingehenden MQTT-Nachrichten zu extrahieren. Sie können SELECT *
auch zum Abrufen der gesamten Nutzlast einer eingehenden Nachricht verwenden. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL statement:SELECT * FROM 'topic/subtopic'
Outgoing payload:{"color":"red", "temperature":50}
Wenn die Nutzlast ein JSON-Objekt ist, können Sie auf Schlüssel im Objekt verweisen. die ausgehende Nutzlast enthält das Schlüssel-Wert-Paar. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL statement:SELECT color FROM 'topic/subtopic'
Outgoing payload:{"color":"red"}
Sie können Schlüssel mithilfe des Schlüsselworts „AS“ umbenennen. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT color AS my_color FROM 'topic/subtopic'
Outgoing payload:{"my_color":"red"}
Sie können mehrere Elemente durch ein Komma getrennt auswählen. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT color as my_color, temperature as fahrenheit FROM 'topic/subtopic'
Outgoing payload:{"my_color":"red","fahrenheit":50}
Sie können mehrere Elemente auswählen, indem Sie „*“ einbeziehen, um die Elemente zur eingehenden Nutzlast hinzuzufügen. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
: {"color":"red", "temperature":50} SQL: SELECT *, 15 as speed FROM 'topic/subtopic' Outgoing payload: {"color":"red", "temperature":50, "speed":15}
Sie können das Schlüsselwort "VALUE"
verwenden, um ausgehende Nutzlasten zu erzeugen, die keine JSON-Objekte sind. Mit der SQL-Version 2015-10-08
können Sie nur ein Element auswählen. Mit der SQL-Version 2016-03-23
oder höher können Sie auch ein Array auswählen, das als Objekt der obersten Ebene ausgegeben werden soll.
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT VALUE color FROM 'topic/subtopic'
Outgoing payload:"red"
Mit der Syntax '.'
können Sie verschachtelte JSON-Objekte in der eingehenden Nutzlast analysieren. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
:{"color":{"red":255,"green":0,"blue":0}, "temperature":50}
SQL:SELECT color.red as red_value FROM 'topic/subtopic'
Outgoing payload:{"red_value":255}
Informationen über die Verwendung von JSON-Objekt- und Eigenschaftsnamen, die reservierte Zeichen wie Zahlen oder den Bindestrich (Minuszeichen) enthalten, unter JSON-Erweiterungen
Mit Funktionen (siehe Funktionen) können Sie die eingehende Nutzlast umwandeln. Sie können Klammern zum Gruppieren verwenden. Beispielsweise:
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT (temperature - 32) * 5 / 9 AS celsius, upper(color) as my_color FROM 'topic/subtopic'
Outgoing payload:{"celsius":10,"my_color":"RED"}