View a markdown version of this page

Tutorial sulle espressioni delle formule - 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à.

Tutorial sulle espressioni delle formule

Puoi seguire questi tutorial per utilizzare le espressioni delle formule in. AWS IoT SiteWise

Usare stringhe nelle formule

È possibile operare sulle stringhe contenute nelle espressioni delle formule. È inoltre possibile immettere stringhe da variabili che fanno riferimento alle proprietà degli attributi e delle misurazioni.

Importante

Le espressioni di formula possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la funzione jp per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta Valori indefiniti, infiniti e di overflow.

AWS IoT SiteWise fornisce le seguenti funzionalità di espressione della formula che è possibile utilizzare per operare sulle stringhe:

Filtra i punti dati

È possibile utilizzare la funzione if per filtrare i punti dati che non soddisfano una condizione. La if funzione valuta una condizione e restituisce valori true e false risultati diversi. È possibile utilizzare la costante none come output per un caso di una if funzione per eliminare il punto dati relativo a quel caso.

Per filtrare i punti dati che corrispondono a una condizione
  • Crea una trasformazione che utilizzi la if funzione per definire una condizione che controlli se una condizione è soddisfatta e la restituisca none come result_if_false valore result_if_true or.

Esempio Esempio: filtrare i punti dati in cui l'acqua non bolle

Si consideri uno scenario in cui si dispone di una misurazione che fornisce la temperatura (in gradi Celsius) dell'acqua in una macchina. temp_c È possibile definire la seguente trasformazione per filtrare i punti dati in cui l'acqua non bolle:

  • Trasformazione: boiling_temps = if(gte(temp_c, 100), temp_c, none) — Restituisce la temperatura se è maggiore o uguale a 100 gradi Celsius, altrimenti non restituisce alcun punto dati.

Conta i punti dati che corrispondono a una condizione

È possibile utilizzare le funzioni di confronto e sum () per contare il numero di punti dati per i quali una condizione è vera.

Per contare i punti dati che corrispondono a una condizione
  1. Crea una trasformazione che utilizzi una funzione di confronto per definire una condizione di filtro su un'altra proprietà.

  2. Creare un parametro che sommi i punti dati in cui tale condizione è soddisfatta.

Esempio Esempio: contare il numero di punti dati in cui l'acqua è in ebollizione.

Si consideri uno scenario in cui si dispone di una misurazione che fornisce la temperatura (in gradi Celsius) dell'acqua in una macchina. temp_c È possibile definire le seguenti proprietà di trasformazione e parametro per contare il numero di punti dati in cui l'acqua è in ebollizione:

  • Trasforma: is_boiling = gte(temp_c, 100) — Restituisce 1 se la temperatura è maggiore o uguale a 100 gradi Celsius, altrimenti restituisce. 0

  • Metrica: boiling_count = sum(is_boiling) — Restituisce il numero di punti dati in cui l'acqua bolle.

Dati tardivi nelle formule

AWS IoT SiteWise supporta l'inserimento tardivo di dati vecchi fino a 7 giorni. Quando AWS IoT SiteWise riceve dati in ritardo, ricalcola i valori esistenti per qualsiasi metrica che inserisce i dati in ritardo in una finestra precedente. Questi ricalcoli comportano costi di elaborazione dei dati.

Nota

Quando AWS IoT SiteWise calcola le proprietà che immettono dati in ritardo, utilizza l'espressione della formula corrente di ciascuna proprietà.

Dopo aver AWS IoT SiteWise ricalcolato una finestra precedente per una metrica, sostituisce il valore precedente per quella finestra. Se hai abilitato le notifiche per quella metrica, emette AWS IoT SiteWise anche una notifica relativa al valore della proprietà. Ciò significa che è possibile ricevere una nuova notifica di aggiornamento del valore della proprietà per la stessa proprietà e timestamp per cui è stata precedentemente ricevuta una notifica. Se le applicazioni o i data lake utilizzano notifiche sui valori delle proprietà, devi aggiornare il valore precedente con il nuovo valore in modo che i dati siano accurati.

Qualità dei dati nelle formule

In AWS IoT SiteWise, ogni punto dati ha un codice di qualità, che può essere uno dei seguenti:

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

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

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

AWS IoT SiteWise consuma solo dati GOOD di qualità quando calcola trasformazioni e metriche. AWS IoT SiteWise genera solo dati di GOOD qualità per calcoli di successo. Se un calcolo non ha esito positivo, AWS IoT SiteWise non restituisce un punto dati per quel calcolo. Ciò può verificarsi se un calcolo genera un valore indefinito, infinito o di overflow.

Per ulteriori informazioni su come eseguire query sui dati e filtrare in base alla qualità dei dati, vedere Interroga i dati da AWS IoT SiteWise.

Valori indefiniti, infiniti e di overflow

Alcune espressioni di formula (comex / 0,sqrt(-1), olog(0)) calcolano valori non definiti in un sistema numerico reale, infinito o al di fuori dell'intervallo supportato da. AWS IoT SiteWise Quando l'espressione di una proprietà dell'asset calcola un valore indefinito, infinito o overflow, AWS IoT SiteWise non restituisce un punto dati per quel calcolo.

AWS IoT SiteWise inoltre, non restituisce un punto dati se calcola un valore non numerico come risultato di un'espressione di formula. Ciò significa che se si definisce una formula che calcola una stringa, una matrice o la costante none, AWS IoT SiteWise non restituisce un punto dati per quel calcolo.

Esempio Esempi

Ciascuna delle seguenti espressioni di formula genera un valore che non AWS IoT SiteWise può essere rappresentato come numero. AWS IoT SiteWise non restituisce un punto dati quando calcola queste espressioni di formula.

  • x / 0non è definito.

  • log(0)non è definito.

  • sqrt(-1)non è definito in un sistema numerico reale.

  • "hello" + " world"è una stringa.

  • jp('{"values":[3,6,7]}', '$.values')è un array.

  • if(gte(temp, 300), temp, none)è none quando temp è minore di300.