Share via


Filtrar dados em um pipeline da Versão Prévia do Versão Prévia do Processador de Dados da Internet das Coisas do Azure

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Use um estágio de filtro para filtrar mensagens que não são necessárias para processamento adicional no pipeline. O estágio emitirá a mensagem original para o estágio de filtro inalterado se os critérios do filtro forem atendidos, caso contrário, o estágio removerá a mensagem do pipeline.

  • Cada partição de pipeline filtra mensagens independentemente de outras partições.
  • A saída do estágio de filtro será a mensagem original se o estágio não a filtrar.

Pré-requisitos

Para configurar e usar um estágio de pipeline de filtro, você precisa de uma instância implantada do Processador de Dados da Internet das Coisas do Azure Versão Prévia.

Configurar o estágio

A configuração JSON do estágio de filtro define os detalhes do estágio. Para criar o estágio, você pode interagir com a interface do usuário baseada em formulário ou fornecer a configuração JSON na guia Avançado:

Nome Valor Obrigatório Padrão Exemplo
Nome de exibição Um nome a ser mostrado na interface do usuário do Processador de Dados. Sim - Filter1
Descrição Uma descrição amigável do que o estágio de filtro faz. Não - Filter out anomalies
Query A expressão jq Sim - .payload.temperature > 0 and .payload.pressure < 50

expressão jq

As consultas de filtro no Processador de Dados usam a linguagem jq para definir a condição do filtro:

  • O jq fornecido na consulta deve ser sintaticamente válido.
  • O resultado da consulta de filtro deve ser um valor booliano.
  • As mensagens que são avaliadas como true são emitidas inalteradas do estágio de filtro para os estágios subsequentes para processamento adicional. As mensagens que são avaliadas como false são removidas do pipeline.
  • Todas as mensagens para as quais o filtro não retorna um resultado booliano são tratadas como um caso de erro e removidas do pipeline.
  • O estágio de filtro segue a mesma restrição no uso de jq, conforme definido no guia de expressões jq.

Quando você cria uma consulta de filtro para usar no estágio de filtro:

  • Teste sua consulta de filtro com suas mensagens para garantir que um resultado booliano seja retornado.
  • Configure a consulta de filtro com base em como a mensagem chega ao estágio de filtro.
  • Para saber mais sobre como criar suas expressões de filtro, consulte o guia de expressões jq.

Exemplo de configuração

O exemplo JSON a seguir mostra uma configuração completa do estágio de filtro:

{ 
    "displayName": "Filter name", 
    "description": "Filter description", 
    "query": "(.properties.responseTopic | contains(\"bar\")) or (.properties.responseTopic | contains(\"baz\")) and (.payload | has(\"temperature\")) and (.payload.temperature > 0)"
}

Esse filtro verifica se há mensagens nas quais .properties.responseTopic contém bar ou baz e o conteúdo da mensagem tem uma propriedade chamada temperature com um valor maior que 0.