- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
MLSQL-可编程的SQL
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,