Google 云数据流和 Google 云数据流有什么区别?

我使用谷歌数据流来实现一个 ETL 数据仓库解决方案。

看看谷歌云服务,似乎 DataProc 也可以做同样的事情。

DataProc 似乎也比 DataFlow 便宜一点。

有人知道 DataFlow 优于 DataProc 的利弊吗

为什么谷歌两者都提供?

69791 次浏览

与 Dataproc 同时提供 Hadoop 和 Spark 的原因相同: 有时一种编程模型最适合这项工作,有时另一种最适合。同样,在某些情况下,最适合这项工作的是由 Dataflow 提供的 Apachebeam 编程模型。

在许多情况下,一个重要的考虑因素是,一个人已经有一个针对特定框架编写的代码库,并且他只想将其部署到 Google Cloud 上,所以即使,比如说,梁编程模型优于 Hadoop,拥有大量 Hadoop 代码的人可能仍然会暂时选择 Dataproc,而不是重写他们在梁上的代码,在 Dataflow 上运行。

Spark 和 Beam 编程模型之间的差异相当大,并且在许多用例中,每个模型都比另一个模型有很大的优势。参见 https://cloud.google.com/dataflow/blog/dataflow-beam-and-spark-comparison

是的,CloudDataflow 和 CloudDataproc 都可以用来实现 ETL 数据仓库解决方案。

在 Google云平台大数据解决方案文章中可以找到为什么存在这些产品的概述

快餐:

  • Cloud Dataproc 为您提供了一个基于 GCP 的 Hadoop 集群,以及对 Hadoop 生态系统工具(例如 Apache Pigg、 Hive 和 Spark)的访问; 如果您已经熟悉 Hadoop 工具并且拥有 Hadoop 作业,那么这个功能非常有吸引力
  • 云数据流为你提供了一个在 GCP 上运行基于 阿帕奇光束的作业的地方,而且你不需要解决在集群上运行作业的常见问题(例如,平衡作业,或者调整作业的工作人员数量; 默认情况下,这是为你自动管理的,并且适用于批处理和流处理)——这在其他系统上可能非常耗时
    • Apache Beam 是一个重要的考虑因素; Beam 作业旨在跨“运行器”(包括云数据流)移植,并使您能够专注于逻辑计算,而不是“运行器”如何工作——相比之下,当创建 Spark 作业时,您的代码绑定到运行器 Spark 以及该运行器如何工作
    • 云数据流还提供了基于“模板”创建作业的能力,这有助于简化差异为参数值的常见任务

在试图在 Dataproc 和 Dataflow 之间做出选择时,需要考虑以下三点

  • 供给
    Dataproc-集群的手动配置
    数据流-无服务器。自动提供集群

  • Hadoop 依赖关系
    如果处理与 Hadoop 生态系统中的工具有任何依赖关系,则应使用 Dataproc

  • 便携性
    数据流/束在处理逻辑和底层执行引擎之间提供了清晰的分离。这有助于提高支持梁运行时的不同执行引擎之间的可移植性,也就是说,相同的流水线代码可以在 Dataflow、 Spark 或 Flink 上无缝地运行。

这个来自谷歌网站的流程图解释了如何去选择其中之一。

Dataproc vs Dataflow Https://cloud.google.com/dataflow/images/flow-vs-proc-flowchart.svg

详情请参阅以下连结
Https://cloud.google.com/dataproc/#fast——scalable-data-processing

Cloud Dataproc 和 Cloud Dataflow 都可以用于数据处理,它们的批处理和流处理功能有重叠。您可以决定哪种产品更适合您的环境。

Cloud Dataproc 适用于依赖于特定 Apache 大数据组件的环境: - 工具/包装 管道 - 现有资源的技能组合

云数据流 通常是绿色领域环境的首选选项: 操作费用更少 - 开发分批或流动管道的统一办法 使用阿帕奇光束 - 在运行时支持跨云数据流、 Apache Spark 和 Apache Flink 的管道可移植性。

点击这里查看详细信息

价格比较:

