1. 程式人生 > >SQL還是那個SQL麼?丨CSDN博文精選

SQL還是那個SQL麼?丨CSDN博文精選

點選上方“程式人生”,選擇“置頂公眾號”

第一時間關注程式猿(媛)身邊的故事

640?wx_fmt=jpeg

本文來自CSDN部落格專家祝威廉的博文,如需轉載,請聯絡原文作者,點選文末“閱讀原文”可直接訪問作者部落格。


今天MLSQL群裡有個小夥伴問到,能把Spark, Flink 這些框架執行在黑莓上麼?

我回答道:可以作為一個內建SQL計算引擎嵌入(不是資料庫),其他可能沒啥用了。


不過這又引起了我的另外兩個思考,第一個是,Spark真的能(或者有必要)跑在移動裝置上麼?第二個問題是,在傳統Web/App開發領域,SQL只是資料庫的一個操作語言(DSL),但是在大資料裡,SQL已經遠遠超越了資料庫操作語言的範疇,而是資料處理的標準語言,而在MLSQL中,SQL被髮揮到極致,是一切資料處理的核心語言,無論爬蟲,資料處理,流式,ML(AI)都是用SQL做互動的。 那麼為什麼在大資料領域SQL會有這種變革呢而在Web/App開發領域沒有這種事情發生呢?


Spark真的能(或者有必要)跑在移動裝置上嗎?


首先,Spark經過改造完全可以跑在移動裝置上的,其次是這也是有必要的。之前跟挖財的小夥伴交流,他們用改造過的Spark引擎可以把一些小資料量的複雜SQL計算縮小到幾毫秒,那麼如果將該引擎移植到Ios/Android/BlackBerry, 根據我前面提到的第二個思考,我們不再把SQL當做一個數據庫操作語言,而是資料處理語言,我在移動裝置上完全可以把資料處理全部換到spark引擎上,而且可以實現處理邏輯的熱升級(手機端連線伺服器,更新SQL指令碼)就能更新資料處理邏輯。會不會功耗過高?幾毫秒的CPU(GPU/AI晶片)而已。


對 Web/App小夥伴思維模式的衝擊


我們知道以前在做Web的時候,分庫分表的痛點是查詢的時候很難受。而早期Spark無法被Web/App的小夥伴使用,因為他做不到毫秒級的計算延遲。但是有針對性的對Spark做優化(不再針對大資料,而是針對Web/App),得益於Spark的多資料來源支援,以及高效的SQL計算引擎,分表分庫查詢不在是噩夢,我們可以輕易實現。事實上,tidb已經是這麼做的了。這是以第一點。


第二點是,很多業務處理環節,是不是都能通過SQL來處理呢?不能說大部分,但是應該相當一部分是可以不用寫程式碼了,而是通過SQL來完成的,那這也意味著,我們可以熱更新的好處。所有資料處理無非如下三種模式:


640?wx_fmt=png


而在MLSQL裡,我們甚至對API也用SQL做了抽象:


640?wx_fmt=png


最後的實現效果如下:


640?wx_fmt=png


我們會用sql對傳遞進來的data的每條內容中的feature欄位進行處理,得到的結果也會是一張表。


結論


SQL可以在Web/App 領域進一步發揚光大,就像他在大資料裡一樣。

Spark 團隊可以考慮將Spark移植到Web/App領域。


- The End -

「若你你有原創博文想與大家分享,歡迎投稿或入駐CSDN部落格」

部落格地址:https://blog.csdn.net

投稿請加編輯微信丨mengyidan1988

備註#博文# 


更多精彩博文

移動一小步,視界大不同!

更多程式設計師技術交流,奇聞軼事,

歡迎掃描右側二維碼下載

CSDN Android、iOS移動客戶端。

640?wx_fmt=png


推薦閱讀:

640?wx_fmt=gif


print_r('點個贊吧');
var_dump('點個贊吧');
NSLog(@"點個贊吧!");
System.out.println("點個贊吧!");
console.log("點個贊吧!");
print("點個贊吧!");
printf("點個贊吧!\n");
cout << "點個贊吧!" << endl;
Console.WriteLine("點個贊吧!");
fmt.Println("點個贊吧!");
Response.Write("點個贊吧");
alert(’點個贊吧’)