資料處理 Apache Beam (1)

教學目標

初步了解 Apache Beam 資料處理相關開源專案之基本概念。

重點概念

首先企業中若要建置大數據分析平台將會需要進行資料提取、資料處理、資料分析和資料視覺化四大流程式,此時企業將會面臨許多資料處理的問題,此時 Google 針對資料處理的管理提供 Cloud Dataflow 雲端服務進行全方位管理的資料處理服務,支援流程的串流與批次執行,同時 Google 也將 Cloud Dataflows 進行開源,也就是 Apache Beam。

接著 Apache Beam 主要是由 Google 主導的開源專案,主要有三大特色,分別為:

  1. 統一:主要是針對批次處理和串流處理的使用案例透過單一程式語言模型進行處理。
  2. 可攜:主要是在多個執行環境運作在一個資料管線。
  3. 擴展:主要是寫入和分享新的軟體開發工具、輸入和輸出連接器和轉換函式庫。

再來 Apache Beam 對於我們來說為何要使用呢?早在 2003 年開始 Google 發佈了三篇有關大數據的重要論文,分別為 Google File SystemMapReduceBigTable,但是當時並沒有專屬開源專案。所以 Hadoop 之父 Doug Cutting 根據這些論文發展出了 Apache Hadoop 專案,而今 Google 將 Cloud Dataflow 雲端服務進行開源,同時 Apache Beam 的主要負責人 Tyler Akidau 說明要建立易用且強大可以掌握批次處理和串流處理的模型。

最後 Apache Beam 有多個批次處理和串流處理的模式,一個資料流程模型和軟體開發工具的資料管線,以及許多執行環境,像是 Apache Flink、Apache Spark、Google Cloud Dataflow 或者本機端執行環境,至於不同執行環境的比較表可以參考官方部落格

總結隨著分散式資料處理不斷的發展,業界出現越來越多的分散式資料處理檻框架,從最早的 Apache Hadoop、Apache Spark、Apache Flink、…等,雖然新的分散式處理框架火來更高的效能,但是對於我們則需要學習一個新的資料處理框架,並重寫所有業務邏輯,因此為了解決二個問題,首先統一批次處理和串流處理的需求,其次產生分散式資料處理任務將能夠在每個分散式執行環境上執行,這時 Apache Beam 就能夠有效解決上述兩個問題,此外若想要了解運作原理則可以參考「No One at Google Uses MapReduce Anymore」官方簡報內容,至於若想要了解如何操作則可以參考「Apache Beam: Portable and Parallel Data Processing」官方影片內容。

相關資源