Snowflake High Performance connector for Kafka

Este tópico descreve conceitos básicos do Snowflake High Performance connector for Kafka, casos de uso, benefícios, principais recursos e limitações.

Nota

O Snowflake High Performance connector for Kafka é um conector do tipo coletor que lê os dados de tópicos do Kafka e carrega esses dados nas tabelas do Snowflake. Para obter mais informações sobre o Kafka Connect e sua estrutura, consulte A estrutura do Apache Kafka e do Kafka Connect.

Benefícios

O Snowflake High Performance connector for Kafka aproveita a arquitetura do Snowpipe Streaming de alto desempenho do Snowflake, que foi projetada para organizações modernas, com uso intensivo de dados, que exigem insights quase em tempo real. Essa arquitetura de última geração melhora significativamente a produtividade, a eficiência e a flexibilidade para a ingestão em tempo real no Snowflake.

A arquitetura de alto desempenho oferece várias vantagens importantes:

  • Produtividade e latência superiores: projetada para oferecer suporte a uma velocidade de ingestão de até 10 GB/s por tabela, com ingestão de ponta a ponta para consultar latências entre 5 e 10 segundos, permitindo uma análise quase em tempo real.

  • Faturamento simplificado: oferece faturamento transparente e baseado na produtividade, o que torna os custos mais previsíveis e fáceis de entender.

  • Desempenho aprimorado: utiliza um núcleo de cliente baseado em Rust que oferece melhor desempenho do lado do cliente e menor uso de recursos em comparação com implementações anteriores.

  • Transformações em andamento: oferece suporte à limpeza e reformulação de dados durante a ingestão usando a sintaxe do comando COPY no objeto PIPE, permitindo transformar os dados antes que cheguem à tabela de destino.

  • Validação do esquema no lado do servidor: move a validação do esquema do lado do cliente para o lado do servidor por meio do objeto PIPE, garantindo a qualidade dos dados e reduzindo a complexidade do cliente.

  • Recurso de pré-clustering: pode clusterizar os dados durante a ingestão quando a tabela de destino tem chaves de clustering definidas, melhorando o desempenho das consultas sem exigir manutenção pós-ingestão.

O conector usa os objetos Snowflake PIPE como componentes centrais para gerenciar a ingestão. O objeto PIPE atua como ponto de entrada e camada de definição para todos os dados de streaming, definindo como os dados são processados, transformados e validados antes de serem confirmados na tabela de destino. Para obter mais informações sobre como o conector funciona com tabelas e canais, consulte Como o conector funciona com tabelas e canais.

Escolhendo uma versão de conector

O conector Kafka funciona em um cluster Kafka Connect, lendo dados dos tópicos do Kafka e gravando-os em tabelas do Snowflake.

O Snowflake oferece duas versões do conector: Ambas as versões do conector fornecem a mesma funcionalidade principal para streaming de dados do Kafka para o Snowflake.

  • Versão Confluent do conector

    O conector Snowflake de alto desempenho para Kafka ainda não está disponível no Confluent Cloud. Se você usa o Confluent Cloud, deve instalar o conector manualmente como um conector de plug-in personalizado.

    A versão Confluent já faz parte do pacote para fácil instalação pelo Confluent Hub ou Confluent Control Center e inclui otimizações para o ambiente da plataforma Confluent.

    Escolha essa versão se você usa a plataforma Confluent, a imagem docker do Confluent Kafka ou o Confluent Cloud.

    Entre em contato com o suporte Snowflake para obter e instalar a versão Confluent do conector.

    Para obter mais informações sobre o Kafka Connect, consulte https://docs.confluent.io/current/connect/.

  • open source software (OSS) Apache Kafka package https://mvnrepository.com/artifact/com.snowflake/snowflake-kafka-connector/: a versão OSS do Apache Kafka do conector.

    A versão do Apache é distribuída como um aquivo JAR padrão e requer instalação manual no cluster do Apache Kafka Connect. Escolha essa versão se você executa o Apache Kafka.

    Para obter mais informações sobre o Apache Kafka, consulte https://kafka.apache.org/.

Limitações

O Snowflake High Performance connector for Kafka tem as limitações a seguir.

Criação de tabela:

as tabelas de destino devem ser criadas manualmente antes de iniciar o conector. O conector não cria tabelas automaticamente.

Migração da versão 3.x e anteriores

Você pode migrar manualmente os pipelines existentes da versão 3.x e anteriores para o novo conector. Certifique-se de que os pipelines existentes não dependam de nenhum recurso que ainda não esteja disponível no novo conector.

Estabilidade de configuração

Os nomes dos parâmetros de configuração estão sujeitos a alterações durante a fase da versão preliminar privada. Qualquer parâmetro de configuração que você usa pode ser renomeado ou reestruturado antes da versão preliminar pública. A Snowflake fornecerá orientação para migração quando os nomes dos parâmetros forem alterados.

Limitações do conector Kafka

Migração dos pipelines existentes da versão 3.x e anteriores

O conector não oferece suporte à migração dos pipelines existentes da versão 3.x e anteriores. Você deve migrar manualmente os pipelines existentes para o novo conector.

