kafka到google云平台数据流摄取

ygya80vv  于 2021-06-07  发布在  Kafka
关注(0)|答案(3)|浏览(368)

主题中的kafka数据可以流式传输、消费和接收到bigquery/云存储中的可能选项有哪些。
那么,有没有可能将kafka与google云数据流结合使用呢
gcp附带了建立在apachebeam编程模型之上的数据流。kafkaio使用beam pipeline是对传入数据执行实时转换的推荐方法吗?
https://beam.apache.org/releases/javadoc/2.5.0/org/apache/beam/sdk/io/kafka/kafkaio.html
kafka数据可以推送到cloud pub sub,然后推送到bigquery表。Kafka流/Spark工作,将坐在外的gcp也可以使用。
如果数据完全托管在google云平台(gcp)上,那么在设计决策过程中需要考虑哪些因素?

1zmg4dgp

1zmg4dgp1#

另一个可能的选择是使用由google维护的kafka connect连接器将数据从kafka上传到pub-sub。从pub-sub,您可以轻松地使用dataflow在bigquery或其他google服务中接收数据。

5rgfhyps

5rgfhyps2#

2016年,kafka支持被添加到apachebeam中,其中包含了kafkaio的一组转换。这意味着数据流也支持它。
要将数据加载到bigquery中,最简单的方法是在dataflow上运行apachebeam管道。你的管道看起来是这样的:

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

在数据流上使用beam管道的优点是,您不必管理数据读取的偏移量、状态和一致性(与从kafka->bq读取的自定义编写进程相比);也不是一个集群(而不是一个Spark作业)。
最后,这里是一个使用kafkaio的管道示例。

kmb7vmvb

kmb7vmvb3#

您可以使用kafka connect和bigquery或gcs连接器。
下面是wepay的一个例子。
这个博客展示了使用kafkaconnect将kafka的数据写入gcs和bigquery。
在这个repo上有各种资源可供您自己在gcp上运行kafka connect。
就转换而言,您可能对ksql(它构建在kafka流之上)感兴趣,并且在同一个博客中也有介绍。
免责声明:我为confluent工作,并写了一些上述材料。

相关问题