MLSQL系列 1:MLSQL介绍

MLSQL是一门标准的大数据/机器学习语言。MLSQL Engine是执行MLSQL语言的分布式引擎,通过Antlr4(后续文章会讲解)定义和解析MLSQL语法,并翻译为Spark代码,在本地或集群执行;MLSQL是一种类SQL语言,通过类SQL的语法开发业务,执行计算。MLSQL的计算内核是Spark,但是内嵌python计算引擎和Spark交互,因此对机器学习的支持也是很强大的,也可以支持自定义计算引擎(如javascript)。MLSQL提供丰富的接口,满足大多自定义开发的需求。MLSQL太强大了,今天先做一个简单介绍,后续将开启MLSQL的探索之旅。从学习的角度,通过MLSQL可以学习到很多技术,不仅仅是更深入的开发Spark;从企业的角度,可以带来的价值,也是非常可观的。下面将一一道来:

MLSQL系列 1:MLSQL介绍

从一个真实的案例说起,团队初期一般会接到大量的报表需求,为了快速出数据,可能几个人一起开发不同的报表,不同的开发语言(python、java、scala),不同的api选择(Spark Core、Spark Sql)重复的代码开发命名混乱等一系列的问题接踵而至;在说说上线,测试环境提交到git,打包编译,提交到集群执行,登服务器查看日志与结果,如果发现bug还要重复这样的操作,生产环境依然要相似的流程,操作复杂,周期长

随着团队的发展,人员的补充,可以腾出人针对上面的问题,设计一套规范,规范化流程,慢慢的统一、整改...,一段漫长而枯燥的工作即将开始,重复的代码迁移和测试,加班、加班...;随着需求越来越多,代码慢慢变得庞大很难维护,而且随着公司规模的变大,需求也更加的复杂,如果一个系统没有很好的维护和扩展性,坑已准备充足,加班、加班...;还有一种情况比较好些,就是把计算平台化,可以统一开发,减少重复代码,维护也会简单些,但是技术要求也会更高面临的问题也会更多...;这只是从简单的报表说起,业务何止如此简单!

MLSQL系列 1:MLSQL介绍

下面将罗列一系列平台需要解决的问题:

  1. 计算资源如何统一管理core、memory

  2. 安全问题如何解决,机器安全、操作权限、数据权限等

  3. 用户之间的操作如何隔离

  4. 如何操作更多的数据源

  5. 不同的数据源如何混算

  6. 如何自定义计算、函数

  7. 如何快速的研发上线

  8. 如何部署、升级、维护和监控

  9. 如何简单的让业务人员使用

  10. 如何减少IT成本

  11. 如何扩张开发,异常预警、快速排错、统一调度等扩展功能

真正面临的问题远不止这些,但MLSQL都能轻松应对:

  1. MLSQL可以根据不同的计算需求,指定不同的计算资源,启动多个MLSQL实例,提供服务,需要容错,用户实现负载均衡策略就好

  2. MLSQL对操作、数据源、库表列等可以实现自定义权限控制,实现相关接口就可以和权限系统打通

  3. MLSQL支持多租户,用户之间操作不会有影响

  4. MLSQL内置常用数据源,用户也可以自定义数据源,只需实现相关接口

  5. MLSQL加载数据源后,统一由Spark计算

  6. MLSQL支持UDF、UDAF和ET(对DataFrame自定义计算)开发、宏等自定义计算开发

  7. 输入MLSQL的计算脚本,立即执行,查看日志和结果,MLSQL为服务,仅需一次启动,减少submit时间

  8. MLSQL支持多种环境部署(社区版、hdp、cdh版集群)、官方维护版本升级、向前兼容,监控可以集成Prometheus

  9. MLSQL功能强大,但语法简单,会SQL的用户能快速使用

  10. MLSQL已经实现大多数功能,用户只需开发特殊的功能就好,大大减少人力成本

  11. MLSQL是独立的计算引擎,而且提供丰富接口,方便用户扩展开发

MLSQL系列 1:MLSQL介绍

后续将以技术原理和实战的角度展开MLSQL的技术之旅!

更多介绍请访问:http://docs.mlsql.tech/zh/

最重点!如何加入我们!

MLSQL系列 1:MLSQL介绍

扫码添加小可爱微信号。添加成功后,发送  mlsql  这5个英文字母进群。