簡體   English   中英

Google Cloud Dataflow 和 Google Cloud Dataproc 有什么區別?

[英]What is the difference between Google Cloud Dataflow and Google Cloud Dataproc?

我正在使用 Google Data Flow 來實施 ETL 數據倉庫解決方案。

查看谷歌雲產品,DataProc 似乎也可以做同樣的事情。

DataProc 似乎也比 DataFlow 便宜一點。

有人知道 DataFlow 相對於 DataProc 的優缺點嗎

為什么谷歌提供兩者?

是的,Cloud Dataflow 和 Cloud Dataproc 均可用於實施 ETL 數據倉儲解決方案。

可以在 Google Cloud Platform 大數據解決方案文章中找到對每種產品存在的原因的概述

快速外賣:

  • Cloud Dataproc 為您提供 GCP 上的 Hadoop 集群,以及對 Hadoop 生態系統工具(例如 Apache Pig、Hive 和 Spark)的訪問; 如果您已經熟悉 Hadoop 工具並擁有 Hadoop 工作,這將具有很強的吸引力
  • Cloud Dataflow 為您提供了一個在 GCP 上運行基於Apache Beam的作業的地方,並且您不需要解決在集群上運行作業的常見問題(例如,平衡工作或縮放作業的工作人員數量;默認情況下,這是自動為您管理的,適用於批處理和流媒體)——這在其他系統上可能非常耗時
    • Apache Beam 是一個重要的考慮因素; Beam 作業旨在跨“運行程序”(包括 Cloud Dataflow)進行移植,並使您能夠專注於邏輯計算,而不是“運行程序”的工作方式——相比之下,在編寫 Spark 作業時,您的代碼是受約束的轉輪、Spark 以及該轉輪的工作原理
    • Cloud Dataflow 還提供基於“模板”創建作業的能力,這有助於簡化參數值不同的常見任務

在嘗試在 Dataproc 和 Dataflow 之間進行選擇時,需要考慮以下三個要點

  • 供應
    Dataproc - 手動配置集群
    數據流 - 無服務器。 自動配置集群

  • Hadoop 依賴項
    如果處理對 Hadoop 生態系統中的工具有任何依賴性,則應使用 Dataproc。

  • 便攜性
    Dataflow/Beam 在處理邏輯和底層執行引擎之間提供了清晰的分離。 這有助於跨支持 Beam 運行時的不同執行引擎的可移植性,即相同的管道代碼可以在 Dataflow、Spark 或 Flink 上無縫運行。

來自谷歌網站的這個流程圖解釋了如何選擇一個而不是另一個。

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

更多詳細信息可在以下鏈接中找到
https://cloud.google.com/dataproc/#fast--scalable-data-processing

與 Dataproc 提供 Hadoop 和 Spark 的原因相同:有時一種編程模型最適合這項工作,有時則另一種。 同樣,在某些情況下,最適合這項工作的是 Dataflow 提供的 Apache Beam 編程模型。

在許多情況下,一個重要的考慮因素是人們已經擁有針對特定框架編寫的代碼庫,並且只想將其部署在 Google Cloud 上,因此即使 Beam 編程模型優於 Hadoop,很多 Hadoop 代碼暫時可能仍然選擇 Dataproc,而不是在 Beam 上重寫他們的代碼以在 Dataflow 上運行。

Spark 和 Beam 編程模型之間的差異非常大,並且有很多用例,其中每個都比另一個有很大的優勢。 請參閱https://cloud.google.com/dataflow/blog/dataflow-beam-and-spark-comparison

Cloud Dataproc 和 Cloud Dataflow 都可用於數據處理,並且它們的批處理和流式處理功能存在重疊。 您可以決定哪種產品更適合您的環境。

Cloud Dataproc適用於依賴特定 Apache 大數據組件的環境: - 工具/包 - 管道 - 現有資源的技能集

Cloud Dataflow通常是綠地環境的首選選項: - 更少的運營開銷 - 開發批處理或流式管道的統一方法 - 使用 Apache Beam - 支持跨 Cloud Dataflow、Apache Spark 和 Apache Flink 作為運行時的管道可移植性。

在此處查看更多詳細信息https://cloud.google.com/dataproc/

價格比較:

如果您想計算和比較更多 GCP 資源的成本,請參考此網址https://cloud.google.com/products/calculator/

Cloud Dataflow是一種無服務器數據處理服務,可運行使用 Apache Beam 庫編寫的作業。 當您在 Cloud Dataflow 上運行作業時,它會啟動一個虛擬機集群,將您的作業中的任務分配給虛擬機,並根據作業的執行情況動態擴展集群。 它甚至可能會更改處理管道中的操作順序以優化您的工作。

在此處輸入圖片說明

因此用例是各種數據源/數據庫之間的 ETL(提取、傳輸、加載)作業。 例如,將大文件從 Cloud Storage 加載到 BigQuery。

流式傳輸基於對 PubSub 主題的訂閱,因此您可以偵聽實時事件(例如來自某些 IoT 設備),然后進行進一步處理。

