Interrogazione di dati aggregati - AWS IoT Core

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à.

Interrogazione di dati aggregati

AWS IoT fornisce quattro APIs (GetStatistics, GetCardinalityGetPercentiles, eGetBucketsAggregation) che consentono di cercare dati aggregati nel parco dispositivi.

Nota

Per problemi relativi ai valori mancanti o imprevisti per l'aggregazioneAPIs, leggi la guida alla risoluzione dei problemi di indicizzazione del parco veicoli.

GetStatistics

Il GetStatisticsAPIget-statisticsCLIcomando and restituisce il conteggio, la media, la somma, il minimo, il massimo, la somma dei quadrati, la varianza e la deviazione standard per il campo aggregato specificato.

Il comando get-statistics CLI accetta i parametri seguenti:

index-name

Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è AWS_Things.

query-string

La query usata per eseguire la ricerca nell'indice. Puoi specificare di "*" ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

aggregationField

(Facoltativo) Il campo da aggregare. Questo campo deve essere un campo gestito o personalizzato definito quando si chiama update-indexing-configuration. Se non specifichi un campo di aggregazione, viene utilizzato registry.version come campo di aggregazione.

query-version

La versione della query da usare. Il valore predefinito è 2017-09-30.

Il tipo di campo di aggregazione può influenzare le statistiche restituite.

GetStatistics con valori di stringa

Se si aggrega in un campo stringa, la chiamata GetStatistics restituisce un conteggio di dispositivi con attributi che corrispondono alla query. Ad esempio:

aws iot get-statistics --aggregation-field 'attributes.stringAttribute' --query-string '*'

Questo comando restituisce il numero di dispositivi che contengono un attributo denominato stringAttribute:

{ "statistics": { "count": 3 } }

GetStatistics con valori booleani

Quando chiami GetStatistics con un campo di aggregazione booleano:

  • AVERAGEè la percentuale di dispositivi che corrispondono alla query.

  • MINIMUMè 0 o 1 in base alle seguenti regole:

    • Se tutti i valori del campo di aggregazione sonofalse, MINIMUM è 0.

    • Se tutti i valori del campo di aggregazione sonotrue, MINIMUM è 1.

    • Se i valori del campo di aggregazione sono una combinazione di false etrue, MINIMUM è 0.

  • MAXIMUMè 0 o 1 secondo le seguenti regole:

    • Se tutti i valori del campo di aggregazione sonofalse, MAXIMUM è 0.

    • Se tutti i valori del campo di aggregazione sonotrue, MAXIMUM è 1.

    • Se i valori del campo di aggregazione sono una combinazione di false etrue, MAXIMUM è 1.

  • SUMè la somma dell'equivalente intero dei valori booleani.

  • COUNTè il numero di elementi che corrispondono ai criteri della stringa di query e contengono un valore di campo di aggregazione valido.

GetStatistics con valori numerici

Quando si chiama GetStatistics e si specifica un campo di aggregazione di tipo Number, GetStatistics restituisce i seguenti valori:

count

Numero di oggetti che corrispondono ai criteri della stringa di query e contengono un valore di campo di aggregazione valido.

average

La media dei valori numerici che corrispondono alla query.

sum

La somma dei valori numerici che corrispondono alla query.

minimum

Il più piccolo dei valori numerici che corrisponde alla query.

maximum

Il più grande dei valori numerici che corrisponde alla query.

sumOfSquares

La somma dei quadrati dei valori numerici che corrispondono alla query.

variance

La varianza dei valori numerici che corrispondono alla query. La varianza di un insieme di valori è la media dei quadrati delle differenze di ciascun valore rispetto al valore medio del set.

stdDeviation

La deviazione standard dei valori numerici che corrispondono alla query. La deviazione standard di un insieme di valori è una misura di quanto sono distribuiti i valori.

Nell'esempio seguente viene illustrato come chiamare get-statistics con un campo personalizzato numerico.

aws iot get-statistics --aggregation-field 'attributes.numericAttribute2' --query-string '*'
{ "statistics": { "count": 3, "average": 33.333333333333336, "sum": 100.0, "minimum": -125.0, "maximum": 150.0, "sumOfSquares": 43750.0, "variance": 13472.22222222222, "stdDeviation": 116.06990230986766 } }

Per i campi di aggregazione numerica, se i valori dei campi superano il valore doppio massimo, i valori delle statistiche sono vuoti.

GetCardinality

Il GetCardinalityAPIget-cardinalityCLIcomando and restituisce il conteggio approssimativo dei valori univoci che corrispondono alla query. Ad esempio, potresti cercare il numero di dispositivi con livelli di batteria inferiori al 50%:

