Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esta página inclui instruções para gerenciar componentes do Azure IoT Operations usando manifestos de implantação do Kubernetes, que estão em VERSÃO PRÉVIA. Esse recurso é fornecido com várias limitações, e não deve ser usado para cargas de trabalho 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.
Dica
Os grafos de fluxo de dados oferecem uma linguagem de mapeamento expandida com funções adicionais, transformações redigiráveis e recursos como roteamento condicional e agregação baseada em tempo. Para novos projetos que usam endpoints MQTT, Kafka ou OpenTelemetry, veja Transformar dados com mapa em fluxos de dados.
Use a linguagem de mapeamento de fluxo de dados para transformação de dados nas Operações do Azure IoT. A sintaxe é uma maneira simples, mas poderosa, de definir os mapeamentos que transformam um formato de dados em outro. Este artigo fornece uma visão geral sobre a linguagem de mapeamento de fluxo de dados e principais conceitos.
O mapeamento permite transformar um formato de dados em outro. Pense no seguinte registro de entrada de dados:
{
"Name": "Grace Owens",
"Place of birth": "London, TX",
"Birth Date": "19840202",
"Start Date": "20180812",
"Position": "Analyst",
"Office": "Kent, WA"
}
Compare-o com o registro de saída:
{
"Employee": {
"Name": "Grace Owens",
"Date of Birth": "19840202"
},
"Employment": {
"Start Date": "20180812",
"Position": "Analyst, Kent, WA",
"Base Salary": 78000
}
}
No registro de saída, as seguintes alterações foram feitas nos dados do registro de entrada:
-
Campos renomeados: o campo
Birth Dateagora éDate of Birth. -
Campos reestruturados: ambos
NameeDate of Birthagrupados sob a nova categoriaEmployee. -
Campo excluído: o campo
Place of birthé removido porque não está presente na saída. -
Campo adicionado: o campo
Base Salaryé um novo campo na categoriaEmployment. -
Valores de campos alterados ou mesclados: o campo
Positionna saída combina os camposPositioneOfficeda entrada.
As transformações são obtidas por meio do mapeamento, que normalmente envolve:
- Definição de entrada: identifica os campos nos registros de entrada que foram utilizados.
- Definição de saída: especifica onde e como os campos de entrada são organizados nos registros de saída.
-
Conversão (opcional): modifica os campos de entrada para que caibam nos campos de saída.
expressioné necessário quando diversos campos de entrada são combinados em um único campo de saída.
O mapeamento a seguir é um exemplo:
{
inputs: [
'BirthDate'
]
output: 'Employee.DateOfBirth'
}
{
inputs: [
'Position' // - - - - $1
'Office' // - - - - $2
]
output: 'Employment.Position'
expression: '$1 + ", " + $2'
}
{
inputs: [
'$context(position).BaseSalary'
]
output: 'Employment.BaseSalary'
}
O exemplo mapeia:
-
Mapeamento um para um:
BirthDateé mapeado diretamente paraEmployee.DateOfBirthsem conversão. -
Mapeamento de muitos para um: combina
PositioneOfficeem um único campoEmployment.Position. A fórmula de conversão ($1 + ", " + $2) mescla esses campos em uma cadeia de caracteres formatada. -
Dados contextuais:
BaseSalaryé adicionado a partir de um conjunto de dados contextuais chamadoposition.
Referências de campo
As referências do campo mostram como especificar caminhos na entrada e saída usando notação de ponto como Employee.DateOfBirth ou acessando dados de um conjunto de dados contextuais por meio de $context(position).
Propriedades de metadados
Ao usar MQTT ou Kafka como origem ou destino, você pode acessar propriedades de metadados, como tópicos, propriedades do usuário e cabeçalhos em seus mapeamentos. Para obter detalhes e exemplos de sintaxe completos, consulte campos de metadados na referência de expressões.
Seletores de conjunto de dados de contextualização
Esses seletores permitem que os mapeamentos integrem dados extras de bancos de dados externos, que são chamados de conjuntos de dados de contextualização. Para obter detalhes, consulte Conjuntos de dados de contextualização na referência de expressões e enriquecer dados usando fluxos de dados.
Filtragem de registros
A filtragem de registros envolve condições de configuração para selecionar quais registros devem ser processados e quais devem ser descartados.
Notação de ponto
Os caminhos de campo de fluxo de dados usam notação de ponto para fazer referência a campos aninhados, com escape para caracteres especiais. Para ver as regras de sintaxe completas e exemplos, consulte Notação de ponto e escapamento na referência de expressões.
Escapando
Para obter regras sobre como escapar de ponto e caracteres especiais em caminhos de campo, consulte Notação de ponto e escape na referência de expressões.
Curingas
Curingas usam o asterisco (*) para corresponder a vários campos de uma só vez, o que simplifica os mapeamentos quando a saída se assemelha muito à entrada. Para obter a sintaxe de curinga completa, regras de posicionamento, curingas de múltiplas entradas e comportamento especializado, consulte Curingas na referência de expressões.
Último valor conhecido
Você pode acompanhar o último valor conhecido de uma propriedade. Adicione ? $last como sufixo do campo de entrada para capturar o último valor conhecido do campo. Quando falta um valor em uma propriedade em um conteúdo de entrada subsequente, o último valor conhecido é mapeado para o conteúdo de saída.
Por exemplo, considere o seguinte mapeamento:
inputs: [
'Temperature ? $last'
]
output: 'Thermostat.Temperature'
Neste exemplo, o último valor conhecido de Temperature é rastreado. Se um conteúdo de entrada subsequente não contiver um valor Temperature, o último valor conhecido será usado na saída.
Conteúdo relacionado
- Referência de expressões – operadores, funções, tipos de dados e regras de conversão de tipo para todas as transformações de fluxo de dados.
- Filtrar dados em um fluxo de dados
- Enriquecer os dados usando fluxos de dados
- Criar um fluxo de dados