Dataflow 有趣的具體用例是 Dataprep。 Dataprep 是 GCP 上的雲工具,用於探索、清理、整理(大型)數據集。 當您定義要對數據執行的操作(如格式化、加入等)時,作業在 Dataflow 上運行。

Cloud Dataflow 還提供基於“模板”創建作業的功能,這有助於簡化參數值不同的常見任務。

在此處輸入圖片說明

Dataproc是一項托管 Spark 和 Hadoop 服務,可讓您利用開源數據工具進行批處理、查詢、流式處理和機器學習。 Dataproc 自動化可幫助您快速創建集群、輕松管理集群並在您不需要集群時關閉它們,從而節省資金。 花費在管理上的時間和金錢更少,您可以專注於您的工作和數據。

在此處輸入圖片說明

在此處輸入圖片說明

  1. 超快——如果不使用 Dataproc,在本地或通過 IaaS 提供商創建 Spark 和 Hadoop 集群可能需要 5 到 30 分鍾。 相比之下,Dataproc 集群可以快速啟動、擴展和關閉,這些操作中的每一個平均需要 90 秒或更短的時間。 這意味着您可以花更少的時間等待集群,並花更多的時間來處理您的數據。
  2. 集成——Dataproc 內置了與其他 Google Cloud Platform 服務的集成,例如 BigQuery、Cloud Storage、Cloud Bigtable、Cloud Logging 和 Cloud Monitoring,因此您擁有的不僅僅是一個 Spark 或 Hadoop 集群——您擁有一個完整的數據平台. 例如,您可以使用 Dataproc 毫不費力地將 TB 級的原始日志數據直接 ETL 到 BigQuery 以進行業務報告。
  3. 托管 - 無需管理員或特殊軟件的幫助即可使用 Spark 和 Hadoop 集群。 您可以通過 Google Cloud Console、Cloud SDK 或 Dataproc REST API 輕松地與集群和 Spark 或 Hadoop 作業進行交互。 當您使用完集群后,您只需將其關閉即可,這樣您就不會在閑置集群上花錢。 您無需擔心丟失數據,因為 Dataproc 與 Cloud Storage、BigQuery 和 Cloud Bigtable 集成。
  4. 簡單而熟悉 - 您無需學習新工具或 API 即可使用 Dataproc,無需重新開發即可輕松將現有項目移至 Dataproc。 Spark、Hadoop、Pig 和 Hive 經常更新,因此您可以更快地提高工作效率。

在此處輸入圖片說明

如果您想從現有的 Hadoop/Spark 集群遷移到雲,或利用市場上眾多訓練有素的 Hadoop/Spark 工程師,請選擇 Cloud Dataproc; 如果您信任 Google 在大規模數據處理方面的專業知識並免費獲得他們的最新改進,請選擇 DataFlow。

在嘗試在 Dataproc 和 Dataflow 之間進行選擇時,需要考慮以下三個要點

Provisioning Dataproc - 手動配置集群 Dataflow - Serverless。 如果處理對 Hadoop 生態系統中的工具有任何依賴性,則應使用集群的自動配置 Hadoop 依賴關系 Dataproc。 可移植性 Dataflow/Beam 在處理邏輯和底層執行引擎之間提供了清晰的分離。 這有助於跨支持 Beam 運行時的不同執行引擎的可移植性,即相同的管道代碼可以在 Dataflow、Spark 或 Flink 上無縫運行。

在此處輸入圖片說明

另一個重要區別之一是:

雲數據處理:

在已知大小的數據集中進行數據挖掘和分析

雲數據流:

管理不可預測大小的數據集

Dataproc 與 Dataflow 基於表格的比較:

雲數據流

是一種無服務器數據處理服務,運行使用 Apache Beam 庫編寫的作業。

當您在 Cloud Dataflow 上運行作業時,它的操作方式如下:

  1. 它啟動了一個虛擬機集群
  2. 將作業中的任務分配給虛擬機,並根據作業的執行情況動態擴展集群

Dataflow甚至可以更改處理管道中的操作順序以優化您的工作。

它支持批處理和流式作業。 所以用例是各種數據源/數據庫之間的 ETL(提取、傳輸、加載)作業。

例如,將大文件從 Cloud Storage 加載到 Big Query 中。

Streaming 基於對 Pub-Sub 主題的訂閱工作,因此您可以收聽實時事件(例如來自某些 IoT 設備的事件),然后進一步處理數據。

數據流的一個有趣的具體用例是數據准備

數據准備是 GCP 上的一個雲工具,用於探索、清理和整理(大型)數據集。 當您定義要對數據執行的操作(如格式化、連接等)時,作業會在Dataflow上運行。

Cloud Dataflow還提供了基於“模板”創建作業的能力,這有助於簡化常見任務,其中差異在於參數值。


數據處理

是一種托管 Spark 和 Hadoop 服務,可讓您利用開源數據工具進行批處理、查詢、流式處理和機器學習。

數據處理自動化可幫助您快速創建集群、輕松管理它們,並通過在不需要時關閉集群來節省資金。 由於花在管理上的時間和金錢更少,您可以專注於工作和數據。

要使用 Google 數據流,我們是否需要 Java 專家或非編程人員需要多少知識?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM