Esecuzione di query sui messaggi di notifica delle proprietà degli asset - AWS IoT SiteWise

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione di query sui messaggi di notifica delle proprietà degli asset

Per interrogare le notifiche sulle proprietà degli asset, crea AWS IoT Core regole costituite da istruzioni SQL.

AWS IoT SiteWise pubblica gli aggiornamenti dei dati delle proprietà degli asset su AWS IoT Core nel seguente formato.

{ "type": "PropertyValueUpdate", "payload": { "assetId": "String", "propertyId": "String", "values": [ { "timestamp": { "timeInSeconds": Number, "offsetInNanos": Number }, "quality": "String", "value": { "booleanValue": Boolean, "doubleValue": Number, "integerValue": Number, "stringValue": "String" } } ] } }

Ogni struttura nell'valueselenco è una struttura timestamp-quality-value (TQV).

  • timestamp contiene l'orario UTC (epoca (Unix epoch)) corrente in secondi, con offset in nanosecondi.

  • quality contiene una delle seguenti stringhe che indicano la qualità del punto dati:

    • GOOD— I dati non sono interessati da alcun problema.

    • BAD— I dati sono interessati da un problema come il guasto del sensore.

    • UNCERTAIN— I dati sono influenzati da un problema come l'imprecisione del sensore.

  • value contiene uno dei seguenti campi, a seconda del tipo di proprietà:

    • booleanValue

    • doubleValue

    • integerValue

    • stringValue

Per analizzare i valori al di fuori dell'array values, è necessario utilizzare query complesse su oggetti nidificati nelle istruzioni SQL delle regole. Per ulteriori informazioni, consultate la sezione Interrogazioni con oggetti annidati nella Guida per gli AWS IoT sviluppatori oppure consultate il Pubblicazione degli aggiornamenti dei valori delle proprietà su Amazon DynamoDB tutorial per un esempio specifico di analisi dei messaggi di notifica delle proprietà degli asset.

Esempio Query di esempio per estrarre l'array dei valori

Nell'istruzione seguente viene illustrato come eseguire una query sull'array dei valori delle proprietà aggiornati per una proprietà di tipo doppio specifica su tutti gli asset con tale proprietà.

SELECT (SELECT VALUE (value.doubleValue) FROM payload.values) AS windspeed FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'

L'istruzione della query della regola precedente restituisce i dati nel formato seguente.

{ "windspeed": [ 26.32020195042838, 26.282584572975477, 26.352566977372508, 26.283084346171442, 26.571883739599322, 26.60684140743005, 26.628738636715045, 26.273486932802125, 26.436379105473964, 26.600590095377303 ] }
Esempio Query di esempio per estrarre un singolo valore

Nell'istruzione seguente viene illustrato come eseguire una query del primo valore dall'array dei valori delle proprietà per una proprietà di tipo doppio specifica su tutti gli asset con tale proprietà.

SELECT get((SELECT VALUE (value.doubleValue) FROM payload.values), 0) AS windspeed FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'

L'istruzione della query della regola precedente restituisce i dati nel formato seguente.

{ "windspeed": 26.32020195042838 }
Importante

Questa istruzione di query regola ignora gli aggiornamenti di valore diversi dal primo in ogni batch. Ogni lotto può contenere fino a 10 valori. Se è necessario includere i valori rimanenti, è necessario impostare una soluzione più complessa per l'output dei valori delle proprietà delle risorse ad altri servizi. Ad esempio, potete impostare una regola con un' AWS Lambda azione per ripubblicare ogni valore dell'array su un altro argomento e impostare un'altra regola per interrogare quell'argomento e pubblicare ogni valore nell'azione della regola desiderata.