TICS多方计算场景应用之积分落户

举报
breakDawn 发表于 2020/11/22 11:29:40 2020/11/22
【摘要】 TICS, 可信智能计算

由于人口增长和城市发展需要, 各政府对于积分落户的要求和规则越来越多。

以某市的积分落户政策为例,涉及学历、年龄、纳税、社保等多项个人数据, 其中纳税、社保、身份信息都是个人隐私信息,  并且其数据可能来自不同的提供方,数据格式也不同。  

那么如何让各提供方提供数据计算落户积分时,不泄露个人隐私呢? 这就是多方计算这个概念的应用场景。

下面给出这个场景的具体使用例子,其中的截图会以EI可信智能计算服务Tics的页面举例:

场景需求

某政府希望根据入户积分规则, 计算出当前市内积分排名和分布的情况, 该积分的计算需要教育局、人社局、税务局等一起提供相关数据, 计算出积分并排名。  

同时为了简化该用例,只计算 学历积分、年龄积分和社保积分, 并对实际规则做了调整和简化。


要求: 只统计出各积分内的人数,但是不暴露具体的隐私信息比如身份证、缴纳记录等。

注意该用例只是作为举例和应用场景说明,并非真实的生产环境用例!!!

该例子中的规则:

1、学历

1. 本科及以上: 积分100

2. 非全日制本科(自考函授网教):积分80;

3. 全日制大专(35岁以上):积分70;

4. 非全日制专科(自考函授网教):积分60;

(中专、高中、初中等学历不加分)

 2、社保

每满1年可积7分

3、年龄

●18~35岁:加5分  

● 35~40岁:不加分不减分  

● 40~45岁:每加1岁减2分。  


数据提供方(或者叫参与方)

该场景共2个参与方:

●教育局, 其在联盟中的别名为JiaoYuJu

●人社局, 其在联盟中的别名为RenSheJu

各方提供数据集

数据集里的隐私规则含义如下:

配置数据参数时,若“连接器”为MRS、JDBC类型时,可对字段信息进行隐私策略的配置:

  • 可用:勾选后,该字段允许被联盟各参与方使用。

  • 可见:勾选后,该字段内容将在分析结果中明文呈现,否则不呈现。如果结果中涉及对不可见字段的聚合,则同样会不可见。

  • 脱敏:勾选后,该字段内容将在分析结果中脱敏呈现,否则明文呈现。默认不勾选,当前的脱敏方式默认为哈希。

§ 1.学历信息表

根据学历的计分规则,需要教育局提供各学生的学历数据集 XUE_LI。

字段名称 字段描述 隐私规则 数据格式
SFZID 身份证号码,以确认唯一性 不可见 18位数字
XL 学历 可见 研究生、本科、大专、非全日制本科、全日制大专、非全日制大专
ZSID 学历证书id 不可见 数字/th>
YEAR 毕业年份 脱敏 4位数字

样例数据:

§ 2.社保缴纳表

根据社保规则,需要人社局提供每年社保缴纳表 SHE_BAO。

字段名称 字段描述 隐私规则 数据格式
SFZID 身份证号码,以确认唯一性 不可见 18位数字
JSRQ 缴纳日期,这里理解为满整年的年份,避免浮点计算 可见 YYYY格式,每年最多一次
JSJE 缴纳金额 脱敏 数字

样例数据:


§ 3.公民身份信息表

根据年龄计分规则,需要人社局提供公民身份信息表 SHEN_FEN_XIN_XI

字段名称 字段描述 隐私规则 数据格式
SFZID 身份证号码,以确认唯一性 不可见 18位数字
XM 姓名 可见 中文
NL 年龄 可见 数字
HJ 户籍 可见 龙岗户籍/非深户籍/深圳其他区户籍
CSRQ 出生日期 不可见 yyyy-mm-dd

样例数据:


联合分析sql设计

首先根据需要计算的部分,编写子sql,再将其聚合

根据计分规则, 需要根据学历表里的学历, 使用case when计算出每个人的分数, 该子sql如下:

Select
      SFZID,
      case
        when XL== '博士'
          or XL== '研究生'
          or XL== '本科' then 100
        when XL== '非全日制本科' then 80
        when XL== '全日制大专' then 70
        when XL== '非全日制专科' then 60
        else 0
      end as xl_grade
    from
      JiaoYuJu.XUE_LI

需要根据社保缴纳记录,统计社保部分的分数,每交一年加7分。这部分的sql如下:

Select
      SFZID,
      count(SFZID) *7 as sb_grade
    from
      RenSheJu.SHE_BAO
    group by
      SFZID

需要根据年龄, 按照不同年龄计算分数,并得到姓名和分数

Select
      SFZID,
      XM,
      case
        when NL <= 35 then 5
        when NL >= 40
        and NL <= 45 then (40 - NL) * 2
        else 0
      end as nl_grade
    from
      RenSheJu.SHEN_FEN_XIN_XI

然后需要把这个3个表进行合并,并得到最终相加后的分数以及对应人名,并进行排序。

因此实际运行作业时的sql如下:

select
  t.final_grade,
  count(t.final_grade)
from
  (
    Select
      shenfen.grade + xueli.grade + shebao.grade as final_grade
    from
      (
        Select
          SFZID,
          case
            when XL = '博士'
            or XL = '研究生'
            or XL = '本科' then 100
            when XL = '非全日制本科' then 80
            when XL = '全日制大专' then 70
            when XL = '非全日制专科' then 60
            else 0
          end as grade
        from
          JiaoYuJu.XUE_LI
      ) xueli,
      (
        Select
          SFZID,
          count(SFZID) * 7 as grade
        from
          RenSheJu.SHE_BAO
        group by
          SFZID
      ) shebao,
      (
        Select
          SFZID,
          XM,
          case
            when NL <= 35 then 5
            when NL >= 40
            and NL <= 45 then (40 - NL) * 2
            else 0
          end as grade
        from
          RenSheJu.SHEN_FEN_XIN_XI
      ) shenfen
    where
      shenfen.SFZID = xueli.SFZID
      and xueli.SFZID = shebao.SFZID
  ) t
group by
  t.final_grade
order by t.final_grade desc


作业创建和运行

创建联邦数据分析作业

  1. 联盟成员登录TICS控制台。

  2. 在左侧导航树上依次选择作业管理 > 联邦数据分析,在页面上方选择作业创建的联盟后,单击“创建”


    图1 创建联邦数据分析作业


  3. 在弹出的对话框中,输入作业“名称”“描述”信息后单击“确定”


    图2 新建作业

  4. 在作业列表中查找创建的作业,单击“开发”,进入作业开发页面编写SQL语句。SQL语句开发完成后单击“保存”




  5. 5.点击右侧的“作业配置项”,可以设置结果直接输出到控制台还是存储到Agent。


    • 图4 设置结果输出位置


    6.单击“保存并执行作业”,等待执行完成后在下方“执行结果”页签查看结果。


    • 图5 执行结果


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。