Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWS IoT proporciona cuatro APIs (GetStatistics
, GetCardinality
GetPercentiles
, yGetBucketsAggregation
) que le permiten buscar datos agregados en su flota de dispositivos.
nota
Si hay problemas relacionados con valores faltantes o inesperados en la agregaciónAPIs, consulta la guía de solución de problemas de indexación de flotas.
GetStatistics
El get-statistics CLI comando GetStatisticsAPIy devuelve el recuento, el promedio, la suma, el mínimo, el máximo, la suma de los cuadrados, la varianza y la desviación estándar del campo agregado especificado.
El comando CLI de la get-statistics usa los siguientes parámetros:
index-name
-
El nombre del índice que se buscará. El valor predeterminado es
AWS_Things
. query-string
-
La consulta utilizada para buscar el índice. Puede especificar si desea
"*"
obtener el recuento de todos los elementos indexados de su. Cuenta de AWS aggregationField
-
(Opcional) El campo que se va a agregar. Este campo debe ser un campo administrado o personalizado definido al llamar a update-indexing-configuration. Si no especifica un campo de agregación, se utiliza
registry.version
como el campo de agregación. query-version
-
La versión de la consulta que se va a utilizar. El valor predeterminado es
2017-09-30
.
El tipo de campo de agregación puede afectar a las estadísticas devueltas.
GetStatistics con valores de cadena
Si realiza la agregación en un campo de cadena, la llamada a GetStatistics
devuelve el número de dispositivos que tienen atributos que coinciden con la consulta. Por ejemplo:
aws iot get-statistics --aggregation-field 'attributes.stringAttribute' --query-string '*'
Este comando devuelve el número de dispositivos que contienen un atributo llamado stringAttribute
:
{
"statistics": {
"count": 3
}
}
GetStatistics con valores booleanos
Cuando llama a GetStatistics
con un campo de agregación booleano:
-
AVERAGEes el porcentaje de dispositivos que coinciden con la consulta.
-
MINIMUMes 0 o 1 según las siguientes reglas:
-
Si todos los valores del campo de agregación son
false
, MINIMUM es 0. -
Si todos los valores del campo de agregación son
true
, MINIMUM es 1. -
Si los valores del campo de agregación son una mezcla de
false
ytrue
, MINIMUM es 0.
-
-
MAXIMUMes 0 o 1 según las siguientes reglas:
-
Si todos los valores del campo de agregación son
false
, MAXIMUM es 0. -
Si todos los valores del campo de agregación son
true
, MAXIMUM es 1. -
Si los valores del campo de agregación son una mezcla de
false
ytrue
, MAXIMUM es 1.
-
-
SUMes la suma del equivalente entero de los valores booleanos.
-
COUNTes el número de elementos que coinciden con los criterios de la cadena de consulta y contienen un valor de campo de agregación válido.
GetStatistics con valores numéricos
Cuando se llama a GetStatistics
y se especifica un campo de agregación de tipo Number
, GetStatistics
devuelve los siguientes valores:
- count
-
El número de objetos que coinciden con los criterios de la cadena de consulta y contienen un valor de campo de agregación válido.
- average
-
El promedio de los valores numéricos que coinciden con la consulta.
- sum
-
La suma de los valores numéricos que coinciden con la consulta.
- minimum
-
El menor de los valores numéricos que coinciden con la consulta.
- maximum
-
El mayor de los valores numéricos que coinciden con la consulta.
- sumOfSquares
-
La suma de los cuadrados de los valores numéricos que coinciden con la consulta.
- variance
-
La varianza de los valores numéricos que coinciden con la consulta. La varianza de un conjunto de valores es la media de los cuadrados de las diferencias de cada valor con respecto al valor medio del conjunto.
- stdDeviation
-
La desviación estándar de los valores numéricos que coinciden con la consulta. La desviación estándar de un conjunto de valores es una medida de la distribución de los valores.
El siguiente ejemplo muestra cómo llamar a get-statistics con un campo numérico personalizado.
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
}
}
Para los campos de agregación numérica, si los valores del campo superan el valor «double» máximo, los valores de las estadísticas están vacíos.
GetCardinality
El comando GetCardinalityAPIy el get-cardinality CLI comando devuelven el recuento aproximado de valores únicos que coinciden con la consulta. Por ejemplo, es posible que desee encontrar el número de dispositivos con niveles de batería inferiores al 50 por ciento:
aws iot get-cardinality --index-name AWS_Things --query-string "batterylevel > 50" --aggregation-field "shadow.reported.batterylevel"
Este comando devuelve el número de objetos con niveles de batería de más del 50 por ciento:
{ "cardinality": 100 }
get-cardinality siempre devuelve cardinality
, aunque no haya campos coincidentes. Por ejemplo:
aws iot get-cardinality --query-string "thingName:Non-existent*" --aggregation-field "attributes.customField_STR"
{
"cardinality": 0
}
El comando CLI de la get-cardinality usa los siguientes parámetros:
index-name
-
El nombre del índice que se buscará. El valor predeterminado es
AWS_Things
. query-string
-
La consulta utilizada para buscar el índice. Puede especificar si desea
"*"
obtener el recuento de todos los elementos indexados de su Cuenta de AWS. aggregationField
-
El campo que se va a agregar.
query-version
-
La versión de la consulta que se va a utilizar. El valor predeterminado es
2017-09-30
.
GetPercentiles
El comando GetPercentilesAPIy el get-percentiles CLI comando agrupan los valores agregados que coinciden con la consulta en grupos de percentiles. Los grupos de percentiles predeterminados son: 1,5,25,50,75,95,99, aunque puede especificar los suyos propios cuando llame a GetPercentiles
. Esta función devuelve un valor para cada grupo de percentiles especificado (o para los grupos de percentiles predeterminados). El grupo de percentiles "1" contiene el valor agregado del campo que se obtiene aproximadamente en el uno por ciento de los valores que coinciden con la consulta. El grupo de percentiles "5" contiene el valor agregado del campo que se obtiene en aproximadamente el cinco por ciento de los valores que coinciden con la consulta, y así sucesivamente. El resultado es una aproximación: cuantos más valores coincidan con la consulta, más precisos serán los valores de percentil.
En el siguiente ejemplo, se muestra cómo llamar al 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
}
]
}
El siguiente comando muestra la salida devuelta get-percentiles cuando no hay documentos coincidentes.
aws iot get-percentiles --query-string "thingName:Non-existent*" --aggregation-field "attributes.customField_NUM"
{
"percentiles": []
}
El comando CLI de la get-percentile usa los siguientes parámetros:
index-name
-
El nombre del índice que se buscará. El valor predeterminado es
AWS_Things
. query-string
-
La consulta utilizada para buscar el índice. Puede especificar si desea
"*"
obtener el recuento de todos los elementos indexados de su Cuenta de AWS. aggregationField
-
El campo que se va a agregar, que debe ser del tipo
Number
. query-version
-
La versión de la consulta que se va a utilizar. El valor predeterminado es
2017-09-30
. percents
-
(Opcional) Puede utilizar este parámetro para especificar grupos de percentiles personalizados.
GetBucketsAggregation
El comando GetBucketsAggregationAPIy el get-buckets-aggregation CLI comando devuelven una lista de cubos y el número total de elementos que se ajustan a los criterios de la cadena de consulta.
En el siguiente ejemplo, se muestra cómo llamar al 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}'
Este comando devuelve la siguiente salida:
{
"totalCount": 20,
"buckets": [
{
"keyValue": "100",
"count": 12
},
{
"keyValue": "90",
"count": 5
},
{
"keyValue": "75",
"count": 3
}
]
}
El get-buckets-aggregation CLI comando toma los siguientes parámetros:
index-name
-
El nombre del índice que se buscará. El valor predeterminado es
AWS_Things
. query-string
-
La consulta utilizada para buscar el índice. Puede especificar si desea
"*"
obtener el recuento de todos los elementos indexados de su Cuenta de AWS. aggregation-field
-
El campo que se va a agregar.
buckets-aggregation-type
-
El control básico de la forma de la respuesta y el tipo de agregación de buckets que se va a realizar.
Autorización
Puede especificar el índice de grupos de cosas como un recurso ARN en una acción AWS IoT política, de la siguiente manera.
Acción | Recurso |
---|---|
|
Un índice ARN (por ejemplo, |