腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

Kyligence 技术合伙人祝海林:希望通过语言这种底层技术让 AI 和大数据更加普世化 | DIVE 基础软件大会专访

  • 2021-10-28
  • 本文字数:4471 字

    阅读完需:约 15 分钟

Kyligence技术合伙人祝海林:希望通过语言这种底层技术让AI和大数据更加普世化 | DIVE 基础软件大会专访

在当前数字化转型的大背景下,数据和 AI 已然成为了企业生存和发展的必备生产要素。作为支撑所有上层技术的根基,编程语言近年来越来越趋向领域化,而大数据和 AI 的蓬勃发展,必然需要一个更加为之量身定制的语言,以 SQLFlow、MLSQL 为代表的这类语言的诞生正是顺应了这个趋势。本文,InfoQ 有幸采访到了【DIVE全球基础软件创新大会2021】编程语言新风向专场讲师、Kyligence 技术合伙人/资深数据架构师、MLSQL 作者祝海林,听他分享当前大背景下我们为什么需要一门面向大数据和 AI 的编程语言。

MLSQL 从无到有,都经历了什么?

 

MLSQL 语言是人工智能、大数据、云计算三者融合之下的时代需求产物,传统语言难以胜任这些新的需求。 


InfoQ:首先请您介绍下现在所负责的工作吧?

 

我现在在 Kyligence 主要负责 MLSQL 开源相关的工作,目前已经构建起了一支专职的开源团队。随着团队的全职人员不断扩充,也说明了我们公司对开源投入很大,也很有信心。另外,这个团队我们还在继续招人。

 

InfoQ:作为 MLSQL 的作者,您设计这门语言的初衷是什么?它诞生的背景是怎样的?

 

祝海林:天下武功,唯“快”不破。 这个快又包含了两个层面。第一个是,我的软件够快,比如 Kyligence 旗下的开源项目 Kylin 就在 OLAP 层面做到了极致的快,能对大数据做到亚秒级的查询速度。第二个是,软件使用者效率快,也就是基于这个系统,使用者能够高效率地完成自己的任务和工作,原本要一周能完成的事情,现在可以两小时就完成,从而让生活变得更加简单。 

 

MLSQL 的出发点是第二个,我们希望随着人工智能、大数据、云计算的发展,在这个大的技术发展环境下,用户可以用一个语言,一个引擎就能在云上、云下涵盖AI/Big Data的所有任务,比如 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 领域的大多数问题。


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。我们现在正在努力将其打造成一个可信赖的产品,这包括易用性、性能、稳定性、安全等方方面面。

 

加入 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 年)开始,在公司的支持下,我已经在规划这方面的工作了。在十月、十一月,我们很快会有很多新的社区工作落地,这包括新的官网、10 月底线下的 MLSQL meetup、线上体验版,还有专门的公众号,知乎专栏等等。我对未来还是充满信心的,这五年技术的发展也让我愈发相信 MLSQL 的技术路线是走对的。

 

嘉宾介绍:

 

祝海林,Kyligence 技术合伙人/资深数据架构师、MLSQL 作者,拥有 13+年研发经验。最近几年专注在 Data + AI 融合方向上,致力于帮助企业更好落地 Data/AI。

 

祝海林老师将在 InfoQ 举办的首届【DIVE全球基础软件创新大会2021】上分享《面向 Data 和 AI 的语言 MLSQL》的主题演讲。无论是企业还是一线研发人员,都可以通过 MLSQL 更好地去落地大数据和 AI。

 

当前,数据库、操作系统、中间件、编程语言……各个行业不断变化,但时势造英雄。基础软件发展的“黄金时代”中,怎么成为行业“英雄”?

 

阿里云李三红、PingCAP 黄东旭、MegaEase 陈皓,还有信通院、统信软件、极狐、清华大学、红杉资本等各个行业的专家学者,一起讲述行业变化,更要明析时代大势下蕴含的无限机会!点击此次,看看还有谁在等着你吧!



2021-10-28 08:001812
用户头像

发布了 454 篇内容, 共 143.7 次阅读, 收获喜欢 596 次。

关注

评论

发布
暂无评论
发现更多内容

Android 组件化,从入门到不可自拔,2021必看

android 程序员 移动开发

Android 面经:我是如何进入大厂腾讯的?,kotlinui封装

android 程序员 移动开发

Android 屏幕适配从未如斯简单(已废弃该使用方式),Android开发经验的有效总结

android 程序员 移动开发

Android 深入理解Android中的自定义属性,资深Android面试题

android 程序员 移动开发

Android 面试主题集合整理,血与泪的总结

android 程序员 移动开发

Android 面试总结 - LiveData,2021大厂Android知识点总结

程序员 移动开发

Android 布局阴影实现,移动开发框架2019

android 程序员 移动开发

Android 记一次解决问题的过程:从源码中分析永远是解决问题的最有效方法

android 程序员 移动开发

Android 进阶解密 - 系统启动(1),kotlin数组排序

android 程序员 移动开发

Android 开发岗往年至今年高频面试题整(内含参考答案)

android 程序员 移动开发

Android 开发者想咸鱼翻身并不是难事,只要你掌握这些…

android 程序员 移动开发

Android 查看并解决重复依赖,分享一些行业经验

android 程序员 移动开发

Android---教你如何用三十分钟在安卓上开发一个微笑抓拍神器

android 程序员 移动开发

Android 扩大 View 的点击区域(1),安卓软件开发面试题

android 程序员 移动开发

Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架

android 程序员 移动开发

Android 进阶解密 - 系统启动,面试阿里P7岗

android 程序员 移动开发

Android---性能优化方案分享,快来收藏

android 程序员 移动开发

Android--关闭某个指定activity,android游戏开发实战

android 程序员 移动开发

Android 开发——JVM复习小结,深入解析Android-AutoLayout

android 程序员 移动开发

Android 性能优化最佳实践,面试必问

android 程序员 移动开发

Android 嵌套滑动总结,android项目驱动式开发教程

android 程序员 移动开发

Android 相关源码分析,一种非常简单的Android屏幕适配方案

android 程序员 移动开发

Android 知识简记 快速回顾各种知识,android开发技术周报

android 程序员 移动开发

Android 组件化实战,企业微信移动应用

android 程序员 移动开发

Android 进阶性能优化,面试必问篇,掌握这些Android开发热门前沿知识

android 程序员 移动开发

Android 开发岗往年至今年高频面试题整(内含参考答案)(1)

android 程序员 移动开发

Android 点九图机制讲解及在聊天气泡中的应用,android音视频开发何俊林pdf

android 程序员 移动开发

Android 自定义View之随机数验证码(仿写鸿洋),那些被大厂优化的程序员们

android 程序员 移动开发

Android 适配 64 位架构,掌握这十个搜索技巧让你的工作效率至上提高十倍

android 程序员 移动开发

Android 开发市场是盛是衰?你应该知晓,android开发项目实战

android 程序员 移动开发

Android 扩大 View 的点击区域,2021阿里手淘Android面试题目

android 程序员 移动开发

Kyligence技术合伙人祝海林:希望通过语言这种底层技术让AI和大数据更加普世化 | DIVE 基础软件大会专访_AI_李冬梅_InfoQ精选文章