如何在 Kuscia 上运行 SCQL 联合分析任务
打开链接即可点亮社区 Star,照亮技术的前进之路。
Github 地址:https://github.com/secretflow/kuscia
本教程将以 KusciaAPI 创建本地数据源作为示例,介绍如何在 Kuscia 上运行 SCQL 联合分析任务。
准备节点
本示例在点对点组网模式下完成。在中心化组网模式下,证书的配置会有所不同。
{#cert-and-token}
获取 KusciaAPI 证书和 Token
在下面准备数据步骤中需要使用到 KusciaAPI,如果 KusciaAPI 启用了 MTLS 协议,则需要提前准备好 MTLS 证书和 Token。协议参考这里。
点对点组网模式
证书的配置参考配置授权
这里以 Alice 节点为例,接口需要的证书文件在 ${USER}-kuscia-autonomy-alice 节点的 /home/kuscia/var/certs/ 目录下:
中心化组网模式
证书文件在 ${USER}-kuscia-master 节点的 /home/kuscia/var/certs/ 目录下:
准备数据
您可以使用本文示例的测试数据文件,或者使用您自己的数据文件。
在 Kuscia 中,在节点容器的 /home/kuscia/var/storage 目录存放内置测试数据文件,下面 Alice 和 Bob 节点分别使用的是 scql-alice.csv 和 scql-bob.csv,您可以在容器中查看这两个数据文件。
准备测试数据
Alice 准备测试数据
这里以 Docker 部署模式为例,登录到 alice 节点中
创建 DomainDataSource
下面 datasource_id 名称以 scql-demo-local-datasource 为例:
:::{tip}K8S RunK 模式部署 Kuscia 时,此处需要使用 OSS 数据源,并将 /home/kuscia/var/storage/data/scql-alice.csv 示例数据放入 OSS 中。:::3. 创建 DomainData
下面 domaindata_id 名称以 scql-alice-table 为例:
Bob 准备测试数据
这里以 Docker 部署模式为例,登录到 Bob 节点中
创建 DomainDataSource
下面 datasource_id 名称以 scql-demo-local-datasource 为例:
:::{tip}K8S RunK 模式部署 Kuscia 时,此处需要使用 OSS 数据源,并将 /home/kuscia/var/storage/data/scql-bob.csv 示例数据放入 OSS 中。:::3. 创建 DomainData
下面 domaindata_id 名称以 scql-bob-table 为例:
部署 SCQL
Alice 部署 SCQL
登陆到 alice 节点容器中
如果是中心化组网模式,则需要登录到 master 节点容器中。
获取 SCQL 应用的镜像模版 AppImage
从 SCQL 官方文档中,获取 AppImage 具体内容,并将其内容保存到 scql-image.yaml 文件中。 具体模版内容,可参考 SCQL AppImage。
注意:
如果
secretflow/scql仓库访问网速较慢,可以替换为secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/scql。请删除
#--datasource_router=kusciadatamesh代码行前面的 # 符号,以启用 Datamesh 本地数据源配置。在
engineConf字段加上--enable_restricted_read_path=false限制 csv 文件的读取路径。K8S RunK 模式部署 Kuscia 时,需要使用 MySQL 存储 Broker 元数据。修改
storage字段的type为 MySQL 和conn_str对应的数据库连接字符串。如果 AppImage 配置有改动可以重启 Kuscia 或重新创建 Broker 使配置生效。示例命令:
kubectl delete KusciaDeployment scql -n cross-domainkubectl apply -f broker-deploy.yaml。
创建 SCQL 应用的镜像模版 AppImage
部署 Broker
Bob 部署 SCQL
登陆到 Bob 节点容器中
如果是中心化组网模式,则需要登录到 master 节点容器中。2. ```bashdocker exec -it ${USER}-kuscia-master bash
部署 Broker
查看 broker 是否部署成功
下面以 Alice 节点为例,Bob 节点类似
使用 SCQL 进行联合分析
下面仅以流程步骤作为示例展示,更多接口参数请参考 SCQL API。
创建项目并邀请参与方加入
Alice 创建项目,并邀请 Bob 加入
登录到 Alice 节点容器中
创建项目
下面项目名称以 "demo" 为例:
查看项目
邀请 Bob 加入到 "demo" 项目中
查看邀请状态
Bob 接受邀请
登录到 Bob 节点容器中
Bob 接受 Alice 的入项邀请
创建数据表
Alice 创建数据表
登录到 Alice 节点容器中
创建数据表
下面 table_name 以 ta 为例,ref_table 参数的值为创建 DomainData时的
domaindata_id
Bob 创建数据表
登录到 Bob 节点容器中
创建数据表
下面 table_name 以 ta 为例,ref_table 参数的值为创建 DomainData时的
domaindata_id
查看数据表
下面以 Alice 为例,Bob 节点类似
删除数据表
若想删除创建的数据表时,可以参考下面命令。以 Alice 节点为例,Bob 节点类似。
数据表授权
Alice 的数据表授权
将 ta 数据表授权给 Alice
将 ta 表授权给 Bob 节点
Bob 的数据表授权
将 tb 表授权给 Alice 节点
将 tb 表授权给 Bob 节点
查看数据表授权
下面以 Alice 为例,Bob 节点类似
撤销数据表授权
若想撤销数据表授权,那么可以参考下面命令。以 Alice 节点为例,Bob 节点类似。
进行联合分析
同步查询
下面以 Alice 节点查询为例 Bob 节点类似。
返回的成功结果如下:
异步查询
下面以 Alice 节点为例,Bob 节点类似。
提交 query
获取结果
参考
常用命令
查看 broker kd 状态:
查看 broker deployment 状态
查看 broker 应用状态
查看 broker configmap
查看 appImage
删除 broker
如何查看 SCQL 应用容器日志
在 Kuscia 中,可以登陆到节点容器内查看 SCQL 应用容器的日志。具体方法如下。
登陆到节点容器中
下面以 Alice 节点为例:
查看日志
在目录
/home/kuscia/var/stdout/pods下可以看到对应 SCQL Broker 和 Engine 应用容器的目录。后续进入到相应目录下,即可查看应用的日志。







评论