開源大資料社群 & 阿裡雲 EMR 系列直播 第二期
主題:MLSQL - 可程式設計的 SQL
講師:祝海林,Kyligence 資深資料架構師
議題重點:重點講解 MLSQL 的一些文法特性,通過這些特性的覆寫,我們可以看到 MLSQL 是怎麼作為一個可程式設計的 SQL 語言的
直播回放連結:
https://www.slidestalk.com/w/399前言
SQL 簡單易用,但是現在大家用的多了,也慢慢發現它還是存在諸多問題的。我們認為良好的程式設計應該是建立小型、可了解、可重用的邏輯片段,并且這些邏輯片段還要被測試、被命名、被組織成包,而這些包之後可以用來構造更多有用的邏輯片段,這樣的工作流程才是合理又便捷的。更進一步的,這些“高階”能力應該是可選的,我們總是希望使用者一開始能用最簡單的方式來完成手頭的工作。盡管如此,現在的 SQL 并不能很好的支援我們前面提到的這些。
這次分享重點介紹了 MLSQL 的一些文法特性,通過這些特性的覆寫,我們可以看到 MLSQL 是怎麼作為一個可程式設計的 SQL 語言的。
内容概述
為什麼 SQL 是資料時代的标準,而不是像 Python 這樣的通用語言?因為用 Python 你可以解決大部分你不需要解決的問題,是以你相當于拿到了零部件,而不是一輛能跑的汽車。你花了大量時間去組裝汽車,而不是去操控汽車。大部分同學核心要解決的是資料操作問題。SQL 就是這麼一個友善你操作資料的語言。
你不需要關注 CPU ,記憶體,臨時變量,線程這些和計算機相關的概念,SQL 可以讓你很自然的用語言去告訴計算機怎麼操作這些資料,你隻要描述好了你的資料操作邏輯,剩下的交給計算機就好了。
但是 SQL 也存在一定的局限性。

時代在變,SQL 也需要與時俱進,而 MLSQL 正好是這個與時俱進的結果。
可程式設計能力:腳本化
可程式設計能力:子產品化
可程式設計能力:Snippet Template
可程式設計能力:分支文法支援
可程式設計能力:Python 支援
可程式設計能力:Java / Scala 函數擴充
可程式設計能力:指令行封裝
可程式設計能力:語言擴充點
MLSQL 特點總結
MLSQL Engine 邏輯分層圖
最後,但是也是最重要的:如何保證資料安全?
解析時權限控制原理示意圖
運作時權限控制原理示意圖
文法元素權限控制原理示意圖
後續我們會在釘釘群定期推送精彩案例,邀請更多技術大牛直播分享。歡迎有興趣的同學掃下方二維碼加入釘釘群進行交流和技術分享。關注公衆号,鎖定每周精彩分享内容!