Compartilhar via


Transforme 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 o estágio de transformação para realizar transformações estruturais em mensagens em um pipeline como:

  • Renomear marcas e propriedades
  • Desfazer lote de dados
  • Adicionar novas propriedades
  • Adicionar valores calculados

O estágio de transformação usa jq para dar suporte à transformação de dados:

  • Cada partição de pipeline transforma mensagens independentemente umas das outras.
  • O estágio gera uma mensagem transformada com base na expressão jq que você fornece.
  • Crie uma expressão jq para transformar uma mensagem com base em como a estrutura da mensagem de entrada para o estágio.

Pré-requisitos

Para configurar e usar um estágio de pipeline de transformação, você precisa de:

  • Uma instância implantada da Versão Prévia do Processador de Dados do Azure IoT que inclui o componente opcional do Processador de Dados.
  • Uma compreensão das expressões jq.

Configurar o estágio

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

Nome Valor Obrigatório Exemplo
Nome Um nome a ser mostrado na interface do usuário do Processador de Dados. Sim Transform1
Descrição Uma descrição amigável do que o estágio de transformação faz. Não Rename Tags
Query A expressão jq de transformação. Sim .payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add)

Exemplo de configuração

O exemplo de transformação a seguir converte a matriz de marcas na mensagem de entrada em um objeto que contém todas as marcas e seus valores:

{
    "displayName": "TransformInput", 
    "description": "Make array of tags into one object", 
    "query": ".payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add)"
}

A saída do estágio de transformação é semelhante ao exemplo a seguir:

{
  "systemProperties": {
    "partitionKey": "foo",
    "partitionId": 5,
    "timestamp": "2023-01-11T10:02:07Z"
  },
  "qos": 1,
  "topic": "/assets/foo/tags/bar",
  "properties": {
    "responseTopic": "outputs/foo/tags/bar",
    "contentType": "application/json",
    "payloadFormat": 1,
    "correlationData": "base64::Zm9v",
    "messageExpiry": 412
  },
  "userProperties": [
    {
      "key": "prop1",
      "value": "value1"
    },
    {
      "key": "prop2",
      "value": "value2"
    }
  ],
  "payload": {
    "values": {
      "temperature": 250,
      "pressure": 30,
      "humidity": 10,
      "runningStatus": true
    }
  }
}