選單

Kyligence技術合夥人祝海林:希望透過語言這種底層技術讓AI和大資料更加普世化 | DIVE 基礎軟體大會專訪

作者 | 李冬梅

採訪嘉賓 | 祝海林

在當前數字化轉型的大背景下,資料和 AI 已然成為了企業生存和發展的必備生產要素。作為支撐所有上層技術的根基,程式語言近年來越來越趨向領域化,而大資料和 AI 的蓬勃發展,必然需要一個更加為之量身定製的語言,以 SQLFlow、MLSQL 為代表的這類語言的誕生正是順應了這個趨勢。本文,InfoQ 有幸採訪到了【DIVE 全球基礎軟體創新大會 2021】程式語言新風向專場講師、Kyligence 技術合夥人 / 資深資料架構師、MLSQL 作者祝海林,聽他分享當前大背景下我們為什麼需要一門面向大資料和 AI 的程式語言。

1

MLSQL 從無到有,都經歷了什麼?

MLSQL 語言是人工智慧、大資料、雲計算三者融合之下的時代需求產物,傳統語言難以勝任這些新的需求。

InfoQ:首先請您介紹下現在所負責的工作吧?

我現在在 Kyligence 主要負責 MLSQL 開源相關的工作,目前已經構建起了一支專職的開源團隊。隨著團隊的全職人員不斷擴充,也說明了我們公司對開源投入很大,也很有信心。另外,這個團隊我們還在繼續招人。

InfoQ:作為 MLSQL 的作者,您設計這門語言的初衷是什麼?它誕生的背景是怎樣的?

祝海林:

天下武功,唯“快”不破。這個快又包含了兩個層面。第一個是,我的軟體夠快,比如 Kyligence 旗下的開源專案 Kylin 就在 OLAP 層面做到了極致的快,能對大資料做到亞秒級的查詢速度。第二個是,軟體使用者效率快,也就是基於這個系統,使用者能夠高效率地完成自己的任務和工作,原本要一週能完成的事情,現在可以兩小時就完成,從而讓生活變得更加簡單。

MLSQL 的出發點是第二個,我們希望隨著人工智慧、大資料、雲計算的發展,在這個大的技術發展環境下,使用者可以用一個語言,一個引擎就能在雲上、雲下涵蓋 AI/BigData 的所有任務,比如 OLAP 查詢、ETL 處理、流批一體、機器學習等等。這個語言必須足夠簡單,能夠讓大多數人接受,這個引擎也必須足夠簡單,能夠輕易被維護。而在 MLSQL 之前,使用者往往需要眾多的系統和語言進行組合,才能完成複雜的大資料和 AI 任務的,這極大地降低了使用者的效率,提高了維護成本,使得大資料和 AI 難以真正走入尋常百姓家。

InfoQ:MLSQL 的定位是一門面向大資料和 AI 的語言,那它和其他語言有什麼區別?

祝海林:

MLSQL 語言是人工智慧、大資料、雲計算三者融合之下的時代需求產物,傳統語言難以勝任這些新的需求。

首先,MLSQL 這個語言天然是分散式執行的,大部分傳統語言比如 Python、Java 必須依賴框架以及新的程式設計正規化才能完成分散式。典型的如 Java 的虛擬機器(執行引擎)就是單機的,語言也是單機的,你必須依賴 Spark 這種框架,學習它的分散式程式設計正規化,你才能進行分散式資料處理。

第二,傳統語言對於使用者來說入門太難了,原因在於它還是太“底層了”。真正效率高的是什麼語言?是宣告式語言,比如 SQL,還有比如命令列。宣告式語言,不用你在程式設計的時候關注和業務邏輯沒關係的東西,你只要描述你的任務是什麼,其他的比如任務如何生成,如何拆解和執行,都是底層語言引擎需要做的事情。這樣才能讓更多的人使用起來。畢竟,會 SQL 的人肯定比會 Python 的人多,對不對?

第三,新時代,我們不再要求語言必須有那種納秒、微秒級別的響應時間了。比如在做大資料分析、ETL、亦或是 AI 的時候,我們大體都是毫秒級,秒級或者以上其實都是可以接受的。這個時候,分散式的解釋型語言就很有價值了,雖然沒辦法做到納秒、微秒級別的執行速度,但是在可接受範圍內,它比傳統語言更易用。

第四,傳統語言都沒有在語言層面提供安全能力。比如哪些語法,哪些特性可以針對指定使用者開啟或關閉。MLSQL 在設計之初就提供了這種能力,比如使用者可不可以使用 MLSQL 裡的 load 語句載入資料,能載入什麼資料,載入的資料的哪些列,哪些行,要不要執行脫敏策略等等,都被內建在語言層面。

