1
votes

Ingestion de Kafka vers Google Cloud Platform Dataflow

Quelles sont les options possibles selon lesquelles les données Kafka des sujets peuvent être diffusées, consommées et ingérées dans le stockage BigQuery / Cloud.

Selon, est-il possible d'utiliser Kafka avec Google cloud Dataflow

GCP est fourni avec Dataflow qui repose sur le modèle de programmation Apache Beam. L'utilisation de KafkaIO avec Beam Pipeline est-elle la méthode recommandée pour effectuer des transformations en temps réel sur les données entrantes?

https : //beam.apache.org/releases/javadoc/2.5.0/org/apache/beam/sdk/io/kafka/KafkaIO.html

Les données Kafka peuvent être transférées vers le pub-sub cloud, puis vers la table BigQuery. Les flux Kafka / tâche Spark qui ne seraient pas associés à GCP peuvent également être utilisés.

Quels sont les facteurs à prendre en compte lors de la décision de conception étant donné que les données sont entièrement hébergées sur Google Cloud Platform (GCP)?


0 commentaires

3 Réponses :


3
votes

La prise en charge de Kafka a été ajoutée à Apache Beam en 2016, avec KafkaIO ensemble de transformations. Cela signifie que Dataflow le prend également en charge.

La chose la plus simple pour charger des données dans BigQuery serait d'utiliser un pipeline Apache Beam exécuté sur Dataflow. Votre pipeline ressemblerait à ceci:

Pipeline p = Pipeline.create();

p.apply("ReadFromKafka", KafkaIO.read()
                                .withTopic(myTopic)...)
 .apply("TransformData", ParDo.of(new FormatKafkaDataToBigQueryTableRow(mySchema))
 .apply(BigQueryIO.writeTableRows()
                  .to(myTableName)
                  .withSchema(mySchema));

p.run().waitUntilFinish();

Les avantages de l'utilisation d'un pipeline Beam sur Dataflow sont que vous n'auriez pas à gérer les décalages, l'état et la cohérence des lectures de données ( vs un processus personnalisé qui lit à partir de Kafka-> BQ); ni un cluster (vs un travail Spark).

Enfin, voici un exemple de pipeline utilisant KafkaIO .


0 commentaires

2
votes

Vous pouvez utiliser Kafka Connect et BigQuery ou Connecteurs GCS .

En termes de transformation, vous pourriez être intéressé par KSQL (qui est construit sur Kafka Streams), et est également traité dans le même blog .

Clause de non-responsabilité: je travaille pour Confluent et j'ai écrit certains des documents ci-dessus.


0 commentaires