Snowflake Connector for Kafka¶
Le Snowflake Connector for Kafka (v4) est un connecteur récepteur qui lit les données d’un ou plusieurs sujets Kafka et charge celles-ci dans des tables Snowflake. Basé sur l’architecture Snowpipe Streaming hautes performances de Snowflake, le connecteur offre un débit jusqu’à 10 GB/s par table, avec 5 à 10 secondes de latence de bout en bout, ainsi qu’une sémantique de livraison ordonnée et unique.
Pour plus d’informations sur Kafka Connect et son framework, voir Apache Kafka et framework Kafka Connect.
Avantages¶
Le Snowflake Connector for Kafka exploite l’architecture Snowpipe Streaming hautes performances de Snowflake, qui est conçue pour les organisations modernes, à forte intensité de données, qui exigent des informations en quasi temps réel. Cette architecture nouvelle génération améliore considérablement le débit, l’efficacité et la flexibilité pour l’ingestion en temps réel dans Snowflake.
L’architecture hautes performances offre plusieurs avantages clés :
Débit supérieur et latence : conçue pour prendre en charge des vitesses d’ingestion pouvant atteindre 10 GB/s par table avec ingestion de bout en bout pour interroger des latences de 5 à 10 secondes, permettant des analyses en temps quasi réel.
Tarification forfaitaire basée sur le débit : La tarification est basée sur le volume de données ingérées (GB), le même modèle que l’architecture hautes performances de Snowpipe Streaming. Pour plus d’informations sur les tarifs, consultez Coût Snowpipe Streaming.
Performances améliorées : utilise un cœur client basé sur Rust qui offre de meilleures performances côté client et une utilisation moindre des ressources par rapport aux implémentations précédentes.
Transformations en cours : Prend en charge le nettoyage et la transformation des données lors de l’ingestion à l’aide de la syntaxe de la commande COPY dans l’objet PIPE, vous permettant de transformer les données avant qu’elles n’atteignent la table cible.
Validation des schémas côté serveur : déplace la validation des schémas du côté client vers le côté serveur via l’objet PIPE, garantissant la qualité des données et réduisant la complexité du client. Les enregistrements non valides sont capturés dans les tables d’erreurs pour l’inspection et la relecture.
Capacité de pré-clustering : peut regrouper les données lors de l’ingestion lorsque la table cible possède des clés de clustering définies, ce qui améliore les performances des requêtes sans nécessiter de maintenance après l’ingestion.
Le connecteur utilise les objets Snowflake PIPE comme composant central de la gestion de l’ingestion. L’objet PIPE agit en tant que point d’entrée et couche de définition pour toutes les données en continu, définissant comment les données sont traitées, transformées et validées avant d’être validées dans la table cible. Pour plus d’informations sur la manière dont le connecteur fonctionne avec les tables et les canaux, voir Comment le connecteur fonctionne-t-il avec les tables et les canaux ?.
Sélection d’une version de connecteur¶
Le connecteur Kafka fonctionne dans un cluster Kafka Connect. Il lit les données des sujets Kafka et écrit dans des tables Snowflake.
Snowflake fournit deux versions du connecteur. Les deux versions du connecteur offrent la même fonctionnalité de base pour le flux de données de Kafka vers Snowflake.
Version Confluent du connecteur
La version Confluent est empaquetée sous forme de fichier zip et comprend toutes les bibliothèques externes nécessaires à l’exécution du connecteur. Choisissez cette version si vous utilisez Confluent Platform.
Note
Le connecteur v4 n’est pas encore disponible en tant que connecteur Confluent Cloud natif. Sur Confluent Cloud, installez-le en tant que connecteur de plugin personnalisé. Contactez le Support Snowflake pour le paquet Confluent.
Pour plus d’informations, consultez Kafka Connect.
Version OSS Apache Kafka du connecteur
Disponible depuis le paquet logiciel open source (OSS) Paquet Apache Kafka.
La version Apache est distribuée en tant que fichier fat JAR standard et nécessite une installation manuelle dans votre cluster Apache Kafka Connect. Cette version nécessite les bibliothèques cryptographiques Bouncy Castle qui doivent être téléchargées séparément.
Pour plus d’informations, consultez Apache Kafka.
Utilisation du connecteur avec les tables Apache Iceberg™¶
Le connecteur peut ingérer des données dans une table Apache Iceberg™ gérée par Snowflake. Avant de configurer le connecteur Kafka pour l’ingestion de tables Iceberg, vous devez créer une table Iceberg. Pour plus d’informations, voir Créer une table Apache Iceberg™ pour l’ingestion.
Limitations¶
Le Snowflake Connector for Kafka a les limitations suivantes :
- Tables Apache Iceberg™ et évolution du schéma
Le connecteur ne prend pas en charge l’évolution du schéma pour les tables Apache Iceberg™.
- Migration des pipelines existants à partir de la version 3.x
Le connecteur v4 nécessite une nouvelle configuration (nouvelle classe de connecteur, propriétés supprimées, modification des valeurs par défaut). La migration à partir du mode Snowpipe et du mode Snowpipe Streaming est prise en charge sans espaces ni doublons lorsqu’elle est configurée correctement. Le basculement doit avoir lieu dans
offsets.retention.minutes(7 jours par défaut). Consultez Migrer de v3 à v4 pour plus de détails.- Transformations de message unique (SMTs) :
La plupart des transformations de message unique (SMTs) sont pris en charge lors de l’utilisation de convertisseurs communautaires, à l’exception de
regex.routerqui n’est actuellement pas pris en charge.- Authentification
Le connecteur ne prend en charge que l’authentification par paire de clés. OAuth n’est pas pris en charge dans v4.
- Le comportement de traitement des erreurs dépend du mode de validation
Avec la validation côté serveur, les enregistrements fractionnés sont capturés dans les tables d’erreurs. Avec la validation côté client, le connecteur échoue immédiatement sur les enregistrements non valides, ou les achemine vers une file d’attente de lettres mortes (DLQ) lorsque
errors.tolerance=allest configuré. Pour plus de détails, consultez Validation et traitement des erreurs.
Limitations de la tolérance aux pannes¶
Les sujets Kafka peuvent être configurés avec une limite d’espace de stockage ou de durée de conservation.
Si le système est hors ligne pendant une durée supérieure à la durée de conservation, les enregistrements expirés ne seront pas chargés. De même, si la limite d’espace de stockage de Kafka est dépassée, certains messages ne seront pas remis.
Si les messages du sujet Kafka sont supprimés, ces modifications risquent de ne pas être reflétées dans la table Snowflake.
Pour plus d’informations sur les SMTs, voir Référence de transformation de message Kafka Connect pour Confluent Cloud ou Confluent Platform.
Versions de connecteurs prises en charge¶
La table suivante décrit les versions de connecteurs prises en charge.
Série de versions |
Statut |
Remarques |
|---|---|---|
4.x.x |
Disponible de manière générale |
Dernière version. La migration depuis 3.x et 2.x doit être effectuée manuellement. |
3.x.x |
Officiellement pris en charge |
Mise à niveau vers v4 recommandée. |
2.x.x |
Officiellement pris en charge |
Mise à niveau recommandée. |
1.x.x |
Non pris en charge |
Note
Vous recherchez le connecteur Kafka classique (v3 et versions antérieures) ? Consultez Connecteur Kafka v3 (classique). Pour des conseils sur la migration, consultez Migrer de v3 à v4.
Prochaines étapes¶
Consultez la rubrique comment fonctionne le connecteur pour plus d’informations sur la façon dont le connecteur fonctionne avec les tables et les canaux. . Consultez la rubrique Configurer des tâches pour le Snowflake Connector for Kafka relative aux étapes de configuration du Snowflake Connector for Kafka.