我使用谷歌数据流来实现一个 ETL 数据仓库解决方案。
看看谷歌云服务,似乎 DataProc 也可以做同样的事情。
DataProc 似乎也比 DataFlow 便宜一点。
有人知道 DataFlow 优于 DataProc 的利弊吗
为什么谷歌两者都提供?
与 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云平台大数据解决方案文章中可以找到为什么存在这些产品的概述
快餐:
在试图在 Dataproc 和 Dataflow 之间做出选择时,需要考虑以下三点
供给 Dataproc-集群的手动配置 数据流-无服务器。自动提供集群
Hadoop 依赖关系 如果处理与 Hadoop 生态系统中的工具有任何依赖关系,则应使用 Dataproc
便携性 数据流/束在处理逻辑和底层执行引擎之间提供了清晰的分离。这有助于提高支持梁运行时的不同执行引擎之间的可移植性,也就是说,相同的流水线代码可以在 Dataflow、 Spark 或 Flink 上无缝地运行。
这个来自谷歌网站的流程图解释了如何去选择其中之一。
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 的管道可移植性。
点击这里查看详细信息
价格比较:
DataProc
数据流
如果你想计算和比较更多的 GCP 资源的成本,请参考这个网址 https://cloud.google.com/products/calculator/
Cloud Dataflow 是一个无服务器的数据处理服务,可以运行使用 Apache Beam 库编写的作业。当您在云数据流上运行作业时,它会旋转一个虚拟机集群,将作业中的任务分配给 VM,并根据作业的执行情况动态地扩展集群。它甚至可以更改处理流水线中的操作顺序,以优化作业。
因此,用例是各种数据源/数据库之间的 ETL (提取、传输、加载)作业。例如,将大文件从云存储加载到 BigQuery。
流媒体工作基于对 PubSub 主题的订阅,因此您可以监听实时事件(例如来自某些物联网设备) ,然后进一步处理。
Dataprep 是 Dataflow 的一个有趣的具体用例。Dataprep 是 GCP 上的云工具,用于探索、清理、争论(大型)数据集。当您定义您想要对数据执行的操作(如格式化、联接等)时,作业将在 Dataflow 上秘密运行。
云数据流还提供了基于“模板”创建作业的能力,这有助于简化差异为参数值的常见任务。
Dataproc 是一个受管理的 Spark 和 Hadoop 服务,允许您利用开源数据工具进行批处理、查询、流和机器学习。Dataproc 自动化帮助您快速创建集群,轻松管理它们,并在不需要集群时关闭集群,从而节省资金。用更少的时间和金钱来管理,你可以专注于你的工作和你的数据。
如果你想从现有的 Hadoop/Spark 集群迁移到云端,或者利用市场上那么多训练有素的 Hadoop/Spark 工程师,选择 Cloud Dataproc; 如果你相信 Google 在大规模数据处理方面的专业知识,并且免费使用他们的最新改进,选择 DataFlow。
供给 Dataproc-集群的手动配置 数据流-无服务器。群集的自动供应 Hadoop 依赖关系 如果处理与 Hadoop 生态系统中的工具有任何依赖关系,则应使用 Dataproc。 便携性 数据流/束在处理逻辑和底层执行引擎之间提供了清晰的分离。这有助于提高支持梁运行时的不同执行引擎之间的可移植性,也就是说,相同的流水线代码可以在 Dataflow、 Spark 或 Flink 上无缝地运行。
另一个重要区别是:
Cloud Dataproc:
已知规模数据集中的数据挖掘与分析
云数据流:
管理不可预测大小的数据集
看