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.
Confluent version of the connector
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.
The Confluent version is packaged as a zip file for installation through Confluent Hub or Confluent Control Center and includes all external libraries required to run the connector.
Choose this version if you’re using the Confluent Platform or Confluent Cloud.
Entre em contato com o suporte Snowflake para obter e instalar a versão Confluent do conector.
For more information, see Kafka Connect.
OSS Apache Kafka version of the connector
Disponível no pacote do Apache Kafka de software de código aberto (OSS).
The Apache version is distributed as a standard fat JAR file and requires manual installation into your Apache Kafka Connect cluster. This version requires Bouncy Castle cryptography libraries that must be downloaded separately.
For more information, see 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
The connector does not support migration of the existing pipelines from version 3.x and earlier. You must manually migrate the existing pipelines to the new connector. Ensure that existing pipelines don’t rely on any features that are not yet available with this connector.
- 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.- Not all broken records are sent to Dead Letter Queue (DLQ) by the connector
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
When
errors.tolerance=noneandrows_error_countincreases, the connector task fails. To retry broken records, review the channel history to find the broken records. For more information about troubleshooting broken records and ingestion errors see error handling. You can also use gap finding technique described in Detecção e recuperação de erros usando offsets de metadados. Kafka offset information needed to use this technique is available in theRECORD_METADATAcolumn.
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.
Snowflake support for the connector¶
The following table describes the supported versions and information about pre-release and release candidates.
Série de lançamento |
Status |
Notas |
|---|---|---|
4.x.x |
Versão preliminar privada |
Early access. Currently the migration from 3.x and 2.x is not supported. |
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:
Breaking changes in the Preview version¶
See the release notes for the Preview versions for a list of breaking changes
Próximos passos¶
Review how the connector works topic for more information about how the connector works with tables and pipes. . Review Configurar tarefas para Snowflake High Performance connector for Kafka topic for the steps to set up the Snowflake High Performance connector for Kafka.