Snowflake Connector for Kafka¶
O Snowflake Connector for Kafka (v4) é um conector do tipo coletor que lê os dados de um ou mais tópicos do Apache Kafka e carrega esses dados nas tabelas do Snowflake. Criado na arquitetura de alto desempenho do Snowpipe Streaming do Snowflake, o conector fornece até 10 GB/s de taxa de transferência com latência ponta a ponta de 5 a 10 segundos, com semântica de entrega ordenada e exatamente uma vez.
Para obter mais informações sobre o Kafka Connect e sua estrutura, consulte The Apache Kafka and Kafka connect framework.
Benefícios¶
O Snowflake 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.
Precificação fixa baseada em taxa de transferência: a precificação é baseada no volume de dados ingeridos (GB), o mesmo modelo da arquitetura de alto desempenho do Snowpipe Streaming. Para detalhes sobre precificação, consulte o custo do Snowpipe Streaming.
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. Registros inválidos são capturados em tabelas de erros para inspeção e repetição.
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 How the connector works with tables and pipes.
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
A versão Confluent está incluída no pacote como um arquivo zip e conta com todas as bibliotecas externas necessárias para executar o conector. Escolha essa versão se você usa a Confluent Platform.
Nota
O conector v4 ainda não está disponível como um conector Confluent Cloud nativo. Na Confluent Cloud, instale-o como um conector de plugin personalizado. Entre em contato com o suporte Snowflake para saber mais sobre o pacote Confluent.
Para obter mais informações, consulte Kafka Connect.
Versão Apache Kafka OSS do conector
Disponível no pacote do Apache Kafka de software de código aberto (OSS).
A versão Apache é distribuída como um aquivo fat JAR padrão e requer instalação manual no cluster do Apache Kafka Connect. Essa versão requer as bibliotecas de criptografia Bouncy Castle, que devem ser baixadas separadamente.
Para obter mais informações, consulte Apache Kafka.
Usar o conector com tabelas Apache Iceberg™¶
O conector pode ingerir dados em tabelas Apache Iceberg™ gerenciadas pelo Snowflake. Antes de configurar o conector Kafka para ingestão de tabelas Iceberg, você deve criar uma tabela Iceberg. Consulte Create an Apache Iceberg™ table for ingestion para obter mais informações.
Limitações¶
O Snowflake Connector for Kafka tem as limitações a seguir.
- Tabelas Apache Iceberg™ e evolução de esquema
O conector não oferece suporte à evolução de esquema para tabelas Apache Iceberg™.
- Migração dos pipelines existentes da versão 3.x
O conector v4 requer uma nova configuração (nova classe de conector, propriedades removidas, padrões alterados). Quando configurada corretamente, a migração do modo Snowpipe e do modo Snowpipe Streaming é suportada sem lacunas ou duplicatas. A alternância deve ocorrer em até
offsets.retention.minutes(o padrão é 7 dias). Consulte migrar de v3 para v4 para saber mais.- 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.- Autenticação
O conector é compatível apenas com a autenticação de pares de chaves. O OAuth não é compatível com a v4.
- O comportamento de tratamento de erros depende do modo de validação
Com a validação do lado do servidor, os registros corrompidos são capturados nas tabelas de erros. Com a validação do lado do cliente, o conector falha imediatamente em registros inválidos ou os encaminha para uma fila de mensagens mortas (DLQ) quando
errors.tolerance=allestá configurado. Para mais detalhes, consulte validação e tratamento de erros.
Limitações da tolerância a falhas¶
Os tópicos do Kafka podem ser configurados com um limite de espaço de armazenamento ou de tempo de retenção.
Se o sistema ficar offline por mais do que o tempo de retenção, os registros expirados não serão carregados. Da mesma forma, se o limite do espaço de armazenamento do Kafka for excedido, algumas mensagens não serão entregues.
Se as mensagens no tópico do Kafka forem excluídas, essas alterações talvez não sejam refletidas na tabela do Snowflake.
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ões de conector compatíveis¶
A tabela a seguir descreve as versões de conector compatíveis.
Série de lançamento |
Status |
Notas |
|---|---|---|
4.x.x |
Disponibilidade geral |
Versão mais recente. A migração de 3.x e 2.x deve ser feita manualmente. |
3.x.x |
Com suporte oficial |
Recomenda-se a atualização para a v4. |
2.x.x |
Com suporte oficial |
Atualização recomendada. |
1.x.x |
Sem suporte |
Nota
Procurando o conector Kafka clássico (v3 e anterior)? Consulte conector Kafka v3 (clássico). Para orientações sobre migração, consulte Migrar da v3 para v4.
Próximos passos¶
Consulte o tópico sobre como funciona o conector para obter mais informações do funcionamento do conector com tabelas e canais. . Revise o tópico Configurar tarefas para Snowflake Connector for Kafka para conferir as etapas para configurar o Snowflake Connector for Kafka.