Apache Beam TypeScript SDK 快速入門
本快速入門將示範如何使用 Direct Runner 執行使用 Apache Beam TypeScript SDK 編寫的範例管線。Direct Runner 會在本機電腦上執行管線。
如果您有興趣為 Apache Beam TypeScript 程式碼庫貢獻,請參閱貢獻指南。
本頁面內容
設定您的開發環境
請確保您已安裝 Node.js 開發環境。如果沒有,您可以從下載頁面下載並安裝。
由於大量使用跨語言轉換,建議系統同時安裝 Python 3 和 Java。
複製 GitHub 儲存庫
複製或下載 apache/beam-starter-typescript GitHub 儲存庫,並切換到 beam-starter-typescript
目錄。
安裝專案依賴項
執行以下指令來安裝專案的依賴項。
編譯管線
接著使用以下指令來建置管線
執行快速入門
執行以下指令
輸出類似以下內容
各行可能會以不同的順序顯示。
探索程式碼
本快速入門的主要程式碼檔案是 app.ts (GitHub)。程式碼執行以下步驟
- 定義一個 Beam 管線,該管線會。
- 建立初始
PCollection
。 - 將轉換 (map) 套用到
PCollection
。
- 使用 Direct Runner 執行管線。
建立管線
Pipeline
只是個可呼叫的物件,它接受單一 root
物件。Pipeline
函式會建構待執行的轉換圖。
建立初始 PCollection
PCollection
抽象概念代表可能分散的多元素資料集。Beam 管線需要資料來源來填入初始的 PCollection
。資料來源可以是有限的 (具有已知的固定大小) 或無限的 (具有無限的大小)。
此範例使用 Create
方法,從記憶體中的字串陣列建立 PCollection
。產生的 PCollection
包含字串「Hello」、「World!」和使用者提供的輸入字串。
root.apply(beam.create(["Hello", "World!", input_text]))
將轉換套用到 PCollection
轉換可以變更、篩選、分組、分析或以其他方式處理 PCollection
中的元素。此範例使用 Map
轉換,它將集合的元素對應到新的集合
.map(printAndReturn);
為了方便起見,PColletion
具有 map
方法,但更常見的是使用 .apply(someTransform())
來套用轉換。
執行管線
要執行管線,會建立執行器 (可能會有一些選項)
createRunner(options)
然後在其上呼叫 run
方法,執行以上建立的管線 callable 物件。
.run(createPipeline(...));
Beam 執行器會在特定平台上執行 Beam 管線。如果您未指定執行器,則 Direct Runner 是預設值。Direct Runner 會在本機電腦上執行管線。它適用於測試和開發,而不是針對效率進行最佳化。如需更多資訊,請參閱使用 Direct Runner。
對於生產工作負載,您通常會使用分散式執行器,在諸如 Apache Flink、Apache Spark 或 Google Cloud Dataflow 等巨量資料處理系統上執行管線。這些系統支援大規模平行處理。可以使用選項上的執行器屬性來要求不同的執行器,例如 createRunner({runner: "dataflow"})
或 createRunner({runner: "flink"})
。在此範例中,此值可以透過命令列以 --runner=...
的方式傳入,例如,若要在 Dataflow 上執行,則會寫入
node dist/src/main.js \
--runner=dataflow \
--project=${PROJECT_ID} \
--tempLocation=gs://${GCS_BUCKET}/wordcount-js/temp --region=${REGION}
後續步驟
- 深入瞭解用於 TypeScript 的 Beam SDK,並瀏覽TypeScript SDK API 參考。
- 透過我們的學習資源進行自定進度的導覽。
- 深入瞭解我們最喜歡的一些影片和 Podcast。
- 加入 Beam users@ 郵件清單。
如果您遇到任何問題,請隨時聯繫我們!
上次更新於 2024/10/31
您是否找到所有您要尋找的內容?
所有內容都實用且清楚嗎?是否有任何您想變更的內容?請告訴我們!