Apache Beam的架構概覽

2022-02-16 10:38:20 字數 903 閱讀 4023

不多說,直接上乾貨!

apache beam是乙個開源的資料處理程式設計庫,由google貢獻給apache的專案,前不久剛剛成為apache tlp專案。它提供了乙個高階的、統一的程式設計模型,允許我們通過構建pipeline的方式實現批量、流資料處理,並且構建好的pipeline能夠執行在底層不同的執行引擎上。剛剛接觸該開源專案時,我的第一感覺就是:在程式設計api的設計上,資料集及其操作的抽象有點類似apache crunch(mapreduce pipeline程式設計庫)專案;而在支援統一資料處理模型上,能夠讓人想到apache flink專案。如果深入了解apache beam,你會發現未來apache beam很可能成為資料處理領域唯一乙個能夠將不同的資料應用統一起來的程式設計庫。

apache beam架構概覽

apache beam目前最新版本為2.1.1-snapshot,最新的release版本為2.0.0,很多特性還在開發中。

在網上找到乙個由andrew psaltis在2023年6月份演講的《apache beam: the case for unifying streaming api』s》,引用了其中乙個apache beam的架構圖,如下圖所示:

上圖中,我們可以看到,apache beam核心的主要有兩層

在pipeline構建層,針對不同的程式語言,構建一組用於定義pipeline相關抽象,提供程式設計api,這一層被稱為beam sdks。最終的使用者(具有不同程式語言技能的人員)可以基於這些抽象的beam sdk來構建資料處理pipeline。

runner適配層,主要是用來對接底層的計算引擎,用來執行上層使用者開發好的pipeline程式。

OpenCart 架構概覽

opencart是乙個 設計精緻小巧的電子商務系統。written by iefreer founder of techbrood.com 1 mvc架構 opencart是基於mvc正規化的。model層負責獲取資料。和其他一些框架如cakephp相比,model的功能實現有限但簡潔,直接呼叫db...

CryEngine架構概覽

這裡說的架構只是從大體上初略描述,以後還會繼續更新詳細的說明從模組的分布上來看cryengine3和cryengine2沒有區別,其主要的dll從檔名就可以看出個大概 這裡最有意思的是 其中crysystem是引擎和外界互動的介面,從crysystem中可以獲取各個介面,例如 igame 遊戲框架 ...

pomelo架構概覽

pomelo之所以簡單易用 功能全面,並且具有高可擴充套件性 可伸縮性等特點,這與它的技術選型和方案設計是密不可分的。在研究大量遊戲引擎設計思路基礎上,結合以往遊戲開發的經驗,確定了pomelo框架的設計方案。node.js自身特點與遊戲伺服器的特性驚人的吻合。在node.js的官方定義中,fast...