更新时间:2024-05-10 GMT+08:00
分享

批量隐匿查询

隐匿查询,也称隐私信息检索,是指查询方隐藏被查询对象关键词或客户id信息,数据服务方提供匹配的查询结果却无法获知具体对应哪个查询对象。数据不出门且能计算,杜绝数据缓存的可能性。

例如查询方希望查询身份证id为“张三”的人信贷公式数据,发起了一个类似于SELECT salary * 16 + age*10 FROM t WHERE id = ‘张三’的单数据集查询。t表存储在数据提供方计算节点中。查询方不希望有人知道自己查询的是“张三”这个人,也不希望知道查出的这条信贷公式结果具体值。

具体操作步骤如下:

  1. 空间管理员登录TICS控制台。
  2. 作业发起方进入自己所属的计算节点,进入作业管理->隐匿查询->批量隐匿查询作业,单击创建。
  3. 编写完作业之后。单击保存,提交审批。

    图1 编写批量隐匿查询作业

  4. 隐匿查询过滤条件出现多个字段时,需要使用.pir或.PIR标识隐匿查询字段。

    图2 pir或.PIR标识隐匿查询字段

  5. 单击编辑器右侧的“作业配置项”,进行作业配置。

    重试:开关开启后,执行失败的作业会根据配置定时进行重试,仅对开启后的执行作业生效。开关关闭后,关闭前已触发重试的作业不受影响,仅对关闭后的执行作业生效。

    执行参数:用于作业调优。当前可用执行参数介绍如下:

    • job.ins.memory.size:本次作业在各执行节点分配的内存大小,默认200MB。如果作业中间结果过大,需要调高该参数。
    • max.result.file.size:最大存储文件大小,默认10GB。如果最终结果存储超过这个大小,则会执行失败,需要调大该值。
    • tics.task.concurrency:在TICS所属计算节点执行计算时的并行度,默认值为1。当需要提升作业性能时,可以修改该参数,参考配置为CCE集群中规格时建议配置范围为4~8,大规格部署时建议配置范围为8~16,具体根据实际需求和情况调整。
    • user.task.concurrency:在用户所属计算节点计算时的并行度,默认值为1。当需要提升作业性能时,可以修改该参数,参考配置为CCE集群中规格时建议配置范围为4~8,大规格部署时建议配置范围为8~16,具体根据实际需求和情况调整。
    • apsi.num.threads:数据提供方处理查询并发线程数,默认1,取值正整数,并发线程数越大,性能越优。
    • id.byte.length:查询id序列化字节长度,默认20,需要根据实际情况调整。
    • query.fields.byte.length:查询字段序列化字节长度,默认20,需要根据实际情况调整。
    图3 作业配置

  6. 合作方进入自己所属的计算节点,进入审批管理页面,单击审批详情,查看查询方的sql请求的id为“????”,无法获取查询具体查询数据。

    图4 审批详情
    • 仅限单表查询,不支持多表查询。
    • Sql中必须包含where条件。不支持join操作,即使是单方内的join操作。
    • where条件后必须包含隐匿查询字段,隐匿查询字段只能是非敏感唯一标识,且字段数值类型只能是字符串或整数。
    • where条件后出现多个字段时必须使用.pir或.PIR标识隐匿查询字段。
    • where条件后不支持or语句,多个条件必须使用and进行拼接。
    • 隐匿查询字段只能用于where id='xxx'或where id in ('xxx' 'xxx')或where id in (select xx from table)语句。
    • 隐匿查询条件为in+子查询时,子查询中数据集只能是发起方数据集。

分享:

    相关文档

    相关产品