Tutorial sulle espressioni di 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 di formule

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

Usare le stringhe nelle formule

È possibile utilizzare le stringhe nelle espressioni delle formule. È inoltre possibile inserire stringhe da variabili che fanno riferimento alle proprietà degli attributi e delle misurazioni.

Importante

Le espressioni delle formule 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 delle formule che è possibile utilizzare per operare sulle stringhe:

Filtraggio dei 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 scartare 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 verifichi se una condizione è soddisfatta e la restituisca none come result_if_false valore result_if_true or.

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

Prendiamo in considerazione uno scenario in cui si esegue temp_c una misurazione che fornisce la temperatura (in gradi Celsius) dell'acqua in una macchina. Puoi definire la seguente trasformazione per filtrare i punti dati in cui l'acqua non bolle:

  • Trasforma: 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.

Conteggio dei 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 utilizza 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: contare il numero di punti dati in cui l'acqua è in ebollizione.

Prendiamo in considerazione uno scenario in cui si esegue temp_c una misurazione che fornisce la temperatura (in gradi Celsius) dell'acqua in una macchina. È 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 risalenti fino a 7 giorni fa. 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 proprietà che immettono dati tardivi, utilizza l'espressione della formula corrente di ogni 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 del 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 il guasto del sensore.

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

AWS IoT SiteWise utilizza solo dati GOOD di qualità quando calcola trasformazioni e metriche. AWS IoT SiteWise restituisce solo dati di GOOD qualità per calcoli di successo. Se un calcolo non ha esito positivo, AWS IoT SiteWise non emette 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 dati da AWS IoT SiteWise.

Valori indefiniti, infiniti e di overflow

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

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

Esempio Esempi

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

  • 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 è inferiore a300.