secretflow / kuscia

Kuscia(Kubernetes-based Secure Collaborative InfrA) is a K8s-based privacy-preserving computing task orchestration framework.
https://www.secretflow.org.cn/docs/kuscia/latest/zh-Hans
Apache License 2.0
73 stars 55 forks source link

Kuscia 上运行 SCQL 联合分析任务,创建 MySQL 数据库数据源,运行报错 #428

Closed moon-177 closed 1 month ago

moon-177 commented 2 months ago

Issue Type

Api Usage

Search for existing issues similar to yours

No

Kuscia Version

Kuscia 0.11.0b0

Link to Relevant Documentation

No response

Question Details

请问在 Kuscia 上运行 SCQL 联合分析任务时,使用 MySQL 数据库数据源会返回以下报错,是什么原因导致的?
其中 Kuscia 为 0.11.0b0 , SCQL 为 0.9.0b1 ,数据库为 mysql-community-8.0.32 ,在数据库里分别创建了 scql_alice 表与 scql_bob 表。数据库连接正常。
准备测试数据环节,alice和bob都是创建的 MySQL 数据库数据源,其余步骤没有变化均按照文档完成。 
https://www.secretflow.org.cn/zh-CN/docs/kuscia/v0.11.0b0/tutorial/run_scql_on_kuscia_cn#kuscia-scql

1、创建 DomainDataSource
bash-5.2# export CTR_CERTS_ROOT=/home/kuscia/var/certs
curl -k -X POST 'https://localhost:8082/api/v1/domaindatasource/create' \
 --header "Token: $(cat ${CTR_CERTS_ROOT}/token)" \
 --header 'Content-Type: application/json' \
 --cert ${CTR_CERTS_ROOT}/kusciaapi-server.crt \
 --key ${CTR_CERTS_ROOT}/kusciaapi-server.key \
 --cacert ${CTR_CERTS_ROOT}/ca.crt \
 -d '{
  "domain_id": "alice",
  "datasource_id":"mysql-datasource",
  "type":"mysql",
  "name": "DataSourceMysql",
  "info": {
      "database": {
          "endpoint": "ip:port",
          "user": "***",
          "password": "***",
          "database":"sample_data"
      }
  },
  "access_directly": true
}'
{"status":{"code":0, "message":"success", "details":[]}, "data":{"datasource_id":"mysql-datasource"}}

2、创建 DomainDataSource
bash-5.2# export CTR_CERTS_ROOT=/home/kuscia/var/certs
curl -k -X POST 'https://localhost:8082/api/v1/domaindata/create' \
 --header "Token: $(cat ${CTR_CERTS_ROOT}/token)" \
 --header 'Content-Type: application/json' \
 --cert ${CTR_CERTS_ROOT}/kusciaapi-server.crt \
 --key ${CTR_CERTS_ROOT}/kusciaapi-server.key \
 --cacert ${CTR_CERTS_ROOT}/ca.crt \
 -d '{
  "domain_id": "alice",
  "domaindata_id": "scql-alice-table",
  "datasource_id": "mysql-datasource",
  "name": "alice001",
  "type": "table",
  "relative_uri": "scql-alice.csv",
  "columns": [
    {
      "name": "ID",
      "type": "str"
    },
    {
      "name": "credit_rank",
      "type": "int"
    },
    {
      "name": "income",
      "type": "int"
    },
    {
      "name": "age",
      "type": "int"
    }
  ]
}'
{"status":{"code":0, "message":"success", "details":[]}, "data":{"domaindata_id":"scql-alice-table"}}

……其他过程一样,且执行成功……

n、进行联合分析
bash-5.2# curl -X POST http://127.0.0.1:80/intra/query \
--header "host: scql-broker-intra.alice.svc" \
--header "kuscia-source: alice" \
-H "Content-Type: application/json" \
-d '{
    "project_id": "demo177",
    "query":"SELECT ta.credit_rank, COUNT(*) as cnt, AVG(ta.income) as avg_income, AVG(tb.order_amount) as avg_amount FROM ta INNER JOIN tb ON ta.ID = tb.ID WHERE ta.age >= 20 AND ta.age <= 30 AND tb.is_active=1 GROUP BY ta.credit_rank;"
}'

{"status":{"code":320,"message":"RunExecutionPlan run jobs(1829f38b-71c0-11ef-a139-0aab3169f188) failed, catch std::exception=[engine/datasource/kuscia_datamesh_router.cc:192] unsupported datasource type: mysql","details":[]},"result":null}
yushiqie commented 2 months ago

目前 scql on kuscia 暂不支持 mysql 数据源

moon-177 commented 2 months ago

目前 scql on kuscia 暂不支持 mysql 数据源

目前 scql on kuscia 都支持什么数据源呢?

yushiqie commented 2 months ago

localfs

moon-177 commented 2 months ago

localfs

现在scql on kuscia 只支持 localfs 吗?mysql 或 oss 数据源类型有没有开发计划?

tongke6 commented 2 months ago

oss 也是支持的。对于 SCQL 来说,如果使用 kuscia 的 datamesh,就只支持 csv 数据源,也就是 localfs 和 oss 都支持。

如果不使用 datamesh,那么scql 数据源支持是没有限制的。

使用 datamesh 支持 mysql 数据源暂时还没有开发计划。

moon-177 commented 2 months ago

oss 也是支持的。对于 SCQL 来说,如果使用 kuscia 的 datamesh,就只支持 csv 数据源,也就是 localfs 和 oss 都支持。

如果不使用 datamesh,那么scql 数据源支持是没有限制的。

使用 datamesh 支持 mysql 数据源暂时还没有开发计划。

好的谢谢~

github-actions[bot] commented 1 month ago

Stale issue message. Please comment to remove stale tag. Otherwise this issue will be closed soon.