As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tutoriais de expressão de fórmulas
Você pode seguir esses tutoriais para usar expressões de fórmula em AWS IoT SiteWise.
Tópicos
Use sequências de caracteres em fórmulas
Você pode operar em strings em suas expressões de fórmula. Você também pode inserir cadeias de caracteres de variáveis que fizerem referência a propriedades de atributos e medidas.
Importante
As expressões de fórmula só podem produzir valores duplos ou de string. Expressões aninhadas podem gerar outros tipos de dados, como strings, mas a fórmula como um todo deve ser avaliada como um número ou string. Você pode usar a função jp para converter uma string em um número. O valor Booleano deve ser 1 (verdadeiro) ou 0 (falso). Para obter mais informações, consulte Valores indefinidos, infinitos e excedidos.
AWS IoT SiteWise fornece os seguintes recursos de expressão de fórmula que você pode usar para operar em cadeias de caracteres:
-
O operador de índice (
s[index]
) -
O operador de fatia (
s[start:end:step]
) -
Funções de comparação, que você pode usar para comparar strings por ordem lexicográfica
-
Funções de string, que incluem a
jp
função que pode analisar JSON objetos serializados e converter strings em números
Filtrar pontos de dados
Você pode usar a função if para filtrar pontos de dados que não atendam a uma condição. A função if
avalia uma condição e retorna valores diferentes para resultados true
e false
. Você pode usar a constante nula como saída para um caso de função if
, para descartar o ponto de dados desse caso.
Para filtrar pontos de dados que correspondam a uma condição
-
Crie uma transformação que use a função
if
para definir uma condição que verifica se uma outra foi atendida e retornarnone
como valorresult_if_true
ouresult_if_false
.
exemplo Exemplo: filtrar pontos de dados onde a água não esteja fervendo
Considere um cenário onde você tenha uma medição temp_c
que forneça a temperatura (em Celsius) da água em uma máquina. Você pode definir a seguinte transformação para filtrar os pontos de dados nos quais a água não estiver fervendo:
-
Transformar:
boiling_temps = if(gte(temp_c, 100), temp_c, none)
— retorna a temperatura se maior ou igual a 100 graus Celsius, caso contrário, não retornará nenhum ponto de dados.
Contar pontos de dados que correspondem a uma condição
Você pode usar funções comparativas e soma () para contar o número de pontos de dados para os quais uma condição é verdadeira.
Para contar pontos de dados que correspondam a uma condição
-
Crie uma transformação que use uma função comparativa para definir uma condição de filtro em outra propriedade.
-
Crie uma métrica que some os pontos de dados onde essa condição é atendida.
exemplo Exemplo: contar o número de pontos de dados onde a água está fervendo
Considere um cenário onde você tenha uma medição temp_c
que forneça a temperatura (em Celsius) da água em uma máquina. Você pode definir as seguintes propriedades de transformação e métrica para contar o número de pontos de dados onde a água está fervendo:
-
Transformação:
is_boiling = gte(temp_c, 100)
– Retorna1
se a temperatura for maior ou igual a 100 graus Celsius, caso contrário, retorna0
. -
Métrica:
boiling_count = sum(is_boiling)
– Retorna o número de pontos de dados onde a água estiver fervendo.
Dados atrasados em fórmulas
AWS IoT SiteWise suporta a ingestão tardia de dados com até 7 dias. Quando AWS IoT SiteWise recebe dados atrasados, ele recalcula os valores existentes para qualquer métrica que insira os dados atrasados em uma janela anterior. Esses recálculos resultam em cobranças de processamento de dados.
nota
Ao AWS IoT SiteWise computar propriedades que inserem dados atrasados, ele usa a expressão de fórmula atual de cada propriedade.
Depois de AWS IoT SiteWise recalcular uma janela anterior para uma métrica, ela substitui o valor anterior dessa janela. Se você ativou as notificações para essa métrica, AWS IoT SiteWise também emitirá uma notificação de valor de propriedade. Isso significa que você pode receber uma nova notificação de atualização de valor de propriedade para a mesma propriedade e notificação de hora para aquelas cuja notificação você tenha recebido anteriormente. Se seus aplicativos ou data lakes consumirem notificações de valor de propriedade, você deve atualizar o valor anterior com o novo valor para que os dados estejam precisos.
Qualidade de dados em fórmulas
Em AWS IoT SiteWise, cada ponto de dados tem um código de qualidade, que pode ser um dos seguintes:
-
GOOD
– os dados não são afetados por nenhum problema. -
BAD
– os dados são afetados por um problema, como a falha do sensor. -
UNCERTAIN
– os dados são afetados por um problema, como a imprecisão do sensor.
AWS IoT SiteWise consome somente dados GOOD
de qualidade ao computar transformações e métricas. AWS IoT SiteWise gera somente dados GOOD
de qualidade para cálculos bem-sucedidos. Se um cálculo não for bem-sucedido, AWS IoT SiteWise não produzirá um ponto de dados para esse cálculo. Isso pode ocorrer se uma computação resultar em um valor indefinido, infinito ou em um estouro.
Para obter mais informações sobre como consultar dados e filtrar por qualidade de dados, consulte Consultar dados de AWS IoT SiteWise.
Valores indefinidos, infinitos e excedidos
Algumas expressões de fórmula (como x / 0
sqrt(-1)
, oulog(0)
) calculam valores indefinidos em um sistema numérico real, infinitos ou fora do intervalo suportado por AWS IoT SiteWise. Quando a expressão de uma propriedade de ativo computa um valor indefinido, infinito ou excedente, AWS IoT SiteWise não gera um ponto de dados para esse cálculo.
AWS IoT SiteWise também não gera um ponto de dados se computar um valor não numérico como resultado de uma expressão de fórmula. Isso significa que, se você definir uma fórmula que calcula uma string, matriz ou constante nenhuma, então o AWS IoT SiteWise não irá gerar um ponto de dados para esse cálculo.
exemplo Exemplos
Cada uma das expressões de fórmula a seguir resulta em um valor que não AWS IoT SiteWise pode ser representado como um número. AWS IoT SiteWise não gera um ponto de dados quando calcula essas expressões de fórmula.
-
x / 0
é indefinido. -
log(0)
é indefinido. -
sqrt(-1)
é indefinido em um sistema numérico real. -
"hello" + " world"
é uma string. -
jp('{"values":[3,6,7]}', '$.values')
é uma matriz. -
if(gte(temp, 300), temp, none)
énone
quandotemp
é menor que300
.