场景描述
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任务
在DataTrust首页,单击顶部菜单栏的通用计算。
按照下图指引,进入任务研发页面。
选择TrustDA/MpcSql任务。
步骤二:配置任务参数信息
在创建任务页面,配置参数。
参数 | 描述 |
任务名称 | 请填写任务的名称。 |
运行方式 | 指使用哪一种技术方式实现,目前支持安全多方、联邦学习两种。 |
任务类型 | 任务类型默认是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语句进行安全检查。
|
单击提交,完成任务的创建。
后续步骤
任务创建完成后,您可在任务管理页面对任务执行查看、编辑、运行等操作。