申请试用
HOT
登录
注册
 
MLSQL-可编程的SQL
1 点赞
0 收藏
2下载
Apache Spark中国技术交流社区
/
发布于
/
107
人观看

SQL简单易用,但是现在大家用的多了,也慢慢发现它还是存在诸多问题的。我们认为良好的编程应该是创建小型、可理解、可重用的逻辑片段,并且这些逻辑片段还要被测试、被命名、被组织成包,而这些包之后可以用来构造更多有用的逻辑片段,这样的工作流程才是合理又便捷的。更进一步的,这些“高阶”能力应该是可选的,我们总是希望用户一开始能用最简单的方式来完成手头的工作。尽管如此,现在的SQL并不能很好的支持我们前面提到的这些。

这次分享我们会重点介绍MLSQL的一些语法特性,通过这些特性的覆盖,我们可以看到MLSQL是怎么作为一个可编程的SQL语言的。

祝海林(网名祝威廉) 现就职于Kyligence,资深数据架构师,拥有10+年研发经验。
最近六年专注于数据管理,商业分析,机器学习的统一平台的设计和开发。个人热衷于开源产品的设计和研发,MLSQL(mlsql.tech)为其主要开源作品。

展开查看详情

1.MLSQL: 可编程 SQL 祝威廉 Kyligence 资深数据架构

2.“ 请参看: SQL 劝学篇

3.SQL都有哪些局限 扩展能力偏弱 大部分引擎只支持函数扩展 试图用一个语句完成一个非常 单一语句 复杂的处理逻辑 复用是软件工程的核心,但SQL 复用度低 为了简单,牺牲了这方面的能 力 表哥,表姐,茶树 难以完成非面向数据的处理逻 不支持AI 菇们苦SQL 久已! 辑,难以整合AI生态 缺乏分支,变量 If/Else 是必须的 等基本语言结构 变量也是必须的 © Kyligence Inc. 2020,

4.MLSQL :可编程的SQL 面向大数据和AI设计的语言 成熟的底层引擎 MLSQL 语言 分布式引擎 一个真正整合数据管理、商业分析、机器学习的 统一语言及统一平台 内置数据湖,CDC,各类算法, Python支持等大数据开箱即用功能 内置库 © Kyligence Inc. 2020,

5.可覆盖人群 应用API(譬如业务后台分 数据科学家 大数据工程师 产品运营 析相关功能) Apps(Notebook, Works, Scripts等) MLSQL Engines © Kyligence Inc. 2020,

6.“ 可编程能力:

7.标准SQL,嵌套子查询,有 MLSQL,打平结构,脚本化 层级结构 © Kyligence Inc. 2020,

8.“ 可编程能力:

9.目录结构 通过Include按需加载模块 © Kyligence Inc. 2020,

10.定义了一个给表加条数限制的模块 通过set语法配置参数 © Kyligence Inc. 2020,

11.“ 可编程能力: Snippet Template

12.代码重复,但又有一点点不同 设置模板,并且支持设置参数 © Kyligence Inc. 2020,

13.“ 可编程能力: 分支语法支持

14.表达式支持所有SQL函数 支持分支语法嵌套 特别适合根据不同参数,运行不同SQL © Kyligence Inc. 2020,

15.“ 可编程能力: Python支持

16.原生模式 NoteBook模式 © Kyligence Inc. 2020,

17.“ 可编程能力:Java/Scala函数扩展

18.随写随用 © Kyligence Inc. 2020,

19.“ 可编程能力:命令行封装

20.用变量设置一段模板 将模板作为命令来执行,支持参数传递 © Kyligence Inc. 2020,

21.“ 可编程能力:语言扩展点

22.load delta.`db1.table1` where k=“v” as db1_table delta 可以使用Java/Scala 实现,然 where 后面可以自定义传递给你的实现 后附带jar包即可 © Kyligence Inc. 2020,

23. 可以实现任意计算逻辑 train dataset as RandomForest.`/tmp/modes` where maxDepts=”3” as newdataset; 表进表出(可选) © Kyligence Inc. 2020,

24. MLSQL 特点总结 u Notebook交互模式 u 数据源众多,支持数据分析 u 懂SQL即可探索数据 功能强大 和探索 SQL & Python无缝衔接 简单易用 内置大量算法和特征工具, u 性能强悍 u u 单一底层引擎 支持Python生态 u 支持Kylin以及其他索引加速 数据安全 高度可扩展 © Kyligence Inc. 2020,

25.MLSQL Engine 逻辑分层图 © Kyligence Inc. 2020,

26.“

27. 各种数据源到表/列级别权限,也支 持 HDFS 路径授权 MLSQL 解析时权限可以快速报错,无需等待 语言层面内置的 运行时权限可以控制到列 数据安全 精确控制模块组件对用户是否可用 权限不侵入任何底层储存 © Kyligence Inc. 2020,

28.解析时权限控制原理示意图 load hive.`public.table1` as table1; 语法解析 动作:load hive:public.table1 校验 table1 auth server 当前用户名称 © Kyligence Inc. 2020,

29.运行时权限控制原理示意图 load hive.`public.table1` as table1; 运行解析 动作:load hive:public.table1 当前用户名称 返回可用字段 auth server temp:table1:{schema} © Kyligence Inc. 2020,

1 点赞
0 收藏
2下载