Spring Cloud Dataflow 与 Apache Beam/GCP 数据流说明
Spring Cloud Dataflow vs Apache Beam/GCP Dataflow Clarification
我很难理解 GCP Dataflow/Apache Beam 和 Spring Cloud Dataflow 之间的区别。我正在尝试做的是转向一个更加云原生的流数据处理解决方案,这样我们的开发人员可以更多地专注于开发核心逻辑而不是管理基础设施。
我们有一个现有的流媒体解决方案,它由 spring 云数据流 'modules' 组成,我们可以对其进行迭代和独立部署,就像微服务一样,效果很好,但我们希望迁移到我们业务提供的 GCP 中的现有平台,要求我们使用 GCP Dataflow。在高层次上,解决方案很简单:
流 1:
Kafka Source (S0) -> Module A1 (Ingest) -> Module B1 (Map) -> Module C1 (Enrich) -> Module D1 (Split) -> Module E1 (Send output to Sink S1)
流 2:
Kafka Source (S1) -> Module A2 (Ingest) -> Module B2 (Persist to DB) -> Module B3 (Send Notifications through various channels)
根据我的理解,我们想要转向的解决方案应该是相同的,但是模块将成为 GCP 数据流模块,source/sink 将成为 GCP Pub/Sub 而不是卡夫卡。
我遇到的大多数文档都没有将 SCDF 和 Apache Beam(GCP 数据流模块)作为类似的解决方案进行比较,所以我想知道 how/if 是否可以将我们现有的逻辑移植到那样的建筑。
如有任何说明,我们将不胜感激。提前致谢。
首先澄清一下:Spring Cloud Data Flow 与 GCP Dataflow 完全不同。
Spring Cloud Data Flow 可与 Apache Beam 媲美。都有描述数据转换的框架,比如ETL。
GCP Dataflow 是托管在 GCP 上的可自动扩展和托管的平台。它接受 Apache Beam Framework 描述的处理流程。 GCP Dataflow 负责 运行 管道,根据管道要求产生 VM 的数量,将流分派给这些 VM,...
Apache Beam 是一个开源项目,有很多连接器。很多关于 GCP(因为它最初是一个 Google 产品,已经开源),还有其他连接器,比如 kafka io connector。
Beam 还集成了不同的 运行ner:DirectRunner 用于在您当前的机器上启动管道,DataflowRunner 用于 运行GCP Dataflow 上的它,SparkRunner 用于 运行Hadoop 上的它星火集群,...
这是一个很好的解决方案,但与 Spring 云数据流没有任何直接关系、合规性和可移植性。您必须重写代码才能从一个传递到另一个。
希望这对您的理解有所帮助
我想为@guillaume-blaquiere 的回复加 1:"rewriting code"。让我也为这个主题添加更多色彩。
民防部队概况:
Spring 云数据流 (SCDF) 的核心只是一个 RESTful 服务,甚至是一个轻量级 Spring 引导应用程序。就这样。它不需要 运行 时间到 运行; Boot App 可以 运行 任何有 Java 的地方,包括在你的笔记本电脑或任何容器平台(k8s、cf、nomad 等)、任何云(aws、gcp、azure 等)上.
SCDF(启动应用程序/Über-jar)附带一个仪表板、Shell/CLI 和 API,因此开发人员和运营商可以使用它们来设计和部署流式或批处理数据管道。
SCDF 中的数据管道由 Spring Cloud Stream or Spring Cloud Task applications. Because these are standalone and autonomous microservice applications, users can patch or rolling-upgrade individual applications in isolation, without impacting the upstream or downstream applications in the data pipeline — more details about the architecture here.
组成
SCDF 与 GCDF:
Spring Cloud Stream 和 Spring Cloud Task 大致可与 Apache Beam 相媲美。这些是 SDK/libraries。
SCDF 另一方面,它与 Google Cloud Dataflow (GCDF) 中的数据管道有一些相似之处,但 GCDF 中的模块预计将使用 Apache Beam 构建。换句话说,您 不能 运行 Spring 引导 streaming/batch 微服务 运行 在 SCDF 中以 GCDF 作为模块 - 您将拥有使用 Apache Beam API 重写它们。 SCDF 和 GCDF 基金会都直接依赖于上述各自的框架及其功能。
要强调的另一个重要区别是 运行Apache Beam 模块所需的 运行 时间组件。在 GCDF 中,所有 runtime/runner 期望都对用户隐藏,因为它由 GCP 管理。然而,在 SCDF 中,要以高度可扩展的方式 运行 它,您可以选择您选择的平台。 SCDF 运行s 作为平台上的本机容器应用程序。
SCDF GKE/GCP:
您可以在 GCP 上配置 GKE 集群,并在 Kubernetes 中使用 SCDF 的 Helm Chart 到 运行 SCDF 和您当前的 streaming/batch(Spring Boot)应用程序GCP 上的托管服务。
我很难理解 GCP Dataflow/Apache Beam 和 Spring Cloud Dataflow 之间的区别。我正在尝试做的是转向一个更加云原生的流数据处理解决方案,这样我们的开发人员可以更多地专注于开发核心逻辑而不是管理基础设施。
我们有一个现有的流媒体解决方案,它由 spring 云数据流 'modules' 组成,我们可以对其进行迭代和独立部署,就像微服务一样,效果很好,但我们希望迁移到我们业务提供的 GCP 中的现有平台,要求我们使用 GCP Dataflow。在高层次上,解决方案很简单:
流 1:
Kafka Source (S0) -> Module A1 (Ingest) -> Module B1 (Map) -> Module C1 (Enrich) -> Module D1 (Split) -> Module E1 (Send output to Sink S1)
流 2:
Kafka Source (S1) -> Module A2 (Ingest) -> Module B2 (Persist to DB) -> Module B3 (Send Notifications through various channels)
根据我的理解,我们想要转向的解决方案应该是相同的,但是模块将成为 GCP 数据流模块,source/sink 将成为 GCP Pub/Sub 而不是卡夫卡。
我遇到的大多数文档都没有将 SCDF 和 Apache Beam(GCP 数据流模块)作为类似的解决方案进行比较,所以我想知道 how/if 是否可以将我们现有的逻辑移植到那样的建筑。
如有任何说明,我们将不胜感激。提前致谢。
首先澄清一下:Spring Cloud Data Flow 与 GCP Dataflow 完全不同。
Spring Cloud Data Flow 可与 Apache Beam 媲美。都有描述数据转换的框架,比如ETL。
GCP Dataflow 是托管在 GCP 上的可自动扩展和托管的平台。它接受 Apache Beam Framework 描述的处理流程。 GCP Dataflow 负责 运行 管道,根据管道要求产生 VM 的数量,将流分派给这些 VM,...
Apache Beam 是一个开源项目,有很多连接器。很多关于 GCP(因为它最初是一个 Google 产品,已经开源),还有其他连接器,比如 kafka io connector。
Beam 还集成了不同的 运行ner:DirectRunner 用于在您当前的机器上启动管道,DataflowRunner 用于 运行GCP Dataflow 上的它,SparkRunner 用于 运行Hadoop 上的它星火集群,...
这是一个很好的解决方案,但与 Spring 云数据流没有任何直接关系、合规性和可移植性。您必须重写代码才能从一个传递到另一个。
希望这对您的理解有所帮助
我想为@guillaume-blaquiere 的回复加 1:"rewriting code"。让我也为这个主题添加更多色彩。
民防部队概况:
Spring 云数据流 (SCDF) 的核心只是一个 RESTful 服务,甚至是一个轻量级 Spring 引导应用程序。就这样。它不需要 运行 时间到 运行; Boot App 可以 运行 任何有 Java 的地方,包括在你的笔记本电脑或任何容器平台(k8s、cf、nomad 等)、任何云(aws、gcp、azure 等)上.
SCDF(启动应用程序/Über-jar)附带一个仪表板、Shell/CLI 和 API,因此开发人员和运营商可以使用它们来设计和部署流式或批处理数据管道。
SCDF 中的数据管道由 Spring Cloud Stream or Spring Cloud Task applications. Because these are standalone and autonomous microservice applications, users can patch or rolling-upgrade individual applications in isolation, without impacting the upstream or downstream applications in the data pipeline — more details about the architecture here.
组成SCDF 与 GCDF:
Spring Cloud Stream 和 Spring Cloud Task 大致可与 Apache Beam 相媲美。这些是 SDK/libraries。
SCDF 另一方面,它与 Google Cloud Dataflow (GCDF) 中的数据管道有一些相似之处,但 GCDF 中的模块预计将使用 Apache Beam 构建。换句话说,您 不能 运行 Spring 引导 streaming/batch 微服务 运行 在 SCDF 中以 GCDF 作为模块 - 您将拥有使用 Apache Beam API 重写它们。 SCDF 和 GCDF 基金会都直接依赖于上述各自的框架及其功能。
要强调的另一个重要区别是 运行Apache Beam 模块所需的 运行 时间组件。在 GCDF 中,所有 runtime/runner 期望都对用户隐藏,因为它由 GCP 管理。然而,在 SCDF 中,要以高度可扩展的方式 运行 它,您可以选择您选择的平台。 SCDF 运行s 作为平台上的本机容器应用程序。
SCDF GKE/GCP:
您可以在 GCP 上配置 GKE 集群,并在 Kubernetes 中使用 SCDF 的 Helm Chart 到 运行 SCDF 和您当前的 streaming/batch(Spring Boot)应用程序GCP 上的托管服务。