還有就是擴充套件性問題,傳統語言語法以及對語言引擎(VM)做擴充套件,是有很高的門檻的。MLSQL 執行引擎是使用 Scala/Java 開發的,而且設計的時候就是外掛核心,我們可以很輕易的透過外掛機制擴充套件 MLSQL 的語法,或者增強執行引擎的能力。

MLSQL 就是這麼一門面向大資料和 AI 設計的宣告式雲原生語言,以 SQL 為主體,保留了其分散式,宣告式特性,同時彌補了原生 SQL 可程式設計性的不足。在保證足夠簡單,同時又可以高度靈活的情況下,讓使用者更好的玩轉資料,所見即所得。

InfoQ:MLSQL 發展至今,經過了哪些迭代?

祝海林:

最早 MLSQL 是為了使用 SQL 解決 ETL 而誕生的,後面我們覆蓋到了流,到後來,我們發現還可以做 OLAP 查詢服務,再後來,我們發現我們還可以完成機器學習的工作,很驚喜的是,不僅可以做到,效果還相當的好。

在這期間,我們給 SQL 新增變數,分支語句,函式,模組等標準語言的支援,同時還擁抱了 Python 語言(語言內建了 Python 指令碼執行引擎)從而具備擁抱更大的 AI 生態的能力。到這個時候,我們就發現,MLSQL 已經有一個語言的完整形態了,可以解決大資料和 AI 領域的大多數問題。

2

MLSQL 的技術挑戰及未來規劃

開源還是挺費錢的,尤其是人力方面。

InfoQ:您一門程式語言並不容易,您在做 MLSQL 時是否遇到了技術上的挑戰?這期間有沒有讓您印象深刻的事件?

祝海林:

挑戰肯定是有的。一個比較典型的例子是,MLSQL 涉及的技術點太多了,作為開發者來說要把這些技術點都做好,這就非常有挑戰了。

比如在開發 MLSQL 的過程中,為了展示 MLSQL 的能力,我們需要一個好的 Web 端,這個時候我就重新去學 JavaScript/TypeScript,使用 ReactJs 去開發了一套 Web Console,為了能夠在桌面上使用,我學習 VSCode 擴充套件開發,開發了 VSCode MLSQL Lang 外掛,為了能夠把它更好地部署到 K8s 上,我學習 Go 語言,開發了 mlsql-deploy, 為了能夠支援分支語句,我用 Scala 手寫了一套表示式引擎,從詞法分析,到語法分析,到最後生成目的碼全部自己實現了一遍。

除此之外,各種大資料技術你都要有一定的掌控,融入進來,這才能做到讓大家開箱即得,這包括諸如 CDC(我們支援 MySQL/HBase)、資料湖(Delta Lake)、物化檢視、聚合下推等等大資料相關技術。

印象中,倒是沒有遇到技術上比較深刻的事情,但是有一個很深的感覺就是,現代軟體的複雜度太高了,一個人的時間是怎麼著都不夠的,無論你的精力和速度有多快。除非你是做那種小而美的軟體,解決一個非常領域化的問題,才可能持續單兵作戰。

InfoQ:那 MLSQL 又是如何做推廣的?單純依靠社群的力量是不夠的吧?是不是在資金上也投入巨大?

祝海林:

我們的推廣其實非常之少,開源後,如果這門語言確實解決了一些問題,並且能夠給使用者帶來收益,那麼就會有更多的使用者願意去嘗試。很多使用者都用了幾年後,突然某天在群裡提了一嘴,我才知道,竟然有用這麼久的使用者了。

在我加入 Kyligence 前的這些年,主要時間都花在了架構設計和程式碼開發上,用於宣傳的時間非常少,偶爾去參加一些 meetup 做個分享,或者給一些公司做個佈道,這期間也得到了很多國內媒體的幫助,他們也願意支援像我這樣的專案,很是感謝。

MLSQL 的推廣單純依靠社群的自然生長確實是不夠的,而且宣傳這個東西,是需要有一定的財力支援的。比如我做官網,自己掏錢買了雲主機,買了域名,然後我發現我買不起 https 認證,儘管我一直想搭建一個線上的體驗服務,讓使用者可以直接體驗 MLSQL 語言,但是考慮到昂貴的費用(大資料嘛,機器配置要求略高)一直沒有買,這個時候雖然時不時會有使用者會提供機器支援,但很不穩定,這對於宣傳其實是很負面的。

所以我個人認為,開源專案最好還是後面能有一家公司做支援。國外的很多開源專案雖然沒有公司支援,但是有基金會支援。

總之,開源還是挺費錢的,尤其是人力方面。

InfoQ:您對 MLSQL 的未來規劃是怎樣的?

祝海林:

