Tutoriales de expresiones de fórmula - AWS IoT SiteWise

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.

Tutoriales de expresiones de fórmula

Puede seguir estos tutoriales para utilizar expresiones de fórmula en AWS IoT SiteWise.

Utilice cadenas en las fórmulas

Puede operar con cadenas en sus expresiones de fórmula. También puede introducir cadenas a partir de variables que hacen referencia a propiedades de atributos y medidas.

importante

Las expresiones de fórmula solo pueden generar valores dobles o de cadena. Las expresiones anidadas pueden generar otros tipos de datos, como cadenas, pero la fórmula en su conjunto debe evaluarse como un número o una cadena. Puede usar la función jp para convertir una cadena en un número. El valor booleano debe ser 1 (verdadero) o 0 (falso). Para obtener más información, consulte Valores indefinidos, infinitos y de desbordamiento.

AWS IoT SiteWise proporciona las siguientes funciones de expresión de fórmulas que puede utilizar para operar con cadenas:

Filtrar puntos de datos

Puede utilizar la función if para filtrar los puntos de datos que no cumplan una condición. La función if evalúa una condición y devuelve valores diferentes para los resultados true y false. Puede utilizar la constante none como resultado para un caso de una función if, para descartar el punto de datos de ese caso.

Para filtrar los puntos de datos que coinciden con una condición
  • Cree una transformación que utilice la función if para definir una condición que compruebe si se cumple una condición y que devuelva none como el valor result_if_true o result_if_false.

ejemplo Ejemplo: filtrar los puntos de datos en los que el agua no esté hirviendo

Considere un escenario en el que usted tiene una medición, temp_c, que proporciona la temperatura (en Celsius) del agua de una máquina. Puede definir la siguiente transformación para filtrar los puntos de datos en los que el agua no esté hirviendo:

  • Transformación boiling_temps = if(gte(temp_c, 100), temp_c, none): devuelve la temperatura si es mayor o igual a 100 grados Celsius; de lo contrario, no devuelve ningún punto de datos.

Cuente los puntos de datos que coincidan con una condición

Puede utilizar funciones de comparación y sum() para contar el número de puntos de datos para los que se cumple una condición.

Para contar los puntos de datos que coinciden con una condición
  1. Cree una transformación que utilice una función de comparación para definir una condición de filtro en otra propiedad.

  2. Cree una métrica que sume los puntos de datos donde se cumple esa condición.

ejemplo Ejemplo: Contar el número de puntos de datos en los que el agua está hirviendo

Considere un escenario en el que usted tiene una medición, temp_c, que proporciona la temperatura (en Celsius) del agua de una máquina. Puede definir las siguientes propiedades de transformación y métrica para contar el número de puntos de datos en los que hierve el agua:

  • Transformación is_boiling = gte(temp_c, 100): devuelve 1 si la temperatura es mayor o igual a 100 grados Celsius; de lo contrario, devuelve 0.

  • Métrica boiling_count = sum(is_boiling): devuelve el número de puntos de datos en los que el agua está hirviendo.

Datos antiguos en las fórmulas

AWS IoT SiteWise admite la ingesta tardía de datos con una antigüedad de hasta 7 días. Cuando AWS IoT SiteWise recibe datos atrasados, recalcula los valores existentes para cualquier métrica que introduzca los datos atrasados en una ventana anterior. Estos nuevos cálculos dan lugar a cargos de procesamiento de datos.

nota

Cuando AWS IoT SiteWise calcula las propiedades que introducen datos atrasados, utiliza la expresión de fórmula actual de cada propiedad.

Después de AWS IoT SiteWise volver a calcular la ventana anterior de una métrica, reemplaza el valor anterior de esa ventana. Si ha activado las notificaciones para esa métrica, AWS IoT SiteWise también emite una notificación del valor de la propiedad. Esto significa que puede recibir una nueva notificación de actualización de valor de propiedad para la misma propiedad y marca temporal para la que recibió previamente una notificación. Si las aplicaciones o lagos de datos consumen notificaciones de valor de propiedad, debe actualizar el valor anterior con el nuevo valor para que sus datos sean precisos.

Calidad de los datos en las fórmulas

En AWS IoT SiteWise, cada punto de datos tiene un código de calidad, que puede ser uno de los siguientes:

  • GOOD: los datos no se ven afectados por ningún problema.

  • BAD: los datos se ven afectados por un problema, como un fallo del sensor.

  • UNCERTAIN: los datos se ven afectados por un problema, como la falta de precisión de un sensor.

AWS IoT SiteWise consume solo datos GOOD de calidad cuando calcula las transformaciones y las métricas. AWS IoT SiteWise genera solo datos GOOD de calidad para que los cálculos se realicen correctamente. Si un cálculo no se realiza correctamente, AWS IoT SiteWise no genera un punto de datos para ese cálculo. Esto puede ocurrir si un cálculo da como resultado un valor indefinido, infinito o de desbordamiento.

Para obtener más información acerca de cómo consultar datos y filtrar por calidad de datos, consulte Consulte datos de AWS IoT SiteWise.

Valores indefinidos, infinitos y de desbordamiento

Algunas expresiones de fórmula (como x / 0sqrt(-1), olog(0)) calculan valores indefinidos en un sistema de números reales, infinitos o que están fuera del rango admitido por él. AWS IoT SiteWise Cuando la expresión de una propiedad de un activo calcula un valor indefinido, infinito o desbordante, AWS IoT SiteWise no genera ningún punto de datos para ese cálculo.

AWS IoT SiteWise tampoco genera un punto de datos si calcula un valor no numérico como resultado de una expresión de fórmula. Esto significa que si se define una fórmula que calcula una cadena, una matriz o la constante none, AWS IoT SiteWise no generará ningún punto de datos para ese cálculo.

ejemplo Ejemplos

Cada una de las siguientes expresiones de fórmula da como resultado un valor que no AWS IoT SiteWise se puede representar como un número. AWS IoT SiteWise no genera un punto de datos cuando calcula estas expresiones de fórmula.

  • x / 0 es indefinido.

  • log(0) es indefinido.

  • sqrt(-1) es indefinido en un sistema numérico real.

  • "hello" + " world" es una cadena.

  • jp('{"values":[3,6,7]}', '$.values') es una matriz.

  • if(gte(temp, 300), temp, none) es none cuando temp es menos de 300.