Transformações de mensagem única (SMTs):

A maioria das transformações de mensagem única (Single Message Transformations, SMTs) é compatível com o uso de conversores de comunidade, com exceção de regex.router, que não é compatível no momento.

Para mais informações sobre SMTs, consulte Referência de transformação de mensagem única do Kafka Connect para Confluent Cloud ou Confluent Platform.

Versão Kafka compatível

Importante

Somente certas versões do conector não são compatíveis. Consulte a tabela abaixo para ver as versões compatíveis e as informações sobre candidatos a pré-lançamento e lançamento.

Série de lançamento

Status

Notas

4.x.x

Versão preliminar privada

Acesso antecipado. Atualmente, a migração das versões 3.x e 2.x não é aceita.

3.x.x

Com suporte oficial

Versão mais recente e fortemente recomendada.

2.x.x

Com suporte oficial

Atualização recomendada.

1.x.x

Sem suporte

Não utilize esta série de lançamento.

Recursos sem suporte

Os seguintes recursos não são compatíveis:

Evolução do esquema

Não há suporte para a evolução do esquema. É necessário gerenciar as alterações de esquema manualmente. Consulte Evolução do esquema para obter mais informações.

Tabelas Iceberg

Não há suporte para ingestão em tabelas Iceberg.

Criação automática de tabelas

O conector não cria tabelas automaticamente. Você deve criar tabelas manualmente antes de iniciar o conector.

Registros corrompidos não são enviados para a fila de mensagens mortas (Dead Letter Queue, DLQ) pelo conector

Se você definir errors.tolerance=all e errors.deadletterqueue.topic.name, somente registros não conversíveis serão enviados para a DLQ pelo manipulador de erro no nível do Kafka Connect. Se o registro for passado para o conector e não for ingerido no Snowflake, ele não será enviado para a DLQ. Esta é uma limitação existente do Snowpipe Streaming de alto desempenho. O conector não consegue detectar os registros que não foram ingeridos no Snowflake. Ele só pode detectar que uma certa quantidade de registros não foi ingerida. Por essa razão, o conector só garante a entrega no máximo uma vez com o parâmetro errors.tolerance=all.

Registros corrompidos que não foram ingeridos precisam ser repetidos manualmente

Se você definir errors.tolerance=none, o conector reprovará a tarefa assim que detectar que rows_error_count é maior que 0 no status do canal. Para tentar novamente os registros corrompidos, o usuário precisa encontrá-los consultando o histórico do canal. Para obter mais informações sobre a solução de registros corrompidos e erros de ingestão, consulte o tratamento de erros. Você também pode usar a técnica de localização de lacunas descrita em Detecção e recuperação de erros usando offsets de metadados. As informações de deslocamento do Kafka necessárias para usar essa técnica estão disponíveis na coluna RECORD_METADATA.

Externalização de segredos

O Snowflake recomenda a externalização de segredos como a chave privada e seu armazenamento em forma criptografada ou em um serviço de gerenciamento de chaves como o AWS Key Management Service (KMS), Microsoft Azure Key Vault ou HashiCorp Vault. Isto pode ser feito usando uma implementação ConfigProvider em seu cluster Kafka Connect.

Para obter mais informações, consulte a descrição do Confluent deste serviço.

Considerações sobre cache para testes e prototipagem

O conector armazena em cache as verificações de existência de tabela e canal para melhorar o desempenho durante rebalanceamentos de partição. No entanto, durante testes e prototipagem, esse comportamento de cache pode fazer com que o conector não detecte imediatamente tabelas ou canais criados de forma manual.

Problema: quando você cria manualmente uma tabela ou canal enquanto o conector está em execução, o conector pode continuar usando os resultados da verificação de existência armazenados em cache (o que pode indicar que o objeto não existe) por até 5 minutos por padrão. Isso pode levar a erros ou comportamentos inesperados durante o teste.

Recomendação para testes: para evitar problemas relacionados ao cache durante testes e prototipagem, configure ambos os parâmetros de expiração do cache com o valor mínimo de 1 milissegundo ou desabilite o cache:

snowflake.cache.table.exists.expire.ms=1
snowflake.cache.pipe.exists.expire.ms=1
Copy

Essa configuração garante que o conector execute novas verificações de existência em cada rebalanceamento de partição, permitindo que você veja imediatamente os efeitos das tabelas e dos canais criados de forma manual.

Importante

Essas configurações mínimas de cache são recomendadas apenas para teste e prototipagem. Em ambientes de produção, use os valores de expiração de cache padrão (5 minutos ou mais) para minimizar as consultas de metadados no Snowflake e melhorar o desempenho do rebalanceamento, especialmente ao manipular muitas partições.

Alterações interruptivas na versão preliminar privada

Consulte as notas de lançamento da versão preliminar privada para obter uma lista de alterações interruptivas

Próximos passos

Revise o tópico Configurar tarefas para Snowflake High Performance connector for Kafka para conferir as etapas para configurar o Snowflake High Performance connector for Kafka. . Consulte o tópico sobre como funciona o conector para obter mais informações do funcionamento do conector com tabelas e canais.