aws iot get-cardinality --index-name AWS_Things --query-string "batterylevel > 50" --aggregation-field "shadow.reported.batterylevel"

Questo comando restituisce il numero di elementi con livelli di batteria oltre il 50%:

{ "cardinality": 100 }

cardinality viene sempre restituito da get-cardinality anche se non ci sono campi corrispondenti. Per esempio:

aws iot get-cardinality --query-string "thingName:Non-existent*" --aggregation-field "attributes.customField_STR"
{ "cardinality": 0 }

Il comando get-cardinality CLI accetta i parametri seguenti:

index-name

Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è AWS_Things.

query-string

La query usata per eseguire la ricerca nell'indice. Puoi specificare di "*" ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

aggregationField

Il campo da aggregare.

query-version

La versione della query da usare. Il valore predefinito è 2017-09-30.

GetPercentiles

Il GetPercentilesAPIget-percentilesCLIcomando and raggruppa i valori aggregati che corrispondono alla query in raggruppamenti percentili. I raggruppamenti percentili predefiniti sono: 1, 5, 25, 50, 75, 95, 99, anche se è possibile specificare il proprio quando si chiama GetPercentiles. Questa funzione restituisce un valore per ogni gruppo percentile specificato (o i raggruppamenti percentili predefiniti). Il gruppo percentile "1" contiene il valore del campo aggregato che si verifica in circa l'1% dei valori corrispondenti alla query. Il gruppo percentile "5" contiene il valore del campo aggregato che si verifica in circa il cinque percento dei valori corrispondenti alla query e così via. Il risultato è un'approssimazione, più valori corrispondono alla query, più precisi sono i valori percentili.

L'esempio seguente mostra come chiamare il comando. get-percentiles CLI

aws iot get-percentiles --query-string "thingName:*" --aggregation-field "attributes.customField_NUM" --percents 10 20 30 40 50 60 70 80 90 99
{ "percentiles": [ { "value": 3.0, "percent": 80.0 }, { "value": 2.5999999999999996, "percent": 70.0 }, { "value": 3.0, "percent": 90.0 }, { "value": 2.0, "percent": 50.0 }, { "value": 2.0, "percent": 60.0 }, { "value": 1.0, "percent": 10.0 }, { "value": 2.0, "percent": 40.0 }, { "value": 1.0, "percent": 20.0 }, { "value": 1.4, "percent": 30.0 }, { "value": 3.0, "percent": 99.0 } ] }

Il comando seguente mostra l'output restituito da get-percentiles quando non ci sono documenti corrispondenti.

aws iot get-percentiles --query-string "thingName:Non-existent*" --aggregation-field "attributes.customField_NUM"
{ "percentiles": [] }

Il comando get-percentile CLI accetta i parametri seguenti:

index-name

Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è AWS_Things.

query-string

La query usata per eseguire la ricerca nell'indice. Puoi specificare "*" di ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

aggregationField

Il campo da aggregare, che deve essere di tipo Number.

query-version

La versione della query da usare. Il valore predefinito è 2017-09-30.

percents

(Facoltativo) È possibile utilizzare questo parametro per specificare raggruppamenti percentili personalizzati.

GetBucketsAggregation

Il GetBucketsAggregationAPIget-buckets-aggregationCLIcomando and restituisce un elenco di bucket e il numero totale di elementi che soddisfano i criteri della stringa di query.

L'esempio seguente mostra come chiamare il get-buckets-aggregation CLI comando.

aws iot get-buckets-aggregation --query-string '*' --index-name AWS_Things --aggregation-field 'shadow.reported.batterylevelpercent' --buckets-aggregation-type 'termsAggregation={maxBuckets=5}'

Questo comando restituisce quanto segue:

{ "totalCount": 20, "buckets": [ { "keyValue": "100", "count": 12 }, { "keyValue": "90", "count": 5 }, { "keyValue": "75", "count": 3 } ] }

Il get-buckets-aggregation CLI comando accetta i seguenti parametri:

index-name

Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è AWS_Things.

query-string

La query usata per eseguire la ricerca nell'indice. Puoi specificare "*" di ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

aggregation-field

Il campo da aggregare.

buckets-aggregation-type

Il controllo di base della forma di risposta e il tipo di aggregazione del bucket da eseguire.

Autorizzazione

È possibile specificare l'indice dei gruppi di oggetti come risorsa ARN in un'azione AWS IoT politica, come segue.

Azione Risorsa

iot:GetStatistics

Un indice ARN (ad esempio, arn:aws:iot:your-aws-region:index/AWS_Things oarn:aws:iot:your-aws-region:index/AWS_ThingGroups).