Cloud Dataflow 是一种无服务器数据处理服务,可运行使用 Apache Beam 库编写的作业。当您在 Cloud Dataflow 上运行作业时,它会启动一个虚拟机集群,将作业中的任务分配给虚拟机,并根据作业的执行方式动态扩展集群。它甚至可以更改处理管道中的操作顺序以优化您的工作。
所以用例是各种数据源/数据库之间的 ETL(提取、传输、加载)作业。例如,将大文件从 Cloud Storage 加载到 BigQuery。
流式处理基于订阅 PubSub 主题,因此您可以收听实时事件(例如来自某些 IoT 设备),然后进行进一步处理。
Dataflow 有趣的具体用例是 Dataprep。 Dataprep 是 GCP 上的云工具,用于探索、清理、整理(大型)数据集。当您定义要对数据执行的操作(如格式化、加入等)时,作业会在 Dataflow 的后台运行。
Cloud Dataflow 还提供基于“模板”创建作业的能力,这有助于简化参数值不同的常见任务。
Dataproc 是一项托管的 Spark 和 Hadoop 服务,可让您利用开源数据工具进行批处理、查询、流式传输和机器学习。 Dataproc 自动化可帮助您快速创建集群、轻松管理它们并通过在不需要集群时关闭集群来节省资金。花费在管理上的时间和金钱更少,您可以专注于您的工作和数据。
- 超快 - 不使用 Dataproc,可能需要 5 到 30
分钟内或通过本地创建 Spark 和 Hadoop 集群
IaaS 提供商。相比之下,Dataproc 集群启动速度很快,
缩放和关闭,每个操作都需要 90 秒
或更少,平均而言。这意味着您可以花更少的时间等待
集群和更多的实践时间来处理您的数据。
- 集成 — Dataproc 与其他 Google 内置集成
云平台服务,例如 BigQuery、Cloud Storage、Cloud
Bigtable、Cloud Logging 和 Cloud Monitoring,让您拥有超过
只是一个 Spark 或 Hadoop 集群——你有一个完整的数据平台。
例如,您可以使用 Dataproc 轻松 ETL
将原始日志数据直接输入 BigQuery 以进行业务报告。
- 托管 - 无需管理员协助即可使用 Spark 和 Hadoop 集群
管理员或特殊软件。您可以轻松地与
通过 Google Cloud Console 进行集群和 Spark 或 Hadoop 作业,
Cloud SDK 或 Dataproc REST API。当你完成一个
集群,你可以简单地把它关掉,这样你就不用花钱买一个
空闲集群。您无需担心丢失数据,因为
Dataproc 与 Cloud Storage、BigQuery 和 Cloud 集成
大表。
- 简单而熟悉 - 您无需学习新工具或 API 即可
使用 Dataproc,可轻松将现有项目迁移到 Dataproc
无需重新开发。 Spark、Hadoop、Pig 和 Hive 经常
更新,因此您可以更快地提高工作效率。
如果您想从现有的 Hadoop/Spark 集群迁移到云端,或利用市场上众多训练有素的 Hadoop/Spark 工程师,请选择 Cloud Dataproc;如果您信任 Google 在大规模数据处理方面的专业知识并免费获得他们的最新改进,请选择 DataFlow。
在 Dataproc 和 Dataflow 之间进行选择时需要考虑以下三个要点
配置
Dataproc - 手动配置集群
数据流 - 无服务器。自动配置集群
Hadoop 依赖项
如果处理对 Hadoop 生态系统中的工具有任何依赖关系,则应使用 Dataproc。
可移植性
Dataflow/Beam 在处理逻辑和底层执行引擎之间提供了清晰的分离。这有助于跨支持 Beam 运行时的不同执行引擎的可移植性,即相同的管道代码可以在 Dataflow、Spark 或 Flink 上无缝运行。