Ce document fournit des conseils aux développeurs, aux architectes et aux décideurs sur les options de migration des données Kafka externes vers Google Cloud, de reprise après sinistre, d'intégration à BigQuery et de capture de données modifiées (CDC) à partir de bases de données.
Dans Google Cloud, vous pouvez transférer des données Kafka vers un cluster Google Cloud Managed Service pour Apache Kafka ou vers un autre produit Google, tel qu'une table BigQuery ou un emplacement Cloud Storage. Pour obtenir un récapitulatif, consultez le tableau suivant.
| Cas d'utilisation | Source de données | Destination des données | Solution recommandée |
|---|---|---|---|
| Copier les données | Cluster Apache Kafka autogéré | Cluster Managed Service pour Apache Kafka | Créez un connecteur source MirrorMaker 2.0 dans un cluster Connect. |
| Analyser des données dans un entrepôt de données | Cluster Managed Service pour Apache Kafka | BigQuery | Créez un connecteur de récepteur BigQuery dans un cluster Connect. |
| Migrer des données avec la synchronisation | Cluster Kafka autogéré | Cluster Managed Service pour Apache Kafka | Créez un connecteur source MirrorMaker 2.0 dans un cluster Connect. |
| Répliquer un cluster entre régions | Managed Service pour Apache Kafka (région A) | Cluster Managed Service pour Apache Kafka (région B) | Créez un connecteur source MirrorMaker 2.0 dans un cluster Connect. |
| Sauvegarder des données | Managed Service pour Apache Kafka | Cloud Storage | Créez un connecteur de récepteur Cloud Storage dans un cluster Connect. |
| Capturer les modifications apportées à la base de données | Base de données relationnelle, Spanner ou Bigtable | Managed Service pour Apache Kafka | Exécuter un pipeline Apache Beam sur Dataflow |
| Traiter des données avec Apache Spark | Managed Service pour Apache Kafka | Apache Spark | Exécutez Dataproc sur Compute Engine. |
Solutions recommandées pour migrer vos données Kafka
Google Cloud propose plusieurs solutions pour intégrer vos données Kafka. Chaque offre présente des avantages uniques en fonction de vos besoins et de votre infrastructure existante. La meilleure méthode d'intégration pour vous dépend de vos systèmes existants, de vos compétences actuelles et de votre capacité à gérer l'infrastructure.
Utiliser Kafka Connect
Google Cloud Managed Service pour Apache Kafka vous permet de provisionner des clusters qui exécutent Kafka Connect. L'objectif principal de Kafka Connect est de connecter votre cluster Managed Service pour Apache Kafka à d'autres systèmes pour des cas d'utilisation tels que la migration, la sauvegarde, la reprise après sinistre, la haute disponibilité et l'intégration de données. Nous vous recommandons d'utiliser Kafka Connect pour les tâches d'intégration de données les plus courantes pour Managed Service pour Apache Kafka. Kafka Connect présente plusieurs avantages :
Connectez vos clusters Kafka externes à différentes sources et récepteurs de données Google Cloud à l'aide de connecteurs intégrés. Les clusters Kafka externes incluent Managed Service pour Apache Kafka, les clusters Kafka sur site et les déploiements cloud personnalisés. Voici quelques connecteurs compatibles :
Connecteurs MirrorMaker 2.0
Récepteur BigQuery
Récepteur Cloud Storage
Source Pub/Sub
Récepteur Pub/Sub
Profitez de l'évolutivité et de la fiabilité de l'infrastructure de Google Cloud, qui garantissent que vos pipelines de données peuvent gérer des volumes de données croissants et maintenir une haute disponibilité.
Déléguez la charge opérationnelle liée à la gestion de l'infrastructure Kafka Connect àGoogle Cloud.
Surveillez et gérez vos clusters Kafka Connect à l'aide des outils de surveillance et de journalisation de Google Cloud.
Pour en savoir plus sur Kafka Connect, consultez la présentation de Kafka Connect.
Via Dataflow
Le service de traitement de données sans serveur deGoogle Cloudpropose l'intégration de données par flux et par lot sans serveur. Vous pouvez utiliser Dataflow pour déplacer des données Kafka vers différents récepteurs, tels que des ensembles de données BigQuery ou des buckets Cloud Storage. Vous pouvez déployer des pipelines Dataflow à l'aide d'un modèle Dataflow ou en déployant un pipeline Apache Beam. Choisissez votre déploiement Dataflow en fonction des facteurs suivants :
Pour des déploiements plus simples et plus rapides, en particulier pour les tâches courantes d'intégration de données, choisissez des modèles Dataflow prédéfinis qui peuvent être déployés directement depuis la console.
Pour une flexibilité et un contrôle maximaux, et pour les cas d'utilisation complexes nécessitant une logique personnalisée, choisissez un pipeline Apache Beam.
Modèles intégrés
Les modèles Dataflow intégrés sont des pipelines Apache Beam prédéfinis que vous pouvez déployer dans un assistant de tâches facile à utiliser et sans code. Dataflow fournit plusieurs modèles Dataflow pour exporter des données Kafka vers Google Cloud.
Pipelines Apache Beam personnalisés
Les modèles Dataflow abordés dans la section précédente ne répondent peut-être pas à toutes vos exigences. Par exemple, vous devrez peut-être intégrer vos données Kafka à une source ou un récepteur qui n'est pas compatible avec ces modèles. Vous devrez peut-être également effectuer des transformations, des normalisations ou des mutations sur les enregistrements.
Dans ces scénarios, vous pouvez utiliser le SDK Apache Beam pour créer des pipelines pouvant être exécutés sur Dataflow.
Pour en savoir plus sur le modèle de programmation Apache Beam, y compris sur les concepts clés tels que les pipelines, les PCollections, les transformations et les exécuteurs, consultez Modèle de programmation pour Apache Beam.
Pour obtenir des ressources sur la programmation Apache Beam, y compris l'installation du SDK, les guides de programmation et les environnements interactifs, consultez Utiliser Apache Beam pour créer des pipelines. Ce document fournit également des liens pour concevoir, créer et tester votre pipeline, ainsi que des exemples de pipelines de flux.
Si vous devez écrire des flux de modifications (capture de données modifiées) dans Kafka, nous vous recommandons d'utiliser les composants suivants dans votre pipeline Dataflow :
DebeziumIO pour les bases de données relationnelles telles que Cloud SQL, MySQL, Postgres et SQL Server.
Flux de modifications Spanner pour Spanner
Flux de modifications Bigtable pour Bigtable
Dataflow fournit plusieurs ressources pour utiliser Kafka avec votre pipeline Dataflow :
Choisir entre Kafka Connect et Dataflow
Kafka Connect est généralement la solution de référence pour transférer des données entre des clusters Kafka, en particulier vers Managed Service pour Apache Kafka. MirrorMaker 2.0, qui fait partie de Kafka Connect, est bien adapté aux tâches telles que la migration de clusters, la sauvegarde, la reprise après sinistre ou les transformations de base. Kafka Connect accepte les transformations d'enregistrement par enregistrement pour les modifications de base par message.
Pour la migration de grands volumes de données nécessitant des transformations complexes, Dataflow est le choix le plus approprié. La force de Dataflow réside dans sa capacité à effectuer des opérations complexes basées sur des flux, y compris le nettoyage, l'enrichissement et l'agrégation des données, avant que celles-ci n'atteignent le cluster Managed Service pour Apache Kafka cible. Dataflow permet de joindre plusieurs flux de données avec une logique d'alignement et de fenêtrage avancée, qui est essentielle pour la corrélation et l'agrégation de données complexes. Cette fonctionnalité distingue Dataflow de Kafka Connect, qui est limité aux modifications de base par message.
Utiliser Dataproc pour les pipelines Spark
Ce service entièrement géré pour les charges de travail Apache Spark et Hadoop est idéal si vous disposez déjà de pipelines Spark. Les utilisateurs d'Apache Spark peuvent connecter des déploiements Spark existants à Managed Service pour Apache Kafka à l'aide de Dataproc. Dataproc est le service entièrement géré de Google Cloud pour les pipelines Spark. Il inclut des outils de gestion du cycle de vie des clusters. Par exemple, si vous disposez d'une application Spark qui traite des flux de données provenant de Kafka et que vous souhaitez migrer cette application vers Google Cloud, Dataproc serait un choix judicieux.
Pour Spark Streaming et Kafka, Apache Spark fournit un guide d'intégration. Pour vous aider à déployer des workflows Kafka courants, Dataproc fournit un certain nombre de modèles Open Source.