如果你想计算和比较更多的 GCP 资源的成本,请参考这个网址 https://cloud.google.com/products/calculator/

Cloud Dataflow 是一个无服务器的数据处理服务,可以运行使用 Apache Beam 库编写的作业。当您在云数据流上运行作业时,它会旋转一个虚拟机集群,将作业中的任务分配给 VM,并根据作业的执行情况动态地扩展集群。它甚至可以更改处理流水线中的操作顺序,以优化作业。

enter image description here

因此,用例是各种数据源/数据库之间的 ETL (提取、传输、加载)作业。例如,将大文件从云存储加载到 BigQuery。

流媒体工作基于对 PubSub 主题的订阅,因此您可以监听实时事件(例如来自某些物联网设备) ,然后进一步处理。

Dataprep 是 Dataflow 的一个有趣的具体用例。Dataprep 是 GCP 上的云工具,用于探索、清理、争论(大型)数据集。当您定义您想要对数据执行的操作(如格式化、联接等)时,作业将在 Dataflow 上秘密运行。

云数据流还提供了基于“模板”创建作业的能力,这有助于简化差异为参数值的常见任务。

enter image description here

Dataproc 是一个受管理的 Spark 和 Hadoop 服务,允许您利用开源数据工具进行批处理、查询、流和机器学习。Dataproc 自动化帮助您快速创建集群,轻松管理它们,并在不需要集群时关闭集群,从而节省资金。用更少的时间和金钱来管理,你可以专注于你的工作和你的数据。

enter image description here

enter image description here

  1. 超级快ーー如果不使用 Dataproc,它可能需要5到30分钟 分钟内创建 Spark 和 Hadoop 集群 相比之下,Dataproc 集群启动起来很快, 规模,并关闭,每个这些操作需要90秒 这意味着你可以花更少的时间等待 集群和更多的动手时间与您的数据工作。
  2. 整合ーー Dataproc 已经与其他 Google 进行了内置整合 云平台服务,如 BigQuery、云存储、云 Bigtable、云日志记录和云监视,因此您拥有超过 只是一个 Spark 或 Hadoop 集群ーー你有一个完整的数据平台。 例如,您可以使用 Dataproc 毫不费力地将 将原始日志数据直接输入 BigQuery,用于业务报告。
  3. 管理ーー使用 Spark 和 Hadoop 集群,不需要 管理员或特殊软件。你可以很容易地与 集群和 Spark 或 Hadoop 任务通过谷歌云控制台, 云 SDK,或 Dataproc REST API 集群,您可以简单地关闭它,这样您就不用花钱在一个 空闲集群。您不需要担心丢失数据,因为 Dataproc 与云存储、 BigQuery 和云集成 太大了。
  4. 简单和熟悉ーー不需要学习新的工具或 API 使用 Dataproc,可以轻松地将现有项目移动到 Dataproc 中 火花,Hadoop,猪和蜂巢 更新,所以你可以更快地生产。

enter image description here

如果你想从现有的 Hadoop/Spark 集群迁移到云端,或者利用市场上那么多训练有素的 Hadoop/Spark 工程师,选择 Cloud Dataproc; 如果你相信 Google 在大规模数据处理方面的专业知识,并且免费使用他们的最新改进,选择 DataFlow。

在试图在 Dataproc 和 Dataflow 之间做出选择时,需要考虑以下三点

供给 Dataproc-集群的手动配置 数据流-无服务器。群集的自动供应 Hadoop 依赖关系 如果处理与 Hadoop 生态系统中的工具有任何依赖关系,则应使用 Dataproc。 便携性 数据流/束在处理逻辑和底层执行引擎之间提供了清晰的分离。这有助于提高支持梁运行时的不同执行引擎之间的可移植性,也就是说,相同的流水线代码可以在 Dataflow、 Spark 或 Flink 上无缝地运行。

enter image description here

另一个重要区别是:

Cloud Dataproc:

已知规模数据集中的数据挖掘与分析

云数据流:

管理不可预测大小的数据集

A table-based comparison of Dataproc versus Dataflow: