Ajuste de desempenho do Openflow Connector para Kafka

Nota

O conector está sujeito aos Termos do conector Snowflake.

Este tópico fornece orientação para otimizar o desempenho de Snowflake Openflow Connector para Kafka a fim de obter a melhor taxa de transferência e minimizar a latência ao ingerir dados no Snowflake.

Considerações de desempenho

Ao configurar o Openflow Connector para Kafka para obter o desempenho ideal, considere os seguintes fatores principais que afetam a taxa de transferência e a latência da ingestão:

Configuração do Kafka

Contagem de partições

Mais partições permitem maior paralelismo, mas requerem uma coordenação cuidadosa com a configuração do consumidor. O excesso de partições pode causar vários problemas: aumento do uso de memória, seleções mais lentas do líder durante falhas e sobrecarga significativa de gerenciamento de metadados nos brokers.

Compressão

A compressão de mensagens pode reduzir a largura de banda da rede, mas aumenta a sobrecarga da CPU.

Otimização do FlowFile

Tamanho do FlowFile

Para otimizar o desempenho, os FlowFiles devem estar no intervalo de 1 a 10 MB em vez de conter mensagens pequenas individuais. Os FlowFiles maiores reduzem a sobrecarga de processamento e melhoram o rendimento, minimizando o número de operações de arquivos individuais. As configurações padrão devem produzir FlowFiles em uma faixa de tamanho aceitável. Espera-se que os FlowFiles sejam pequenos quando a taxa de transferência for baixa.

Se você observar pequenos arquivos de fluxo com alta taxa de transferência, entre em contato com o suporte Snowflake para obter assistência.

Rede e infraestrutura

Latência da rede

A menor latência entre os brokers Kafka e o Openflow melhora o desempenho geral. A Snowflake recomenda implantar os brokers Kafka e o Openflow na mesma região do CSP.

Recomendações do tamanho de nó

A tabela a seguir mostra recomendações de configuração com base nas características de carga de trabalho esperadas:

Tamanho do nó

Recomendado para

Capacidade da taxa de mensagens

Small (S)

Cenários de taxa de transferência baixa a moderada

Até 18 MB/s por nó

Medium (M)

Cenários de taxa de transferência moderada a alta

Até 145 MB/s por nó

Large (L)

Cenários de alto rendimento

Até 250 MB/s por nó

Práticas recomendadas de otimização de desempenho

Ajuste das tarefas simultâneas do processador

Para otimizar o desempenho do processador, você pode ajustar o número de tarefas simultâneas para ambos os processadores ConsumeKafka e PublishSnowpipeStreaming. As tarefas simultâneas permitem que os processadores executem vários threads ao mesmo tempo, melhorando o rendimento em cenários de alto volume.

Para ajustar as tarefas simultâneas de um processador, execute as seguintes tarefas:

  1. Clique com o botão direito do mouse no processador na tela do Openflow.

  2. Selecione Configure no menu de contexto.

  3. Navegue até a guia Scheduling.

  4. No campo Concurrent tasks, insira o número preferido de tarefas simultâneas.

  5. Selecione Apply para salvar a configuração.

Considerações importantes

Uso da memória

Cada tarefa simultânea consome memória adicional. Monitore o uso do heap de JVM ao aumentar as tarefas simultâneas.

Partições do Kafka

Para ConsumeKafka, o número de tarefas simultâneas multiplicado pelo número de nós de tempo de execução não deve exceder o número do total de partições do Kafka de todos os tópicos.

Comece de forma conservadora

Comece com valores mais baixos e aumente gradualmente enquanto monitora as métricas de desempenho.

Solução de problemas de desempenho: gargalos de desempenho comuns

Alto atraso do consumidor ou gargalos de ingestão do Snowflake

Se o atraso do consumidor Kafka estiver aumentando ou a ingestão do Snowflake estiver lenta, execute as seguintes tarefas:

  1. Verifique a conectividade da rede e a largura de banda entre os corretores Openflow e Kafka.

  2. Observe se a fila em frente ao processador PublishSnowpipeStreaming aumenta.

    1. Em caso afirmativo, considere adicionar tarefas simultâneas ao processador PublishSnowpipeStreaming nas limitações de intervalo fornecidas em Configurações recomendadas para tarefas simultâneas.

    2. Em caso negativo, considere adicionar tarefas simultâneas ao processador ConsumeKafka nas limitações de intervalo fornecidas em Configurações recomendadas para tarefas simultâneas.

  3. Considere usar um tipo de nó maior.

  4. Considere aumentar o número máximo de nós para o tempo de execução.

Pressão da memória

Se você estiver enfrentando problemas relacionados à memória:

  1. Reduza os tamanhos dos lotes para diminuir o volume de memória.

  2. Reduza o número de tarefas simultâneas para o processador ConsumeKafka.

  3. Considere a possibilidade de atualizar para um tipo de nó maior.

Problemas de latência da rede

Se você estiver enfrentando alta latência:

  1. Verifique a configuração da rede entre o Openflow e os sistemas externos.

  2. Considere a possibilidade de implementar o Openflow mais próximo do cluster do Kafka.

  3. Se estiver trabalhando com baixa taxa de transferência, considere reduzir as configurações de atraso do cliente no processador PublishSnowpipeStreaming e o tempo máximo não confirmado no processador ConsumeKafka.