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 está incluída no pacote como um arquivo zip para instalação pelo Confluent Hub ou Confluent Control Center e contém todas as bibliotecas externas necessárias para executar o conector.
Escolha essa versão você usa a Confluent Platform 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, 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.
Usando 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 Criar uma tabela Apache Iceberg™ para ingestão para obter mais informações.
Limitações¶
O Snowflake High Performance 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 e anteriores
O conector não oferece suporte à migração de pipelines existentes da versão 3.x e anteriores. Você deve migrar manualmente os pipelines existentes para o novo conector. Certifique-se de que os pipelines existentes não dependam de nenhum recurso que ainda não esteja disponível nesse 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.- Nem todos os registros corrompidos são enviados para a fila de mensagens mortas (Dead Letter Queue, DLQ) pelo conector
Com
errors.tolerance=alleerrors.deadletterqueue.topic.nameconfigurados, o conector garante a entrega no máximo uma vez. Somente registros não conversíveis são enviados à DLQ pelo Kafka Connect. Os registros com falha na ingestão do Snowflake não são roteados para a fila. O Snowpipe Streaming pode detectar que houve falha em registros, mas não quais registros específicos.- Registros corrompidos que não foram ingeridos precisam ser repetidos manualmente
Quando
errors.tolerance=noneerows_error_countaumentam, a tarefa do conector falha. Para repetir os registros corrompidos, revise o histórico do canal para encontrá-los. 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 colunaRECORD_METADATA.
Limitações da tolerância a falhas com o conector¶
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, entã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.
Suporte do Snowflake para o conector¶
A tabela a seguir descreve as versões compatíveis e as informações sobre os 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 |
Os seguintes recursos não são compatíveis:
Alterações interruptivas na versão preliminar¶
Consulte as notas de lançamento das versões preliminares para obter uma lista de alterações interruptivas
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 High Performance connector for Kafka para conferir as etapas para configurar o Snowflake High Performance connector for Kafka.