做网站的域名多少钱,网站准备建设的内容,如何使用服务器ip做网站,深圳英文网站开发文章目录 一、SCQL使用集成最佳实践1.1 SCQL使用流程1.2 SCQL部署1.3 SCQL使用示例 二、SCQL工作原理三、使用SecretNote上手体验SCQL 一、SCQL使用集成最佳实践
1.1 SCQL使用流程
SCQL使用#xff1a; SCQL 开放 API 供⽤户使⽤/集成。可以使⽤SCDBClient上⼿体验(类似与My… 文章目录 一、SCQL使用集成最佳实践1.1 SCQL使用流程1.2 SCQL部署1.3 SCQL使用示例 二、SCQL工作原理三、使用SecretNote上手体验SCQL 一、SCQL使用集成最佳实践
1.1 SCQL使用流程
SCQL使用 SCQL 开放 API 供⽤户使⽤/集成。可以使⽤SCDBClient上⼿体验(类似与Mysql Client的命令行工具)也可以基于 SCQL API 开发封装⽩屏产品或集成到业务链路中。 对于SCQL来说所有的请求都是以Query的形式去表达的提供了同步与异步接口
用户异步提交Query再轮询结果同步同步提交Query等待Query结束之后返回结果。
对于时间执行比较短的QueryDDL、DCL及小规模DQL推荐使用SubmitAndGet()接口。对于耗时长规模大的DQL查询推荐使用异步接口。
使用流程 系统部署、项目设置、联合分析。
项目设置
先创建用户与项目给用户授权加入项目用户可以在该项目创建表设置CCL。
1.2 SCQL部署
SCQL部署 实际生产由多个参与方配合完成。
环境准备
机器配置CPU/MEM 最低 8C16G
机构之间的⽹络互通
镜像 secretflow/scql
SCDB(部署在可信第三方使用其DB存储原数据) 启动/home/admin/bin/scdbserver -config/path/to/config.yml
SCQLEngine(部署在数据参与方需要能够访问到用于联合数据分析的数据源) 启动/home/admin/bin/scqlengine --flagfile/path/to/gflags.conf
1.3 SCQL使用示例
SCQL使用示例《SCQL 快速开始》⽂档https://www.secretflow.org.cn/docs/scql/latest/zh-Hans/getting_started/quickstart
SCQL基础概念
Project: 多个参与⽅在协商⼀致后加⼊到同⼀个项⽬中进⾏多⽅安全数据分析
参与方身份认证 参与⽅执⾏ query 时需要进⾏身份认证
数据表管理 管理参与分析的数据表的 schema 信息
权限信息管理 表字段的权限信息特别是 CCL 信息
⽤户在每次执⾏query 的时候均需要提供上述信息上⼿成本较⾼因此提供了SCDB。
SCDB(SCQL as a Database) SCDB 遵循传统DBMS概念将DBMS概念映射到SQCL中。
1、创建项目CREATE DATEBASE xxx 2、SCQL中每个用户隶属于一个参与方目前每个参与方只允许创建一个用户PRATY_CODE哪个参与方。 3、Table物理表在DB里的一个映射。 4、Privilege进行授权。 假设有该场景⾦融机构 Alice 想联合电商平台 Bob 做联合⽤户画像分析Alice 希望统计不同信⽤等级年龄在 20 岁到 30 岁之间且为电商平台 Bob 的活跃⽤户的⼈数以及平均收⼊和平均交易额。 1、创建用户建立用户和机构的绑定关系。
SCDB 内置了⼀个权限受限的 root ⽤户⽅便系统 bootstrap 1、root ⽤户只能做 CREATE database/user 等操作。 2、root ⽤户⽆法修改普通⽤户设置的 CCL⽆法发起查询(DQL)。 3、root ⽤户滥⽤不会导致数据泄露。 Alice 和 Bob 分别创建所属⾃⼰机构的⽤户 1、⽅式⼀若指导root账号密码可直接通过 root 账号创建。 2、⽅式⼆委托可信第三方用 root 账号管理者(持有者)创建。 为什么创建⽤户的时候需要公钥和签名 ⽬的是防⽌伪造身份攻击加入Alice创建用户用私钥签名create user请求将公钥告诉SCDBSCDB会将该公钥信息与Alice关联。此时有恶意用户Mallory冒充Bob但不知道Bob的公私钥只能用伪造的公私钥签名SCDB指导公私钥是成对的但无法识别是否为冒充的。Mallory冒充Bob发起联合查询SCDB将其下发给SCQL Engine并带上参与方的公钥此时比对不匹配便会拒绝执行。
通过如下程序保证伪造身份攻击⽆法导致数据泄露
前提条件每个参与⽅在部署SCQLEngine 节点时需要⽣成(或提供)公私钥并和合作⽅交换公钥配置到引擎侧的 authorized_profile ⽂件中SCDB 在处理 create user 请求时会校验签名确保请求者有对应的私钥SCDB 在处理请求者的 DQL 时会把请求者和查询涉及参与⽅的公钥信息⼀起下发给 SCQLEngine。SCQLEngine会先校验⾃⼰和合作⽅的公钥如果不匹配就拒绝执⾏。 2、创建项目将参与合作方添加到项目。 3、创建表将参与方导入联合分析的数据表。 4、设置CCL 5、发起联合查询DQL
二、SCQL工作原理
SCDB将用户的Query翻译成执行图下发给SQCL Engine执行时SCQL Engine如何完成执行与SPU有什么关系 SCQL x SPU SCQL Engine集成SPU是将SPU当作lib用当作CAPI。 SPU前端为Tensorflow、JAX、PyTorch可以将Python的机器学习应用程序变成一个安全多方计算的AI程序去执行SQCL直接用pphloC的API接入的并且使用ColocatedIO模式(数据拥有方同时作为数据计算方)。 以Aggregation w/group by看SCQL如何实现 在明文下的基于排序的思路方案 1、实现一张数据表k和vk为GROUP BY kv为要聚合的类 2、按照k进行排序将相同的k排序在一起进行分组相邻在一起方便后期计算 3、再进行分组聚合b[i]为1表锁位置i的元素是该分组的最后一个元素再对v进行聚合 4、只保留b[i]为1的结果最后进行过滤得到结果。 在密文下SCQL的实现方案有4种实现会考虑数据状态、数据分布和CLL设置选择最佳执行协议。Private groupby明文计算性能最高适用范围最低要求group by的k与聚合类都属于同一个数据参与方随后还有HESum groupby、Vertical groupby、Oblivious groupby性能越来越差而适用范围越来越广。 以HESum GroupBy实现举例SCQL的实现k在Alice方v在Bob方序号为一一对应的。 1、Alice将数据提前分组每个组哈希到一个gid上此时Bob将v加密后得到密文将密文发送给Alice 2、Alice将属于同一个分组的加起来如第0组E(3)E(10)E(13) 3、Alice进行过滤每组只保留一个元素同时将得到的密文发送给BobBob进行解密得到结果。
三、使用SecretNote上手体验SCQL
使用SecretNote体验SCQL以UI 界面的方式上手体验 P2P 模式的 SCQL流程与之前一致。 1、部署系统需要先部署SCQL P2P节点部署再安装启动SecretNoteSecretNote需要指导SCQL P2P节点端口的地址。 2、项目设置ALICE创建项目邀请BOB加入两方导入各自数据表进行CCL授权。 3、联合分析最终进行联合分析。 安装部署 1、部署 SCQL P2P节点
单机 P2P 部署模式https://www.secretflow.org.cn/zh-CN/docs/scql/0.5.0b2/intro/p2p-tutorial
多节点 P2P 部署模式https://www.secretflow.org.cn/zh-CN/docs/scql/0.5.0b2/topics/deployment/how-to-deploy-p2p-cluster
2、部署启动 SecretNote 使用示例