遠景目標是,MLSQL 能夠成為大資料和 AI 的標準語言,同時實現資料的平民化,幫助中小企業非常低成本的落地大資料和 AI。我們現在正在努力將其打造成一個可信賴的產品,這包括易用性、效能、穩定性、安全等方方面面。

3

加入 Kyligence,從朋友圈好友走向事業合夥人

我們希望從語言這種更底層的方式,去更普世化地解決一些問題,讓大資料和 AI 變得更簡單,更加平民化。

InfoQ:前些年您一直在埋頭苦幹搞 MLSQL,那又是什麼樣的契機讓您選擇加入 Kyligence?

祝海林:

MLSQL 是我 16 年在北京的時候開源出來的,後面來到了杭州,經過五年的努力,MLSQL 已經有一定的成熟度,也有不少小創新,在很多公司得到了應用實踐,不少網際網路公司也借鑑了 MLSQL 的很多理念。

這個時候我覺得 MLSQL 如果一直作為一個個人開發者的作品,會影響它的發展,我希望它能踏入一個新的快車道。我和 Kyligence CEO 韓卿先生是很多年的“微信朋友圈好友”,這個時候他經過長時間的觀察,也頗看好 MLSQL, 而在我看來,Kyligence 也是一家非常優秀的擁有開源社群運營經驗的公司,所以我們很快一拍即合,最後 2021 年的時候,我以技術合夥人的身份加入了 Kyligence。

InfoQ:您加入 Kyligence 後,MLSQL 在 Kyligence 的業務板塊裡發揮了怎樣的作用?

祝海林:

Kyligence 一直都對開源專案有著較大的投入,Kylin 已經進入 Apache 很多年,而且也獲得很大的成功。總體來看,Kylin 以強大的分析能力和豐富的周邊生態而備受歡迎,Kylin 其實是非常好地覆蓋了 BI 這一部分,部分覆蓋 ETL/ML。那 MLSQL 則是很好地覆蓋了 ETL/ML,部分覆蓋了 BI ,所以兩者具有很好的互補性。第二點,我們公司也嘗試從語言層面去解決大資料和 AI 領域的問題。可能以前大部分還是從應用產品或者元件的方式去切入,這種方式的缺點是解決問題更像打地鼠,出現一個問題,用一個框架或者產品去解決。我們現在是希望能夠透過這種更底層的方式,去更普世化地解決一些問題,讓大資料和 AI 變得更簡單,更加平民化。

InfoQ:目前 MLSQL 的市場接受情況是怎樣的?是否達到了您的預期?

祝海林:對於 MLSQL,

用過的都說好。好些使用者都是三年以上老使用者了,唯一不足的是,一線網際網路公司很少有用的。不過因為之前在社群方面沒有做太多工作,甚至從來沒有組織過任何活動,屬於完全放養狀態,所以使用者數也在預料之中。今年(2021 年)開始,在公司的支援下,我已經在規劃這方面的工作了。在十月、十一月,我們很快會有很多新的社群工作落地,這包括新的官網、11 月要開始的 Meetup、線上體驗版,還有專門的公眾號,知乎專欄等等。我對未來還是充滿信心的,這五年技術的發展也讓我愈發相信 MLSQL 的技術路線是走對的。

嘉賓介紹:

祝海林,Kyligence 技術合夥人 / 資深資料架構師、MLSQL 作者,擁有 13+ 年研發經驗。最近幾年專注在 Data + AI 融合方向上,致力於幫助企業更好落地 Data/AI。

祝海林老師將在 InfoQ 舉辦的首屆【DIVE 全球基礎軟體創新大會 2021】上分享《面向 Data 和 AI 的語言 MLSQL》的主題演講。無論是企業還是一線研發人員,都可以透過 MLSQL 更好地去落地大資料和 AI。

此外,由 Kyligence 主辦的首期 Data + AI Meetup 將於 11 月 4 日 19:00-20:45 與大家在線上相見,這一期,我們一起來聊聊最近很火的向量化引擎。透過這次分享你將能更好地認識向量化引擎的原理和作用,以及最新的前沿探索和研究哦~

歡迎對大資料生態圈感興趣的同學複製連結到網站檢視,免費報名。

活動推薦

當前,資料庫、作業系統、中介軟體、程式語言……各個行業不斷變化,但時勢造英雄。基礎軟體發展的“黃金時代”中,怎麼成為行業“英雄”?

阿里雲李三紅、PingCAP 黃東旭、MegaEase 陳皓,還有信通院、統信軟體、極狐、清華大學、紅杉資本等各個行業的專家學者,一起講述行業變化,更要明析時代大勢下蘊含的無限機會!

掃描下圖二維碼

,看看還有誰在等著你吧!