Kafka 到 Google 云平台数据流摄取

Kafka to Google Cloud Platform Dataflow ingestion

来自主题的 Kafka 数据可以流式传输、使用和摄取到 BigQuery/Cloud 存储中的可能选项有哪些。

根据,

GCP 附带 Dataflow,它建立在 Apache Beam 编程模型之上。 KafkaIO 与 Beam Pipeline 一起使用是对传入数据执行实时转换的推荐方法吗?

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

Kafka 数据可以推送到云 pub-sub,然后推送到 BigQuery table。也可以使用不在 GCP 之外的 Kafka streams/Spark 作业。

鉴于数据完全托管在 Google 云平台 (GCP) 上,在设计决策过程中需要考虑哪些因素?

Kafka 支持于 2016 年通过 KafkaIO 组转换添加到 Apache Beam。这意味着 Dataflow 也支持它。

将数据加载到 BigQuery 中最简单的方法是在 Dataflow 上使用 Apache Beam 管道 运行。您的管道看起来像这样:

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();

在 Dataflow 上使用 Beam 管道的优点是您不必管理数据读取的偏移量、状态和一致性(相对于从 Kafka->BQ 读取的自定义编写进程);也不是集群(相对于 Spark 作业)。

最后,这是一个example of a pipeline using KafkaIO

您可以使用 Kafka Connect 和 BigQuery or GCS 连接器。

在转换方面,您可能对 KSQL(基于 Kafka Streams 构建)感兴趣,并且在 the same blog.

中也有介绍

免责声明:我为 Confluent 工作并写了上面的一些内容 material。

另一个可能的选择是 to use the Kafka Connect connector maintained by Google 将数据从 Kafka 上传到 Pub-Sub。从 Pub-Sub,您可以轻松地使用 Dataflow 在 BigQuery 或其他 Google 服务中摄取。