Apache Beam 專案

本頁針對 Google 系列文件接受的技術撰寫專案提供詳細資料。

專案摘要

開放原始碼機構:
Apache Beam
技術文件撰寫者:
Sruthi Sree Kumar
專案名稱:
更新執行器比較頁面 / 功能矩陣
專案長度:
標準長度 (3 個月)

Project description

Apache Beam 是定義批次和串流處理管道的整合式平台。Apache Beam 可讓您定義模型來代表及轉換資料集,而不受任何特定資料處理平台影響。定義完成後,您就可以在任何支援的執行階段架構 (執行器) 上執行該架構,這些架構包括 Apache Apex、Apache Flink、Apache Spark 和 Google Cloud Dataflow。Apache Beam 也提供不同的 SDK,可讓您使用 Java、Python 和 GO 等程式設計語言編寫管道。

我透過「更新跑者比較頁面/功能矩陣」部分向 GSOD 提出申請。Apache Beam 支援多個執行器和 SDK,因此新使用者在選擇其中一個執行器時,會造成混淆。目前針對不同跑者提供的說明文件可提供簡要的執行方式總覽,我打算在特定跑者文件頁面上新增更多跑者的詳細資料。此外,我想更新字詞計數專案範例的說明,加入詳細說明。為此,我打算在本機機器中嘗試每個字詞計數範例,看看是否遺漏了某些步驟,並新增更多步驟說明。我發現另一項重點是,跑者的說明文件並未遵循任何模式(只有部分提供總覽部分,有些則是從使用方式開始,或是先取得先決條件,或是一些隨機的標題)。我要全部採用單一簡單的模式。

我打算新增頁面來描述每位跑者,並為每位跑者提供描述性的敘述 [BEAM-3220]。使用者可以從這個頁面重新導向至每個跑者的詳細說明頁面,以及功能矩陣。我也打算在此新增描述性的比較表,我目前使用 Beam NEXMark 對 Flink 執行器進行主要論述。我完全瞭解 NEXMark 基準化,因此我想在這裡同時在批次和串流模式下,加入每位執行器的基準化結果(BEAM-2944)。如果發現任何參數/ 設定遺失/移除,我們也會更新 NEXMark 說明文件。使用 Flink 執行器之前,我先卡在文中缺少其中一個參數,但現在,由於我對 NEXMark 程式碼集更熟悉,因此可以更輕鬆地為執行器基準基準測試,並新增指標。在這個頁面中,我想簡述每位跑者的生產準備情況摘要。

在目前的說明文件中,每個執行器的說明頁面都提供了對傳統/可攜式執行器的支援。我認為將這些內容集中在功能矩陣或新增的說明頁面,是更好的做法。此外,目前可攜權支援將維護至獨立的 Google 試算表,請把這份試算表合併成相容性矩陣。https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0。在這項工作中,我打算納入 BEAM-2888 中所述的所有主要/次要修正。

我認為 GSoD 是推動開放原始碼社群的契機。我會繼續為開放原始碼專案 (尤其是 Beam) 做出貢獻,並想繼續擔任活躍的社群成員。當 Apache Beam 擁有活躍的社群,並會持續開發更多功能,我認為改善說明文件總是有一定的改善範圍。我也想為開發工作貢獻心力。如果我有 Beam 的知識,我也可以協助使用者社群,因為當我開始使用 Beam 時,我一律會向社群尋求協助。

我認為自己是這項專案的負責人,原因如下:

  1. 我是分散式系統愛好者,想瞭解資料處理系統的內部結構。
  2. 我具備使用者操作 Apache Beam 和 Apache Flink 的經驗。
  3. 身為開發人員,我已瞭解 Apache Beam 和 Apache Flink 程式碼集。
  4. 我做了一項專案比較不同橫樑的運動員。
  5. 我有撰寫技術網誌的經驗,可說明大數據處理與分散式系統的概念。
  6. 目前,我正在努力改善 Apache Flink 狀態後端的效能,以便針對使用 Apache Beam NEXMark 實作進行基準測試,同時協助更新 Apache Beam 說明文件。
  7. 我在軟體開發人員擁有 4 年的工作經驗,已撰寫了多份技術設計文件、產品說明文件和 Readme 檔案(我目前無法存取這些文件)。
  8. 我會用這種方式編寫文件,讓不熟悉前的人一眼就能瞭解。