MLSQL Stack 1.5.0 版本发布

2022-07-21 13:49:51 浏览数 (1)

1.5.0好像是MLSQL历时最长的一个版本。从九月初份到一月初,四个多月时间。这四个月搞出了很多大事情。这个版本,经过很多的用户实际的使用反馈(包括一些金融公司也有在使用),已经很稳定了,可以进入生产环境中使用。

基于Ray的Python支持

MLSQL的周边项目

PyJava

也开始日趋完善,让MLSQL对Python的支持上了一个新的台阶。1.5.0版本的架构如下:

代码看起来也更简洁了:

插件商店上线

商店地址为:

https://store.mlsql.tech/

插件体系的构建,使得MLSQL核心代码更加简洁,同时用户可以通过插件机制完全定制MLSQL Engine,获得更好的用户体验。大家可以看如下的介绍文章:

祝威廉:MLSQL插件商店插件介绍

有了插件商店,用户可以一行命令添加hbase数据源支持:

代码语言:javascript复制
!plugin ds add tech.mlsql.plugins.ds.MLSQLHBase2x ds-hbase-2x;

接着就可以按如下方式使用HBase了:

代码语言:javascript复制
set rawText='''
{"id":9,"content":"Spark好的语言3","label":0.0}
{"id":10,"content":"MLSQL是一个好的语言7","label":0.0}
{"id":12,"content":"MLSQL是一个好的语言7","label":0.0}
''';

load jsonStr.`rawText` as orginal_text_corpus;

select cast(id as String)  as rowkey,content,label from orginal_text_corpus 
as orginal_text_corpus1;

connect hbase2x where `zk`="127.0.0.1:2181"
and `family`="cf" as hbase1;

save overwrite orginal_text_corpus1 
as hbase2x.`hbase1:mlsql_example`;

数据湖和增量场景的加强

随着MLSQL另外两个生态项目的发展

allwefantasy/spark-binlogallwefantasy/delta-plus

我们革新了数据库到数据湖增量同步的理念,让用户用两端代码就能完成数据库的增量同步:

代码语言:javascript复制
set streamName="binlog";

!hdfs -rm -r /tmp/cpl-binlog2;

load binlog.`` where 
host="127.0.0.1"
and port="3306"
and userName="xxxxx"
and password="xxxx"
and bingLogNamePrefix="mysql-bin"
and binlogIndex="4"
and binlogFileOffset="4"
and databaseNamePattern="mlsql_console"
and tableNamePattern="script_file"
as table1;

save append table1  
as rate.`mysql_{db}.{table}` 
options mode="Append"
and idCols="id"
and duration="5"
and syncType="binlog"
and checkpointLocation="/tmp/cpl-binlog2";

spark-binlog 目前除了MySQL的支持以外,还支持hbase 的WAL日志。更多信息可以参考这篇文章:

祝威廉:是时候改变你数仓的增量同步方案了

在1.5.0版本,数据湖是默认支持的,你可以使用detla来代表,比如:

代码语言:javascript复制
load delta.`public.table1` as table1;

MLSQL也可以透明的使用hive,优先加载数据湖的表,如果不存在,则使用hive的表。保存时,也是优先使用数据湖。所以前面的例子也可以这么写(如果开启了数据湖优先功能):

代码语言:javascript复制
load hive.`public.table1` as table1;

微众Linkis也支持MLSQL了

在1.5.0版本,我也给微众的 Linkis 添加了MLSQL的支持。https://github.com/WeBankFinTech/Linkis/pull/85 这样让用户除了MLSQL Console之外,有更好的控制台选择(以及Java Client)

提供了内置的一个任务调度框架

使用上也很MLSQL,因为配置完全采用MLSQL来完成。

代码语言:javascript复制
-- 定时调度,脚本bigbox.main.mlsql 每三分钟运行一次
!scheduler "bigbox.main.mlsql" with "*/3 * * * * ";

-- 依赖调度, bigbox.main.mlsql一旦执行完成后,执行demo.dash2.mlsql
!scheduler "demo.dash2.mlsql" depends on "bigbox.main.mlsql"; 

项目也是开源的

https://github.com/allwefantasy/mlsqlscheduler

后续会加到插件项目里。

当然还有一大堆的bug修复和新的小功能特性,大家可以看ISSUE或者PR

最后

官网地址: https://www.mlsql.tech/

下载地址:https://download.mlsql.tech/1.5.0/

官方文档参看:https://docs.mlsql.tech/zh/

0 人点赞