可以将主题中的Kafka数据流式传输,使用和摄取到BigQuery / Cloud存储中的可能选项是什么。
按照规定,可以将Kafka与Google Cloud Dataflow一起使用
GCP随附了基于Apache Beam编程模型构建的Dataflow。KafkaIO是否与Beam Pipeline一起使用是对传入数据进行实时转换的推荐方式?
https://beam.apache.org/releases/javadoc/2.5.0/org/apache/beam/sdk/io/kafka/KafkaIO.html
Kafka数据可以推送到云pub-sub,然后推送到BigQuery表。也可以使用GCP之外的Kafka流/火花作业。
鉴于数据完全托管在Google Cloud Platform(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作业)。
最后,这是一个使用KafkaIO的管道示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句