Compartilhar via


O que é particionamento no processador de dados?

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.

Você precisará implantar uma nova instalação do Azure IoT Operations quando uma versão geralmente disponível for disponibilizada, você não poderá atualizar uma instalação de visualizaçã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.

Em um pipeline de processador de dados, o particionamento divide os dados de entrada em partições separadas para habilitar o paralelismo de dados. O paralelismo de dados melhora a taxa de transferência e reduz a latência. O particionamento também afeta como estágios de pipeline, como os estágios último valor conhecido e agregar, processam dados.

Conceitos de particionamento

O processador de dados usa dois conceitos de particionamento:

  • Partições físicas que correspondem a fluxos de dados reais dentro do sistema.
  • Partições lógicas que correspondem a fluxos de dados conceituais que são processados juntos.

Um pipeline de processador de dados expõe partições como partições lógicas para o usuário. O sistema subjacente mapeia essas partições lógicas para partições físicas.

Para especificar uma estratégia de particionamento para um pipeline, você fornece duas informações:

  • O número de partições físicas para o pipeline.
  • Uma estratégia de particionamento que inclui o tipo de particionamento e uma expressão para calcular a partição lógica para cada mensagem de entrada.

É importante escolher as contagens de partição e as expressões de partição corretas para seu cenário. O processador de dados preserva a ordem dos dados dentro da mesma partição lógica e as mensagens na mesma partição lógica podem ser combinadas em estágios de pipeline, como os estágios último valor conhecido e agregar. A contagem de partições físicas não pode ser alterada e determina os limites de escala do pipeline.

Um diagrama que mostra o efeito do particionamento de um pipeline.

Configuração de particionamento

O particionamento em um pipeline é configurado no estágio de entrada do pipeline. O estágio de entrada calcula a chave de particionamento da mensagem de entrada. No entanto, o particionamento afeta outros estágios em um pipeline.

A configuração de particionamento inclui:

Campo Descrição Obrigatório Padrão Exemplo
Contagem de partições O número de partições em um pipeline do Processador de Dados. Sim N/D 3
Tipo O tipo de particionamento a ser usado: Partição id ou Partição key. Sim key key
Expression A expressão jq a ser executada na mensagem de entrada para computar a Partição id ou a Partição key. Sim N/D .topic

Você fornece uma expressão jq que se aplica a toda a mensagem que chega no pipeline do processador de dados para gerar a chave de partição ou a ID da partição. A saída dessa consulta não deve exceder 128 caracteres.

Tipo de particionamento

Há dois tipos de particionamento que você pode configurar:

Chave de partição

Especifique uma expressão jq que compute dinamicamente uma cadeia de caracteres de chave de partição lógica para cada mensagem:

  • O gerenciador de partições atribui automaticamente chaves de partição a partições físicas pelo gerenciador de partições.
  • Todos os dados correlacionados, como últimos valores conhecidos e agregações, têm como escopo uma partição lógica.
  • A ordem dos dados em cada partição lógica é garantida.

Esse tipo de particionamento é mais útil quando você tem dezenas ou mais agrupamentos lógicos de dados.

ID da Partição

Especifique uma expressão jq que compute dinamicamente uma ID de partição física numérica para cada mensagem, por exemplo .topic.assetNumber % 8.

  • As mensagens são colocadas na partição física especificada.
  • Todos os dados correlacionados têm como escopo uma partição física.

Esse tipo de particionamento é mais adequado quando você tem um pequeno número de agrupamentos lógicos de dados ou deseja um controle preciso sobre o dimensionamento e a distribuição de trabalho. O número de IDs de partição produzidas deve ser um inteiro e não deve exceder o valor de 'partitionCount' – 1.

Considerações

Ao escolher uma estratégia de particionamento para o pipeline:

  • A ordenação de dados é preservada em uma partição lógica, pois é recebida dos tópicos do agente MQTT.
  • Escolha uma estratégia de particionamento com base na natureza dos dados de entrada e dos resultados desejados. Por exemplo, o último estágio de valor conhecido e o estágio de agregação executam operações em cada partição lógica.
  • Selecione uma chave de partição que distribua dados uniformemente em todas as partições.
  • Aumentar a contagem de partições pode melhorar o desempenho, mas também consome mais recursos. Equilibre essa compensação com base em seus requisitos e restrições.