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 作业)。
您可以使用 Kafka Connect 和 BigQuery or GCS 连接器。
- Here is an example from WePay.
- This blog 展示了使用 Kafka Connect 将数据从 Kafka 写入 GCS 和 BigQuery。
- this repo 上有各种资源供您自己在 GCP 上使用 运行 Kafka Connect。
在转换方面,您可能对 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 服务中摄取。
来自主题的 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 作业)。
您可以使用 Kafka Connect 和 BigQuery or GCS 连接器。
- Here is an example from WePay.
- This blog 展示了使用 Kafka Connect 将数据从 Kafka 写入 GCS 和 BigQuery。
- this repo 上有各种资源供您自己在 GCP 上使用 运行 Kafka Connect。
在转换方面,您可能对 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 服务中摄取。