Compartilhar via


Configurar um estágio de origem do InfluxDB v2

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.

O estágio de origem é o primeiro estágio necessário em um pipeline do Processador de Dados da Internet das Coisas do Azure (versão prévia). O estágio de origem obtém dados no pipeline de processamento de dados e os prepara para processamento adicional. O estágio de origem do InfluxDB permite ler dados de um banco de dados do InfluxDB v2 em um intervalo definido pelo usuário.

No estágio de origem, você define:

  • Detalhes da conexão para o InfluxDB v2.
  • O intervalo no qual consultar o banco de dados do InfluxDB. O estágio aguarda um resultado antes de redefinir o temporizador de intervalo.
  • Uma configuração de particionamento com base em seus requisitos específicos de processamento de dados.

Pré-requisitos

  • 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.
  • Um banco de dados do InfluxDB com todos os dados brutos necessários está operacional e acessível.

Preparar o banco de dados do Influx

Para se conectar ao banco de dados do InfluxDB, você precisa:

Configurar a origem do InfluxDB

Para configurar a origem do InfluxDB:

  • Forneça detalhes do banco de dados do InfluxDB. Essa configuração inclui o nome do servidor e uma consulta para recuperar os dados.
  • Especifique o método de autenticação. Atualmente, você só pode usar a autenticação de token de acesso.

A tabela a seguir descreve os parâmetros de configuração de origem do InfluxDB:

O esquema base da configuração de entrada é composto por:

Campo Type Descrição Obrigatório? Padrão Exemplo
Nome String Um nome visível para o cliente para o estágio de origem. Obrigatório NA erp-database
Descrição Cadeia de caracteres Uma descrição visível do cliente do estágio de origem. Opcional NA Enterprise database
URL do banco de dados String A URL do banco de dados InfluxDB Yes https://contoso.com/some/url/path
Porta do banco de dados Inteiro A porta do banco de dados InfluxDB Não 443 443
Organização String A organização que contém o bucket a ser consultado Yes test-org test-org
Autenticação Tipo de autenticação O método de autenticação para se conectar ao servidor. Há suporte apenas para o tipo accessToken. Yes {"type": "accessToken"} {"type": "accessToken"}
Segredo String Referência ao token armazenado no Azure Key Vault. Sim Yes AKV_ACCESS_TOKEN
Consulta Flux String A consulta InfluxDB Yes {"expression": 'from(bucket:"test-bucket")\|> range(start: -1h) \|> filter(fn: (r) => r._measurement == "stat")'}
Intervalo de consulta Duration Representação de cadeia de caracteres do tempo a aguardar antes da próxima chamada à API. Yes 24h
Formato de dados Formato O estágio aplica o formato a linhas individuais recuperadas pela consulta. Só há suporte para o formato de arquivo json. Não há suporte para o path de nível superior. Sim {"type": "json"}
Particionamento Particionamento Configuração de particionamento para o estágio de origem. Obrigatório NA Consulte particionamento

Configurar particionamento

O particionamento em um pipeline divide os dados de entrada em partições separadas. O particionamento permite o paralelismo de dados no pipeline, o que pode melhorar a taxa de transferência e reduzir a latência. As estratégias de particionamento afetam a forma como os dados são processados nos outros estágios do pipeline. Por exemplo, o último estágio de valor conhecido e o estágio de agregação operam em cada partição lógica.

Para particionar seus dados, especifique uma estratégia de particionamento e o número de partições a serem usadas:

Campo Descrição Obrigatório Padrão Exemplo
Tipo de partição O tipo de particionamento a ser usado: partição ID ou partição Key Obrigatório ID ID
Expressão de partição A expressão jq a ser usada na mensagem de entrada para calcular a partição ID ou partição Key Obrigatório 0 .payload.header
Número of partições O número de partições em um pipeline do Processador de Dados. Obrigatório 1 1

O Processador de Dados adiciona metadados à mensagem de entrada. Confira a visão geral da estrutura de mensagens do Processador de Dados para entender como especificar corretamente a expressão de particionamento executada na mensagem de entrada. Por padrão, a expressão de particionamento é definida como 0 com o tipo de partição como ID para enviar todos os dados de entrada para uma única partição.

Para obter recomendações e saber mais, confira o que é particionamento?.

Exemplo de configuração

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

{
  "displayName": "InfluxDB v2 - ec8750",
  "type": "input/influxdbv2@v1",
  "query": {
    "expression": "from(bucket:\\\"test-bucket\\\") |> range(start: -1h) |> filter(fn: (r) => r._measurement == \\\"stat\\\")"
  },
  "url": "https://contoso.com/some/url/path",
  "interval": "5s",
  "port": 443,
  "organization": "test-org",
  "format": {
    "type": "json"
  },
  "partitionCount": 1,
  "partitionStrategy": {
    "type": "id",
    "expression": "0"
  },
  "authentication": {
    "type": "accessToken",
    "accessToken": "AKV_ACCESS_TOKEN"
  },
  "description": "Example InfluxDB source stage"
}