MLSQL 控制台预览版 推出啦
2019-01-05 本文已影响364人
祝威廉
前言
MLSQL 由三部分构成:
- MLSQL Engine.
- MLSQL Cluster
- MLSQL 控制台(就是我们今天要介绍的)
一个MLSQL Engine启动后就是一个MLSQL实例,通常我们需要启动多个MLSQL实例,做Load Balance 或者为不同业务线准备。 MLSQL Cluster 则提供了对多MLSQL实例的管理,通过类似K8s标签功能,MLSQL可以根据标签将请求发送到不同MLSQL实例上,并且提供了多种负载均衡策略,同时具备弹性调整某个负载均衡集群的MLSQL实例数。
但是,MLSQL一直缺乏一个控制台,MLSQL实例带有一个非常简单的页面,类似下面的图:
image.png但是可以做的工作太少了。现在,一个具备基本功能的控制台已经开发完毕。
使用说明
MLSQL控制台由 ReactJS + ServiceFramework 开发。
控制台界面如下:
主要有几个区组成:
- 项目脚本管理区
- 脚本编辑区
- 信息反馈区
- 结果展示区
控制台里的项目脚本管理区根目录统一,第二层级必须是项目,之后内部可以创建目录或者脚本。脚本之间可以通过include互相引用使用。
创建demo示例:
- 启动后,你需要注册一个账号
- 登录之后,进入上图的界面
- 创建目录bigbox
- 创建工具包 functions
- 创建f.mlsql脚本:
/*
MLSQL脚本完成UDF注册示例
*/
-- 填写script脚本
set plusFun='''
def plusFun(a:Double,b:Double)={
a + b
}
''';
--加载脚本
load script.`plusFun` as scriptTable;
--注册为UDF函数 名称为plusFun
register ScalaScriptUDF.`scriptTable` as plusFun options
and methodName="plusFun"
;
- 接着在bigbox下创建main.mlsql
include bigbox.`functions.f`;
set data='''
{"a":1}
{"a":1}
{"a":1}
{"a":1}
''';
load jsonStr.`data` as dataTable;
-- 使用plusFun
select plusFun(1,1) as res from dataTable as output;
记得保存哦。然后点击运行即可。
项目部署
目前是预览版,没有提供docker版本给大家用。大家可以自己源码编译下。
按如下方式部署:
- 克隆项目:
git clone https://github.com/allwefantasy/mlsql-api-console .
把项目里的conf/application.yml 拷贝出来,假设我们放在 /tmp/里。
- 创建数据库
找到图中的的db.sql文件:
image.png导入进去就好。
修改/tmp/application.yml文件里的数据库连接相关。
- 打包项目
mvn package -Pshade
- 启动
java -cp target/mlsql-api-console-1.0-SNAPSHOT.jar tech.mlsql.MLSQLConsole \
-mlsql_cluster_url http://127.0.0.1:9003 \
-my_url http://127.0.0.1:9002 \
-config /tmp/application.yml
其中,-mlsql_cluster 为 MLSQL 实例/或者MLSQL Cluster 地址。 my_url该应用自己的地址,方便回调。
- 访问如下地址
http://127.0.0.1:9002