Snowflake High Performance connector for Kafka

Ce chapitre décrit les concepts de base du Snowflake High Performance connector for Kafka, ses cas d’utilisation et ses avantages, ses fonctionnalités clés et ses limites.

Note

Le Snowflake High Performance connector for Kafka est un connecteur récepteur qui lit les données des sujets Kafka et les charge dans des tables Snowflake. Pour plus d’informations sur Kafka Connect et son framework, voir Apache Kafka et framework Kafka Connect.

Avantages

Le Snowflake High Performance 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.

  • Facturation simplifiée : fournit une facturation transparente basée sur le débit, ce qui rend les coûts plus prévisibles et plus faciles à comprendre.

  • 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.

  • 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

    Le connecteur Snowflake Connector haute performance pour Kafka n’est pas encore disponible sur Confluent Cloud. Si vous utilisez Confluent Cloud, vous devez installer le connecteur manuellement en tant que connecteur de plugin personnalisé.

    La version Confluent est conçue sous forme de fichier zip pour une installation via Confluent Hub ou Confluent Control Center et comprend toutes les bibliothèques externes nécessaires à l’exécution du connecteur.

    Choisissez cette version si vous utilisez Confluent Platform ou Confluent Cloud.

    Veuillez contacter l’assistance de Snowflake pour obtenir et installer la version Confluent du connecteur.

    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 High Performance 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 et inférieure

Le connecteur ne prend pas en charge la migration des pipelines existants depuis la version 3.x et les versions antérieures. Vous devez migrer manuellement les pipelines existants vers le nouveau connecteur. Assurez-vous que les pipelines existants ne dépendent pas de fonctionnalités qui ne sont pas encore disponibles avec ce connecteur.

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.router qui n’est actuellement pas pris en charge.

Tous les enregistrements interrompus sont envoyés à la file d’attente de lettres mortes (DLQ) par le connecteur.

Une fois errors.tolerance=all et errors.deadletterqueue.topic.name configurés, le connecteur garantit la livraison au maximum une fois. Seuls les enregistrements non convertis sont envoyés à la DLQ par Kafka Connect. Les enregistrements qui échouent lors de l’ingestion dans Snowflake ne sont pas acheminés vers celle-ci ; Snowpipe Streaming peut détecter que des enregistrements ont échoué, mais pas lesquels précisément.

Les enregistrements interrompus qui n’ont pas pu être ingérés doivent être réessayés manuellement

Lorsque errors.tolerance=none et rows_error_count augmente, la tâche du connecteur échoue. Pour réexécuter les enregistrements interrompus, examinez l’historique du canal pour trouver les enregistrements interrompus. Pour plus d’informations sur le dépannage des enregistrements interrompus et des erreurs d’ingestion, voir traitement des erreurs. Vous pouvez également utiliser la technique de recherche des écarts décrite dans la section Détecter les erreurs et y remédier à l’aide des décalages de métadonnées. Les informations de décalage Kafka nécessaires pour utiliser cette technique sont disponibles dans la colonne RECORD_METADATA.

Limitations de la tolérance aux pannes avec le connecteur

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.

Prise en charge de Snowflake pour le connecteur

Le tableau suivant décrit les versions prises en charge et les informations relatives aux candidats à la pré-version et à la version.

Série de versions

Statut

Remarques

4.x.x

Avant-première privée

Accès anticipé : Actuellement, la migration à partir des versions 3.x et 2.x n’est pas prise en charge.

3.x.x

Officiellement pris en charge

Dernière version et fortement recommandée.

2.x.x

Officiellement pris en charge

Mise à niveau recommandée.

1.x.x

Non pris en charge

Les fonctionnalités suivantes ne sont pas prises en charge :

Changements majeurs dans la version en prévisualisation

Consultez les notes de version des versions en prévisualisation pour obtenir une liste des changements majeurs.

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 High Performance connector for Kafka relative aux étapes de configuration du Snowflake High Performance connector for Kafka.