更新时间:2024-11-21 GMT+08:00
分享

计算节点API应用示例

本节通过curl 方式调用TICS API,端到端执行分析型作业为例,介绍使用TICS API的基本流程。
  1. 获取用户token

    获取用户的token,因为在后续的请求中需要将token放到请求消息头中作为认证。

  2. 获取可信节点详情

    获取调用后续接口参数信息,例如可信节点id。

  3. 创建连接器

    创建数据连接器,以MySQL类型为例。

  4. 创建数据集

    创建数据集,以MySQL类型为例。

  5. 发布数据集

    发布数据集。

  6. 创建分析型作业

    创建多方安全计算作业。

  7. 保存分析型作业

    保存多方安全计算作业。

  8. 执行作业

    执行多方安全计算作业。

  9. 查询作业结果

    查询分析作业执行结果。保存分析型作业

准备数据

在调用API之前(分析类型),您需要准备如下数据。

表1 准备数据

数据项

名称

说明

样例

TICS可信节点信息

项目ID

TICS所属的项目ID。

1551c7f6c808414d8e9f3c514a170f2e

可信节点ip

可信节点页面访问IP和端口号,可参考计算节点所在虚机的IP:Port获取。

10.1.1.1

可信节点端口

31000

用户名

TICS可信节点用户名。

admin

密码

用户密码。

123456

MySQL数据库

IP地址

本地的MySQL数据库的IP地址,且该地址允许可信节点所在虚机通过此IP访问。

1xx.1.1.1

端口

MySQL数据库的端口。

3306

驱动文件

对应数据库版本的驱动文件。

mysql-driver.jar

用户名

访问MySQL数据库的用户,该用户拥有MySQL数据库的读、写和删除权限。

username

密码

访问MySQL数据库的用户密码。

DB_password

获取用户token

调用获取tokenAPI获取token。

  1. 调用其他API前,需要获取token,并设置成环境变量。
    curl -k -v POST 'https://10.1.1.1:31000/v1/agent/user/token'
    -H 'Content-Type: application/json'
    -d '{"user_name":"admin","password":"123456"}'

    响应体中“token”的值即为Token:

    "token":OEVPUldpcDY1NENWUDdUOWowdXXXXX...
  2. 使用如下命令将token设置为环境变量,方便后续事项。
    export X-Auth-Token = OEVPUldpcDY1NENWUDdUOWowdXXXXX..

获取可信节点详情

调用获取可信节点详情API获取更多节点信息:
curl -k -v GET 'https://10.1.1.1:31000/v1/agents'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdXXXXX' 
-H 'Content-Type: application/json'
-H 'X-Language: zh-cn'

获取到可信节点agent_id为edc8357011b0449ca985daabd531083c。

创建连接器

调用新建或更新连接器API创建MySQL连接,连接名称为mysql-con。这里假设MySQL数据库信息如下:
  • IP地址为1x.1.1.1。
  • 端口为3306
  • 登录用户为username
  • 密码为DB_password。
  • 对应的驱动版本为mysql-connector-java-8.0.20.jar

如果返回状态码为201,则说明创建命令执行成功。

curl -k -v POST 'https://10.1.1.1:31000/v1/agents/connectors'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX'
-H 'Content-Type: application/json'
-H 'X-Language: zh-cn'
--form 'data_connector="{\"connector_type\":\"MYSQL\",\"name\":\"mysql-con\",\"ext_info\":\"{\\\"user_name\\\":\\\"username\\\",\\\"password\\\":\\\"DB_password\\\",\\\"jdbc_url\\\":\\\"jdbc:mysql://1xx.1.1.1:3306\\\",\\\"driver_name\\\":\\\"mysql-connector-java-8.0.20.jar\\\",\\\"properties\\\":\\\"\\\"}\",\"auth_type\":\"PWD\"}"'
--form 'file=@"/D:/mysql-connector-java-8.0.20.jar"'

返回体中包含连接器id a8ad73d567e348f1ace5f5b9d499b683,保存备用。

创建数据集

连接创建成功后,调用创建或更新数据集API创建数据集,数据集样例如下:
  • 连接器选择上一步创建的mysql-con,数据集名称:dataset_test。
  • 创建的数据集对应的mysql数据库名称为demo1,表名称为mysql_tbl,字段名为credit_no、ent_name。

如果返回状态码为201,则说明创建命令执行成功。

curl -k -v POST 'https://10.1.1.1:31000/v1/agents/datasets'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX'
-H 'Content-Type: application/json'
-H 'X-Language: zh-cn'
-d '{
"name":"dataset_test",
"connector_id":"a8ad73d567e348f1ace5f5b9d499b683",
"connector_name":"mysql-con",
"data_type":"MYSQL",
"description":"this is a test ",
"ag_dataset_table":{
"db_schema":"demo1",
"table_name":"dim_enterprise"
    },
"columns":[
        {
"column_name":"credit_no",
"data_type":"STRING",
"comments":"企业号(企业社会信用代码)",
"sql_col_privacy_type":"SENSITIVE",
"privacy_policy":"NONE"
        },
        {
"column_name":"ent_name",
"data_type":"STRING",
"comments":"企业名称",
"sql_col_privacy_type":"NON_SENSITIVE",
"privacy_policy":"NONE"
        }
    ]
}'

发布数据集

调用发布数据集到空间API发布已创建的数据集

curl -k -v POST 'https://10.1.1.1:31000/v1/agents/edc8357011b0449ca985daabd531083c/datasets/35684e38484d41a0a3b8f46148a56456/publish'
-H 'Content-Type: application/json'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX'
-H 'X-Language: zh-cn'

创建分析型作业

调用新建联邦分析作业API创建分析型作业。
curl -k -v POST 'https://10.1.1.1:31000/v1/098593b07680d2a32f62c004a482da10/leagues/edf4254ecfd64aabbf896a522693ab05/sql-jobs'
-H 'Content-Type: application/json'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX'
-H 'X-Language: zh-cn'
-d '{
"name":"sql-test",
"description":"",
"agent_id":"edc8357011b0449ca985daabd531083c"
}'

保存分析型作业

调用保存联邦分析作业API创建具体作业内容

作业sql内容为查询刚发布的数据集记录。

curl -k -v PUT 'https://10.1.1.1:31000/v1/098593b07680d2a32f62c004a482da10/leagues/edf4254ecfd64aabbf896a522693ab05/sql-jobs/8aa10b98d4eb47a4852f201a8137794f'
-H 'Content-Type: application/json'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX'
-H 'X-Language: zh-cn'
-d '{
"description":"",
"ext":"{}",
"name":"sql-test",
"sql_text":"select * from LEAGUE_CREATOR.DATASET_TEST"
}'

执行作业

调用执行联邦分析作业API执行已保存的分析作业

curl -k -v POST 'https://10.1.1.1:31000/v1/098593b07680d2a32f62c004a482da10/leagues/edf4254ecfd64aabbf896a522693ab05/sql-jobs/8aa10b98d4eb47a4852f201a8137794f/execute' 
-H 'Content-Type: application/json' 
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX' 
-H 'X-Language: zh-cn'

查询作业结果

调用查询执行结果API查询作业结果

curl -k -v GET 'https://10.1.1.1:31000/v1/agents/edc8357011b0449ca985daabd531083c/job-instances/63d183a021744fd3b1cbf5e2e52d9de6/sample'
-H 'Content-Type: application/json'
-H 'X-Auth-Token: OEVPUldpcDY1NENWUDdUOWowdXXXXX'
-H 'X-Language: zh-cn'

至此,使用开放api接口运行一个简单的分析作业流程结束,更多接口请参见接口详情。

相关文档