常见问题集锦
数据源有详细参数配置文档么?比如kafka,我可以理解成kafka consumer的配置都可以写到option里面吗
MLSQL大部分数据源集成的是第三方实现。比如excel的支持得益于spark-excel项目。同样,Kafka的配置参数和Spark 对Kafka的需求配置是一样的,JDBC则也是标准的Spark文档中描述的那样。不过大部分人使用时,不会使用所有参数, MLSQL也提供了两种方式展示可选参数:
- 使用MLSQL Console, Console支持参数自动补全
image.png
MLSQL Console 实现了数据源和参数联动。不过目前只有部分数据源支持,我们会尽快覆盖所有数据源。
- 使用帮助语句。
查看所有数据源:
代码语言:javascript复制load _mlsql_.`datasources` as output;
查看具体某个数据源的可选参数:
代码语言:javascript复制load _mlsql_.`datasources/params/excel` as output;
image.png
除了数据源,其他所有MLSQL特有模块,也都是支持前面两种方式的。比如,我想查看BigDL模块的示例:
image.png
接着就可以看到:
image.png
或者通过命令查看所有可选参数:
代码语言:javascript复制load modelParams.`BigDLClassifyExt` as output;
后台是怎么区分batch还是streaming的?比如我load kafka,同时又load hbase,mysql或者es,这种情况下底层对应的作业时streaming的还是batch的,逻辑都是在window范围内执行的吗
后台是根据 set streamName="streamExample";
因为流式计算我们需要用户定义一个唯一的名字。MLSQL底层是使用spark structured streaming,所以structured streaming存在的限制,MLSQL都存在。structured streaming支持对静态数据的Join。如果您需要深入,请多了解structured streaming。
engine本身是个spark的app,里面提供的restful服务,那么这个服务可以是高可用的吗?
Engine自身无法保证高可用,但是你可以通过如下两种方式的一种保持其高可用:
- 第一是部署环境比如在yarn-cluster模式下,Engine支持将自己注册到ZK中,而Yarn又能保证driver挂掉后自动找一个其他节点启动,但在yarn-client模式则不行。
- 第二个是,通过MLSQL-Cluster来完成。MLSQL-Cluster 现在实现了多策略的负载均衡,以及多集群的管理。通过负载均衡,也可以保证Engine的高可用,比如后端部署三个Engine,任意down掉两个,都不影响。