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órmula
Você pode seguir esses tutoriais para usar expressões de fórmula emAWS IoT SiteWise.
Tópicos
Usando cadeias de caracteres em fórmulas
Você pode operar com cadeias de caracteres em suas expressões de fórmula. Você também pode inserir cadeias de caracteres de variáveis que fazem referência a propriedades de atributos e medidas.
As expressões de fórmula só podem gerar valores duplos ou em sequência de caracteres. Expressões aninhadas podem gerar outros tipos de dados, como cadeias de caracteres, mas a fórmula como um todo deve ser avaliada como um número ou sequência de caracteres. 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 SiteWisefornece os recursos de expressão de fórmula a seguir que você pode seguir usando para operar com strings:
-
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 cadeias de caracteres por ordem lexicográfica
-
Funções de string, que incluem a
jp
função que pode analisar objetos JSON serializados e converter cadeias de caracteres em números
Como filtrar pontos de dados
Você pode usar a função if para filtrar pontos de dados que não atendem a uma condição. Aif
função avalia uma condição e retorna valorestrue
efalse
resultados diferentes. Você pode usar a constante none como saída para um caso de umaif
função para descartar o ponto de dados desse caso.
Para filtrar pontos de dados que correspondem a uma condição
-
Crie uma transformação que use a
if
função para definir uma condição que verifique se uma condição foi atendida e retornenone
como oresult_if_false
valorresult_if_true
or.
exemplo Exemplo: filtrar pontos de dados em que a água não está fervendo
Considere um cenário em que você tenha uma medição que forneça a temperatura (em graus Celsius) da água em uma máquina.temp_c
Você pode definir a seguinte transformação para filtrar os pontos de dados em que a água não está fervendo:
-
Transformar:
boiling_temps = if(gte(temp_c, 100), temp_c, none)
— Retorna a temperatura se ela for maior ou igual a 100 graus Celsius, caso contrário, não retorna nenhum ponto de dados.
Contando pontos de dados que correspondem a uma condição
Você pode usar funções de comparação e sum () para contar o número de pontos de dados para os quais uma condição é verdadeira.
Para contar pontos de dados que correspondem a uma condição
-
Crie uma transformação que use uma função de comparação 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 em que você tenha uma medição que forneça a temperatura (em graus Celsius) da água em uma máquina.temp_c
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:
-
Transformar:
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 em que a água está fervendo.
Dados atrasados em fórmulas
AWS IoT SiteWisesuporta a ingestão tardia de dados com até 7 dias. Quando o AWS IoT SiteWise recebe dados tardios, ele recalcula valores existentes para qualquer métrica que insere os dados tardios em um intervalo passado. Esses recálculos resultam em cobranças de processamento de dados.
QuandoAWS IoT SiteWise calcula propriedades que inserem dados atrasados, ele usa a expressão da fórmula atual de cada propriedade.
Depois que o AWS IoT SiteWise recalcula um intervalo passado de uma métrica, ele substitui o valor anterior desse intervalo. Se você ativou as notificações para essa métrica, o AWS IoT SiteWise também emite 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 time stamp para os quais você recebeu uma notificação anteriormente. Se seus aplicativos ou data lakes consomem 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
No 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 falha no sensor. -
UNCERTAIN
— Os dados são afetados por um problema, como a imprecisão do sensor.
O AWS IoT SiteWise consome apenas dados de qualidade GOOD
quando calcula transformações e métricas. O AWS IoT SiteWise gera apenas dados de qualidade GOOD
para cálculos bem-sucedidos. Se um cálculo não for bem-sucedido,AWS IoT SiteWise não gera 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 agregados e valores de propriedade de ativos.
Valores indefinidos, infinitos e excedidos
Algumas expressões de fórmula (como x / 0
, sqrt(-1)
ou log(0)
) calculam valores indefinidos em um sistema de números reais, infinitos ou fora do intervalo compatível com o AWS IoT SiteWise. Quando a expressão de uma propriedade do ativo calcula um valor indefinido, infinito ou de transbordamento,AWS IoT SiteWise não gera um ponto de dados para esse cálculo.
AWS IoT SiteWisetambé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 a constante none,AWS IoT SiteWise não 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ãoAWS IoT SiteWise pode ser representado como um número. AWS IoT SiteWisenão gera um ponto de dados ao computar essas expressões de fórmula.
-
x / 0
é indefinido. -
log(0)
é indefinido. -
sqrt(-1)
é indefinido em um sistema numérico real. -
"hello" + " world"
é uma corda. -
jp('{"values":[3,6,7]}', '$.values')
é uma matriz. -
if(gte(temp, 300), temp, none)
énone
quandotemp
é menor que300
.