大數據中臺建設其實已經如火如荼了。我們在這裏也不去糾結是中臺還是平臺,總之形態就是登錄web後就可以使用各種大數據引擎進行數據探索,分析,機器學習等工作,大家可以在上面寫SQL,Python,Scala等等。
大數據計算引擎有非常多,比如Spark, ClickHouse, Presto等等 。然後前端產品 有比如tableau, zeppeline/jupyter ,各種調度,以及大家開發的花樣百出的web交互產品。我們知道,任何東西交互都需要有個協議,在Linkis之前,大家默認遵從的協議其實就是JDBC。但無論如何,前端都是直接和後端耦合在一起的,一個web前端很努力的也可能只能適配到幾個Engine。
那有沒有一種可能,有一個標準的協議,大家都和這個協議交互,這裏的大家指的前端的 Web、程序,就可以和後端的 Engine進行交互?如果有的話,那麼前端開發會變得很容易,也更容易標準化。現在前端Web很難複用,每個公司都要自己開發一套,其實有一個很重要的原因就是缺乏這個協議。
Linkis承擔起了這個任務。他提出了一套標準,對Web/調度等提供了標準的Rest/WebSocket協議,對引擎層他提供了一套擴展體系,允許團隊將各種引擎集成到Linkis裏。一圖勝千言,我們看看官方的圖就知道了:
在這個基礎上,Linkis還可以完成一些大家以前經常重複開發的功能,比如多租戶,權限校驗等等。另外Linkis採用了微服務架構,所以擴展性也足夠的好。
我早先在朋友圈說,
Apache Arrow 典型的是一個構建生態的項目,項目自身是沒有什麼技術難度的,難度在於讓大家都以它爲數據的交互標準,而團隊的核心工作就是和其他各個重要的項目保持協作,這個也是國外公司的啥手機能力,國內目前很難趕上的部分。
祝威廉
所以我其實是希望Linkis定位一定要清晰,和Arrow 非常像,Linkis核心就是做生態,把報表,workstation,調度等等和計算引擎連接起來。不要貪大求多,比如還帶進去混合計算的功能,讓自身也變成了一個計算引擎。
等市面上,大家都用Linkis去訪問自己的Engine層,那麼Linkis就真的成功了。