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/