Apache Beam Typescript SDK

Apache Beam 的 Typescript SDK 提供了一個簡單而強大的 API,用於建構批次和串流資料處理管線。

開始使用 Typescript SDK

開始使用Beam Typescript SDK 快速入門 來設定您的開發環境、取得 Beam SDK for Typescript,並執行範例管線。然後,請閱讀Beam 程式設計指南,了解適用於 Beam 中所有 SDK 的基本概念。

概觀

我們通常嘗試以 TypeScript 慣用的方式應用 Beam API 的概念。此外,與傳統的 SDK 相比,也有一些顯著的不同之處

範例管線可以在 wordcount.ts 中找到,更多文件可以在 beam 程式設計指南中找到。

管線 I/O

請參閱Beam 提供的 I/O 轉換頁面,以取得目前可用的 I/O 轉換清單。

支援的功能

Typescript SDK 仍在開發中,但已支援 Beam 模型目前支援的許多功能 (但並非全部),包括批次和串流。它也廣泛支援跨語言轉換,可用於利用 Typescript 管線中更進階的功能。

序列化

由於 Beam 的設計目的是在分散式環境中執行,因此所有函數和資料都必須是可序列化的。

依預設,資料使用 BSON 編碼進行序列化,但可以透過將 withRowCoderwithCoderInternal 轉換套用至 PCollection 來進行自訂。

在轉換 (例如 map) 中使用的函數,包括閉包及其擷取的資料,會透過 ts-serialize-closures 進行序列化。雖然這可以很好地處理大多數情況,但它仍然有其限制,並且在其對引用物件的傳遞閉包的走訪中,可能會擷取最好匯入而不是序列化的物件。為了避免這些限制,可以使用 requireForSerialization 函數明確註冊參考,如下所示。

// in module my_package/module_to_be_required
import { requireForSerialization } from "apache-beam/serialization";

// define or import various objects_to_register here

requireForSerialization(
    "my_package/module_to_be_required", { objects_to_register });

入門專案具有這樣的範例