创建安全联合分析任务

更新时间:

场景描述

A有一张数据表datatrust_a/host_train_adult_10用于记录人群属性(记录年龄、工作等信息),id作为主键,有一张数据表datatrust_a/sj_mpcsql_out,用于统计结果输出;B有一张数据表datatrust_b/slave_train_adult_10用于记录人群属性(记录国籍、性别等信息),id作为主键。

需求是A想联合两边的表进行统计分析,查询【年龄大于27】,按【年龄、国籍】进行分组,统计【工作等级】的数量。可通过创建TrustDA/MpcSql任务实现。

使用说明

隐私计算空间中每个SQL查询,需创建MpcSql分析任务进行查询。

步骤一:新建TrustDA/MpcSql任务

  1. 在DataTrust首页,单击顶部菜单栏的通用计算

  2. 按照下图指引,进入任务研发页面。

image.png
  1. 选择TrustDA/MpcSql任务。

步骤二:配置任务参数信息

  1. 创建任务页面,配置参数。

image.png

参数

描述

任务名称

请填写任务的名称。

运行方式

指使用哪一种技术方式实现,目前支持安全多方联邦学习两种。

任务类型

任务类型默认是TrustDA/MpcSql,不支持修改。

调度规则

支持日常不调度按日调度按周调度按月调度四种,配置后会按配置的周期定时跑该任务。

  • 日常不调度:配置后不运行任务。

  • 按日调度:每天运行任务。

  • 按周调度:每周运行任务。

  • 按月调度:每月运行任务。

使用缓存

若数据量超过百万级且需要多次SQL分析,建议使用缓存以提升SQL的执行效率。开启使用缓存需选择缓存任务,如何创建缓存任务,请参见创建TrustDA/PIRPreCache任务

SQL脚本编写

  • 在代码编辑器中编写SQL脚本。支持join(inner join/full join/left join/right join)、group by 、order by、聚合(sum/count)等常用算子。

  • 仅支持使用INSERT OVERWRITE TABLE语句将输出结果写在了输出表中,SQL示例如下:示例一: INSERT OVERWRITE TABLE alice.sj_mpcsql_out PARTITION (job_name = 'no_group_where_between_test') -- 注:只支持”INSERT OVERWRITE“ SELECT t1.id as col2_string, t1.income as col3_string, t1.age as col1_int FROM alice.host_train_adult_100 t1 -- 注:[使用方].[输入表] JOIN -- 注:只支持”JOIN“、”INNER JOIN“ bob.slave_train_adult_100 t2 -- 注:[加持方].[输入表] ON t1.id = t2.id 示例二: INSERT OVERWRITE TABLE alice.sj_mpcsql_out PARTITION (job_name = 'groupby_oneside_distinct_twoside_test') SELECT t1.education_num as col1_int, COUNT(t1.workclass) as col2_string, COUNT(DISTINCT(t2.sex)) as col3_string FROM alice.host_train_adult_100 t1 JOIN bob.slave_train_adult_100 t2 ON t1.id = t2.id GROUP BY t1.education_num

  • 您可以点击SQL检查对当前SQL语句进行安全检查。

  1. 单击提交,完成任务的创建。

后续步骤

任务创建完成后,您可在任务管理页面对任务执行查看、编辑、运行等操作。