谷歌開源Cloud Dataflow Java SDK
英文原文:Google Open Sources Cloud Dataflow Java SDK
今年早些時候,谷歌宣布了 Cloud Dataflow,一個批量或實時處理海量數據的服務和 SDK。現在,他們開源了 Dataflow Java SDK,使開發人員可以看到它的實現方式,并合理使用該 SDK 開發運行在本地或其它云上的服務。
Dataflow 是一項云服務,使用了由 FlumeJava 和 MillWheel 演變而來的技術,前者是一個用于創建數據并行管道的 Java 庫,后者是一個用于構建容錯流處理應用的框架,在谷歌內部有數百名開發人員在使用它們。Dataflow 是語言無關的,但谷歌提供了一個 Java SDK,使開發人員為它創建應用更簡單。
管道是 Dataflow 使用的一個關鍵概念,它由一組“讀取輸入數據源、轉換數據、輸出結果的操作”組成。數據組織在大小有限或無限的集合中,并提交給多個“轉換 (transformations)”,由它們執行計算,即操作輸入集合、生成輸出集合。“管道執行器(pipeline runner)”是管道的執行環境。該 SDK 提供了三種類型的執行器:用于本地計算機的 DirectPipelineRunner,用于谷歌云平臺的 DataflowPipelineRunner,還有同樣用于谷歌云的 BlockingDataflowPipelineRunner,但它會在執行狀態中打印日志消息。
管道可以很簡單,轉換一個接一個地線性執行,或者也可以是一個復雜的有向圖,轉換路徑先分支后合并。一個管道不能與另一個管道共享數據或轉換。管道異步執行,而且為了優化整個處理過程的效率,數據流服務可以決定部分轉換的執行順序。
Dataflow 應用可以部署在谷歌云平臺上,后者可以提供所需的所有基礎設施,其中包括提供運行代碼的虛擬機、數據存儲或者用于數據處理的 BigQuery 機制。但開發人員也可以將這些應用部署在不同的執行環境中,既可以在本地,也可以在其它云上,只要創建了相同的服務即可。
Dataflow SDK 中包含了示例。谷歌已經創建了一個 Stack Overflow 標簽來回答開發人員的問題。
<span id="shareA4" class="fl"> </span>