Apache Kafka et framework Kafka Connect

Ce chapitre décrit les concepts de base d’Apache Kafka et du framework Kafka Connect.

Le logiciel Apache Kafka utilise un modèle de publication et d’abonnement pour écrire et lire des flux d’enregistrements, similaires à une file d’attente de messages ou à un système de messagerie d’entreprise. Kafka permet aux processus de lire et d’écrire des messages de manière asynchrone. Un abonné n’a pas besoin d’être connecté directement à un éditeur ; un éditeur peut mettre en file d’attente un message dans Kafka pour que l’abonné puisse le recevoir plus tard.

Une application publie des messages dans un sujet et une application s’abonne à un sujet pour recevoir ces messages.

Kafka Connect est un framework permettant de connecter Kafka à des systèmes externes, y compris des bases de données. Un cluster Kafka Connect est un cluster distinct du cluster Kafka. Le cluster Kafka Connect prend en charge les connecteurs en cours d’exécution et de dimensionnement (composants prenant en charge la lecture et/ou l’écriture dans des systèmes externes).

Kafka Connect peut être utilisé avec deux types de connecteurs :

  • Connecteurs sources : pour importer des données de systèmes externes dans des rubriques Kafka.

  • Connecteurs récepteurs : pour exporter les données des rubriques Kafka vers des systèmes externes.

Le connecteur Snowflake Connector haute performance pour Kafka est un connecteur récepteur qui lit les données des sujets Kafka et les charge dans des tables Snowflake.

Kafka Connect traite les problèmes opérationnels courants tels que :

  • Évolutivité : Kafka Connect peut se mettre à l’échelle horizontale en ajoutant des nœuds de travail au cluster.

  • Tolérance aux pannes : si un nœud de travail échoue, Kafka Connect redistribue automatiquement le travail vers d’autres nœuds disponibles.

  • Gestion des décalages : Kafka Connect suit les enregistrements qui ont été traités, garantissant ainsi que les données ne sont pas perdues ou dupliquées en cas de défaillance.

  • Gestion de la configuration : Les connecteurs peuvent être configurés et gérés via une API REST, ce qui facilite le déploiement et la surveillance des pipelines de données.