【问题标题】:Kafka to Google Cloud Platform Dataflow ingestionKafka 到 Google Cloud Platform 数据流提取
【发布时间】:2019-06-02 12:02:42
【问题描述】:

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

根据, is it possible to Use Kafka with 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 流/Spark 作业。

鉴于数据完全托管在 Google Cloud Platform (GCP) 上,在设计决策期间需要考虑哪些因素?

【问题讨论】:

    标签: apache-kafka google-cloud-platform google-cloud-dataflow


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      您可以使用 Kafka Connect 和 BigQueryGCS 连接器。

      在转换方面,您可能对 KSQL(基于 Kafka Streams 构建)感兴趣,the same blog 也有介绍。

      免责声明:我为 Confluent 工作并编写了上述一些材料。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2021-12-04
          • 1970-01-01
          • 2015-02-21
          • 2021-08-21
          • 2020-05-03
          • 1970-01-01
          • 2021-10-21
          • 2021-11-23
          • 2018-02-20
          相关资源
          最近更新 更多