Transformações
O Manufacturing Data Engine (MDE) oferece uma maneira simples de fazer o pós-processamento de mensagens durante a ingestão e gerar novas tags e registros derivados das mensagens de entrada. Esses pós-processadores são chamados de transformações. Eles podem ser associados a um determinado tipo e gerar novas mensagens que são ingeridas novamente no MDE. As transformações são pipelines integrados do Dataflow e podem ser configuradas usando determinados parâmetros de transformação específicos.
O MDE 1.3 e versões mais recentes oferecem duas transformações padrão:
- Mudança no evento de grupo
- Janelas
As transformações são ativadas no nível do tipo. Isso significa que todas as tags desse tipo serão transformadas. Um tipo pode ser associado a nenhuma, uma ou mais transformações. A associação entre o tipo e uma transformação específica pode ser configurada na interface da Web e usando a API de configuração. Um tipo pode ser associado a uma transformação a qualquer momento, e essa associação também pode ser removida quando não for mais necessária.
Uma transformação pode precisar de parâmetros de transformação para definir um comportamento específico. Os parâmetros de transformação são específicos para cada tipo de transformação e podem ser diferentes de uma transformação para outra.
Os valores de parâmetro de transformação específicos para uma determinada transformação também são definidos no nível do tipo. Tipos diferentes podem usar valores de parâmetros diferentes e usar a mesma transformação de maneiras diferentes.
As transformações recebem como entrada todas as mensagens mapeadas para o tipo em que a transformação está ativa. Cada mensagem é processada pelo processador de transformação no Dataflow.
A saída de qualquer transformação é uma mensagem JSON bruta ingerida no tópico inicial de destino. O MDE fornece um pacote de configuração exclusivo com cada transformação. Esse pacote de configuração precisa ser aplicado ao MDE se você planeja usar a transformação. O pacote de configuração cria um conjunto de uma classe de mensagem, um analisador, um tipo e uma coleção de buckets de metadados. Essas entidades de configuração permitem que o MDE identifique e processe as mensagens de saída da transformação em um tipo específico. Os tipos específicos de transformação armazenam as informações emitidas pela transformação. Eles também estão associados a buckets de metadados de transformação específicos que armazenam informações de referência sobre a tag ou o registro transformado original.
Os dois tipos fornecidos para processar as mensagens brutas geradas por cada transformação são os seguintes:
group-event-change-records: tipo de destino para as mensagens de saída da transformação de mudança de evento de grupo.window-transformation-records: tipo de destino para as mensagens de saída da transformação de janela.
Transformação de mudança de evento em grupo
Essa transformação monitora qualquer campo em uma tag ou um grupo de tags e gera um evento sempre que os valores monitorados mudam em qualquer uma dessas tags.
Essa transformação pode ser associada a um tipo de qualquer arquétipo. A transformação aparece na interface da Web como eventChange.
Essa transformação emite uma mensagem que é analisada em um tipo
CONTINUOUS_DATA_SERIES específico chamado group-event-change-records
fornecido no pacote de configuração associado. O tipo contém o horário de início e o horário de término do período entre as mudanças de valor, bem como o valor anterior, o valor atual e o nome da tag que acionou a mudança.
É possível definir um grupo de tags do mesmo tipo para serem monitoradas juntas. Você pode escolher um critério principal para definir como agrupar tags. Todas as tags em que a chave tem o mesmo valor são monitoradas juntas. O valor da chave pode ser qualquer elemento do proto da tag, incluindo qualquer campo de dados e qualquer elemento dos metadados.
Para que a transformação funcione em uma tag individual, a chave é definida como o TagName.
Parâmetros
Os dois parâmetros de transformação necessários para configurar essa transformação são:
Expressão-chave: é exibida na interface da Web como
keyExpression. Define a expressão que será usada para agrupar tags. Todas as tags em que a expressão de chave tem o mesmo valor são monitoradas juntas. A transformação emite um evento de mudança de valor sempre que uma alteração é detectada em qualquer uma dessas tags. Os valores são comparados aos valores anteriores da mesma tag, mas um evento é acionado quando qualquer uma das tags muda. A expressão de chave é definida como uma expressão SpEL e pode usar qualquer um dos campos disponíveis no proto de tag. Por exemplo, para monitorar apenas uma tag com base no nome dela, a expressão SpEL seria definida como:#message['tagName']Como alternativa, para agrupar tags com base em um campo de metadados comum, como nome da máquina (supondo que exista um bucket
asset-hierarchycom um atributo chamadomachine-name), a expressão pode ser definida como:#message['metadata']['asset-hierarchy']['machine-name']Expressão de valor: é exibida na interface da Web como
valueExpression. Define o campo de valor que a transformação monitora para emitir um novo evento de mudança. Ela também é definida como uma expressão SpEL. A expressão pode usar qualquer campo da estrutura proto da tag. A saída da expressão precisa ser do tipoStringpara funcionar corretamente.Por exemplo, para monitorar um campo
valuena seçãoDatado proto de tag, a expressão de valor pode ser definida como:#message['data']['numeric'].toString()
Mensagem de saída
O conteúdo da Mensagem de saída gerada pela transformação de mudança de evento de grupo fornece os detalhes do evento detectado. Os atributos específicos disponíveis na mensagem de saída são:
TagName: a transformação cria um evento em um Tagname que corresponde ao valor da expressão de chave e ao sufixo"_event_change". Se a expressão de chave for definida como um TagName individual, a tag derivada será"TagName_event_change".- Objeto de carimbo de data/hora contínuo de mudança de evento: contém os carimbos de data/hora inicial (atributo
event_timestamp_start) e final (atributoevent_timestamp_end) do evento. Ele também contém a duração (atributoduration) do evento como umdouble. - Objeto de dados de mensagem de mudança de evento: contém o nome das tags que mudaram de valor durante o evento (atributo
changed_tags) e a lista de tags que correspondem aos critérios de agrupamento no momento em que o evento é emitido (atributocontributing_tags). Ambos podem conter mais de uma tag por mensagem. - Objeto de mudança de valor da tag: o nome (atributo
tag_name), o valor antigo (atributoold_expression_value), o novo valor (atributonew_expression_attribute) e a mensagem (atributomessage_id) que acionaram o evento de mudança de estado. - Objeto de mensagem de valor alterado (na v1.3.6 e versões mais recentes): contém a mensagem que acionou a mudança de evento.
Consulte o esquema específico na seção de referência.
Transformação de janelamento
Essa transformação aplica uma função de janelamento a todas as tags de um tipo. Janelamento é o resumo de vários registros em um único registro durante um período. A transformação de janela pode ser associada a qualquer tipo de arquétipo. Ele pode resumir os registros de tags de 1 a 60 minutos. O resultado da transformação é uma mensagem bruta com os valores de resumo da expressão de valor durante o período selecionado.
Essa transformação pode ser aplicada várias vezes ao mesmo tipo, desde que o ID de cada transformação de janela (conforme definido nos parâmetros) seja exclusivo dentro do tipo. É possível adicionar a transformação de janela usando a interface da Web, mas você precisa usar a API para adicionar várias transformações de janela a um determinado tipo.
A transformação gera uma tag derivada de um tipo fornecido (chamada
window-transformation-records) que contém um resumo de todos os registros
recebidos durante esse período para essa tag. Essa transformação opera no nível da tag: ela gera uma tag resumida para cada tag do tipo a que a transformação foi associada. O nome da tag é composto
do Tagname original e do sufixo -window-stats e do id da
transformação de janela.
Parâmetros
Essa transformação requer três parâmetros para operar:
- Duração da janela: disponível na interface da Web como
durationMinutes. Ela se refere à duração da janela a ser aplicada em minutos. Por exemplo, um valor de 1 vai gerar uma série temporal derivada de resolução de 1 minuto. - ID da janela: disponível na interface da Web como
id. Atribui um identificador exclusivo a cada transformação de janela do tipo para permitir que mais de uma seja aplicada em paralelo. O ID pode ser qualquer string. Expressão de valor: disponível na interface da Web como
valueExpression. É a expressão SpEL aplicada ao proto de tag para gerar um valor numérico que será resumido pela transformação de janela. Por exemplo, se você precisar usar o campo de valor de uma tag numérica genérica, a expressão devalueExpressionpoderá ser definida como:#message['data']['numeric']
Mensagem de resposta
A transformação emite uma mensagem para cada período definido pelo parâmetro de transformação durationMinutes. A mensagem de saída contém os seguintes atributos:
- TagName: nome da tag da série temporal derivada. Ela é gerada automaticamente pela transformação de janela. Ele é formado usando o TagName original e o sufixo
-window-statse oidda transformação de janela. Por exemplo, para um TagName chamadoTemperaturee um ID1, a tag derivada será chamadaTemperature-window-stats-1. - TimeStamp: contém os carimbos de data/hora de início e término da janela (disponíveis como atributos
event_timestamp_starteevent_timestamp_end). - Estatísticas de resumo da janela: contém todos os dados resumidos do período, incluindo:
- Média: o valor médio de todos os valores recebidos durante o período.
- Min: o valor mínimo de todos os valores recebidos durante o período.
- Máximo: o valor máximo de todos os valores recebidos durante o período.
- Desvio padrão: o desvio padrão de todos os valores recebidos durante o período.
- p50: o nível de confiança de 50% de não ser excedido para os valores recebidos durante o período.
- p90: o nível de confiança de 90% de não ser excedido para os valores recebidos durante a janela de tempo.
- Soma: o resumo de todos os valores recebidos durante o período.
- Contagem: o número de valores recebidos durante o período.
- Delta: a diferença entre o último e o primeiro valor recebido durante a janela de tempo.
Para mais informações, consulte o esquema específico na seção Esquemas de transformação.