學習資源
歡迎來到我們的學習資源。此頁面包含一系列資源,可協助您開始使用 Apache Beam。如果您剛開始,您可以將此視為導覽,否則您可以直接跳到您感興趣的任何章節。
如果您有其他希望在此處看到的資料,請透過 user@beam.apache.org 告知我們!
開始使用
快速入門
- Java 快速入門 - 如何在 Java SDK 上設定並執行 WordCount 管線。
- Python 快速入門 - 如何在 Python SDK 上設定並執行 WordCount 管線。
- Go 快速入門 - 如何在 Go SDK 上設定並執行 WordCount 管線。
- Java 開發環境 - 使用 IntelliJ 和 Maven 設定 Apache Beam 的 Java 開發環境。
- Python 開發環境 - 使用 PyCharm 設定 Apache Beam 的 Python 開發環境。
學習基礎知識
- WordCount - 引導您完成簡單 WordCount 管線的程式碼。這是一個非常基本的管線,旨在展示資料處理的最基本概念。WordCount 是資料處理的「Hello World」。
- 手機遊戲 - 介紹如何在處理資料時考慮時間、使用者定義的轉換、視窗化、篩選資料、串流管線、觸發器和工作階段分析。這是您在掌握 WordCount 後開始的好地方。
基本原理
- 程式設計指南 - 程式設計指南包含有關 Apache Beam SDK 中大多數主題的更深入資訊。這些包括有關所有內容如何運作的說明,以及程式碼片段以了解如何使用每個部分。這可以用作參考指南。
- 批次之外的世界:串流 101 - 涵蓋一些基本背景資訊、術語、時間領域、批次處理和串流。
- 批次之外的世界:串流 102 - Beam 中統一的批次和串流程式設計模型導覽,以及一個範例來說明許多概念。
- Apache Beam 執行模型 - 說明執行器如何執行 Apache Beam 管線。這包括為何序列化很重要,以及執行器如何將工作並行分發到多部機器。
常見模式
- 常見使用案例模式第 1 部分 - 常見模式,例如將資料寫入多個儲存位置、緩慢變更的查找快取、呼叫外部服務、處理不良資料以及透過 REST 端點啟動作業。
- 常見使用案例模式第 2 部分 - 常見模式,例如使用多個資料屬性進行 GroupBy、在通用索引鍵上聯結兩個 PCollection、串流大型查找表、合併具有不同視窗長度的兩個串流,以及使用時間序列資料進行臨界值偵測。
- 重試原則 - 將重試原則新增至
DoFn
。
文章
資料分析
- 預測新聞的社交參與度 - 使用多個資料來源、許多常見的設計模式和情感分析,以深入了解 TensorFlow 和 Dataflow 的不同新聞文章。
- 處理 IoT 資料 - IoT 感測器不斷地將資料串流到雲端。了解如何處理感測器資料,這些資料可用於即時監控、警示、長期資料儲存以進行分析、效能改進和模型訓練。
資料移轉
- Oracle 資料庫到 Google BigQuery - 使用 Dataprep 將資料從 Oracle 資料庫 移轉到 BigQuery。
- Google BigQuery 到 Google Datastore - 將資料從 BigQuery 表格移轉到 Datastore,而無需考慮其結構描述。
- SAP HANA 到 Google BigQuery - 將資料從 SAP HANA 記憶體資料庫移轉到 BigQuery。
機器學習
- 使用 RunInference API 進行機器學習 - 將 Apache Beam 與 RunInference API 一起使用,以使用機器學習 (ML) 模型來對批次和串流管線執行本機和遠端推論。請遵循 RunInference API 管線範例 來執行影像分類、影像分割、語言建模和 MNIST 數字分類。請參閱 RunInference 轉換的範例。
- 機器學習預處理和預測 - 從以 空間資料檔案 (SDF) 格式儲存的資料中預測分子能量。使用 tf.Transform 在 Python 中訓練 TensorFlow 模型以進行預處理。這也說明如何在 Apache Beam 中建立批次和串流預測管線。
- 機器學習預處理 - 尋找模擬實體機器 (例如瓶子填充機或餅乾機) 的最佳參數設定。每個模擬機器的目標是與實際機器具有相同的輸入/輸出,使其成為「數位孿生」。這使用 tf.Transform 進行預處理。
進階概念
- 在 AppEngine 上執行 - 使用 Dataflow 範本從 Google AppEngine 啟動管線,以及如何透過 cron 作業定期執行管線。
- 有狀態處理 - 了解如何在處理輸入元素時存取持續的可變狀態,這允許
DoFn
中存在副作用。如果您想要為每個傳入元素指派唯一的遞增索引,其中順序並不重要,則這可用於任意但一致的索引指派。 - 及時且有狀態的處理 - 如何執行批次 RPC 呼叫的範例。呼叫請求在收到時儲存在可變狀態中。一旦有足夠的請求或經過一定的時間,就會觸發發送這批請求。
- 執行外部程式庫 - 呼叫以 Apache Beam 中沒有原生 SDK 的語言 (例如 C++) 撰寫的外部程式庫。
影片
- 開始使用 Apache Beam - 包含五個部分的影片系列,用於了解從基本到進階的概念。
- 請參閱更多影片和 Podcast
課程
- Beam College – 免費的直播和錄製課程,用於學習 Beam 和資料處理。
- 無伺服器資料處理 - 專為 Dataflow 執行器設計的專業課程。
書籍
使用 Apache Beam 建構大數據管線
使用 Apache Beam 建構大數據管線,作者:Jan Lukavský,Packt 出版。(2022 年 1 月)。本書概述 Apache Beam 模型,包含逐步建構的範例,有助於紮實理解主題。第一部分使用 Java SDK 解釋概念,接著介紹 SQL DSL 和以 Python SDK 為重點的可移植層。本書最後一部分專注於更進階的主題,例如使用 Splittable DoFn 的 IO 連接器,以及典型執行器如何執行管線的說明。
串流系統:大規模資料處理的內容、位置、時間和方式
串流系統:大規模資料處理的 What、Where、When 和 How,作者:Tyler Akidau、Slava Chernyak、Reuven Lax。(2018 年 8 月)。本書擴展自 Tyler Akidau 熱門的部落格文章「串流 101」和「串流 102」,將您從入門級帶到對即時資料串流處理的 what、where、when 和 how 有細緻的理解。
認證
開始使用 Apache Beam Quest
開始使用 Apache Beam 這個任務包含四個實驗室,教您如何編寫和測試 Apache Beam 管線。其中三個實驗室使用 Java,一個使用 Python。每個實驗室大約需要 1.5 小時完成。完成任務後,您將獲得一枚徽章,可用於展示您的 Beam 專業知識。
互動式實驗室
Java
- 大數據文字處理管線 (40 分鐘) - 在 Dataflow 執行器上執行文字計數管線。
- 即時機器學習 (45 分鐘) - 使用美國國內航班的歷史數據,建立即時航班延誤預測服務。
- 視覺化即時地理空間數據 (60 分鐘) - 處理來自真實世界即時歷史數據集的即時串流資料,將結果儲存在 BigQuery 中,並在 Data Studio 上視覺化地理空間數據。
- 處理時間窗口數據 (90 分鐘) - 實作時間窗口聚合,以擴增原始數據,為機器學習模型產生一致的訓練和測試資料集。
Python
- Python Qwik入門 (30 分鐘) - 在 Dataflow 執行器上執行文字計數管線。
- 模擬歷史航班 (60 分鐘) - 模擬美國國內歷史航班的即時狀況,並將產生的模擬資料儲存在 BigQuery 中。
Beam Katas
Beam Katas 是互動式的 Beam 程式碼練習(即 程式碼卡塔),可以幫助您親身體驗學習 Apache Beam 的概念和程式設計模型。Beam Katas 基於 JetBrains 教育產品構建,目標是為學習者提供一系列結構化的實作學習體驗,透過解決複雜度逐漸增加的練習,了解 Apache Beam 及其 SDK。Beam Katas 提供 Java 和 Python SDK 兩種版本。
Java
- 下載 IntelliJ Edu
- 開啟 IDE 後,展開「學習與教學」選單,然後選擇「瀏覽課程」
- 搜尋「Beam Katas - Java」
- 展開「進階設定」,並適當地修改「位置」和「Jdk」
- 按一下「加入」
- 深入了解如何使用教育產品
Python
- 下載 PyCharm Edu
- 開啟 IDE 後,展開「學習與教學」選單,然後選擇「瀏覽課程」
- 搜尋「Beam Katas - Python」
- 展開「進階設定」,並適當地修改「位置」和「解譯器」
- 按一下「加入」
- 深入了解如何使用教育產品
程式碼範例
Dataflow 食譜
食譜包含 Java、Python 和 Scala (透過 Scio) 的範例,提供隨時可啟動且獨立的 Beam 管線。
Java
- 程式碼片段 1 - 常見的資料分析模式,例如如何使用 BigQuery、CombinePerKey 轉換、移除檔案中的重複行、篩選、聯結 PCollections、取得 PCollection 的最大值等等。
- 程式碼片段 2 - 關於常見任務的其他範例,例如設定 BigQuery、PubSub、每個窗口寫入一個檔案等等。
- 完整範例 - 端對端範例管線,例如自動完成、串流文字擷取、計算詞頻-逆向文件頻率 (TF-IDF)、取得維基百科熱門會話、交通最大車道流量、交通路線等等。
- Pub/Sub 到 BigQuery - 一個完整的範例,展示如何使用 Dataflow 上的 Apache Beam 將 JSON 編碼的 Pub/Sub 訂閱訊息字串轉換為結構化資料,並將該資料寫入 BigQuery 資料表。
Python
- 程式碼片段 - 常見的資料分析模式,例如如何使用 BigQuery、Datastore、編碼器、合併器、篩選器、自訂 PTransforms 等等。
- 完整範例 - 端對端範例管線,例如自動完成、取得行動遊戲統計資訊、計算茱莉亞集合、解決分散式最佳化任務、估計 PI、計算詞頻-逆向文件頻率 (TF-IDF)、取得維基百科熱門會話等等。
Beam Playground
- Beam Playground 是一個互動式環境,讓您無需在環境中安裝 Apache Beam 即可試用 Beam 轉換和範例。您可以在 Beam Playground 試用可用的 Apache Beam 範例。
- 深入了解如何將 Apache Beam 範例/測試/卡塔新增到 Beam Playground 目錄這裡。
API 參考
- Java API 參考 - Java SDK 的官方 API 參考。
- Python API 參考 - Python SDK 的官方 API 參考。
- Go API 參考 - Go SDK 的官方 API 參考。
意見回饋與建議
我們樂於接收回饋和建議,您可以在聯絡我們頁面找到各種聯繫社群的方式。
如果您有錯誤報告或想建議新功能,您可以提交新的 issue來告知我們。
如何貢獻
我們歡迎所有人的貢獻!若要深入了解如何貢獻,請參閱我們的貢獻指南。
上次更新日期:2024/10/31
您是否找到了您要找的所有內容?
所有內容都實用且清楚嗎?您是否有任何想要更改的地方?請告訴我們!