隐语第八课:隐语SCQL的开发实践

本文介绍了如何在Docker环境中安装和配置SCQL以及Secretnote,包括设置服务、启动模式、数据表管理、CCL控制和编写SCQL查询。作者通过实例演示了在多信任环境下使用这些工具进行协作分析的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、Docker安装SCQL

2、Docker安装Secretnote

3、以scql模式启动secretnote

4、为alice和bob添加数据表

5、设置数据列的CCL控制

6、编写代码进行SCQL查询

7、下面分享Slides


首先必须感谢蚂蚁集团及隐语社区带来的学习机会! 

第八课也是由操顺德老师讲述,核心内容是动手玩SCQL!

下面我把通过docker方式的SCQL部署过程记录如下:

1、Docker安装SCQL

       首先将SCQL代码从github上拉取下来,仓库地址:GitHub - secretflow/scql: SCQL (Secure Collaborative Query Language) is a system that allows multiple distrusting parties to run joint analysis without revealing their private data.

git clone https://github.com/secretflow/scql.git

  进入examples/p2p-tutorial文件夹,执行bash setup.sh,然后执行docker compose up拉起容器。

cd examples/p2p-tutorial
bash setup.sh
docker compose up

 SCQL的容器已经成功运行:

2、Docker安装Secretnote

     我是在wsl中进行操作,在ubuntu系统中建立一个文件夹secretnote,然后在其中新建一个文件docker-compose.yml如下

services:

  alice:

    image: 'secretflow/secretnote:unstable-amd64'

    #network_mode: "host"

    platform: linux/amd64

    environment:

      - SELF_PARTY=alice

      - ALL_PARTIES=alice,bob

    ports:

      - 8090:8888

    entrypoint: /root/scripts/start.sh

    volumes:

      - /root/scripts

  bob:

    image: 'secretflow/secretnote:unstable-amd64'

    platform: linux/amd64

    environment:

      - SELF_PARTY=bob

      - ALL_PARTIES=alice,bob

    ports:

      - 8092:8888

    entrypoint: /root/scripts/start.sh

    volumes:

      - /root/scripts

     在该文件夹下拉起容器,执行命令docker compose up即可,secretnote容器已经成功运行。

3、修改secretnote的启动脚本/root/scripts/start.sh,alice和bob都需要修改,alice修改为

#!/usr/bin/env bash

ray start \
  --head \
  --port=6379 \
  --include-dashboard=False \
  --disable-usage-stats \
  --resources="{\"$SELF_PARTY\": 4}"

#secretnote --allow-root --no-browser   这是原来的启动脚本
secretnote --allow-root --no-browser --mode=scql --party=alice --host=http://你自己的ip:8081

bob修改为

#!/usr/bin/env bash

ray start \
  --head \
  --port=6379 \
  --include-dashboard=False \
  --disable-usage-stats \
  --resources="{\"$SELF_PARTY\": 4}"

#secretnote --allow-root --no-browser
secretnote --allow-root --no-browser --mode=scql --party=bob --host=http://你自己的ip:8082

3、以scql模式启动secretnote

      重启容器后secretnote将以sqcl的模式运行容器,此时可以打开网页了。

      alice端如下:

bob端如下:

4、为alice和bob添加数据表

     alice创建一个新的项目,并邀请bob加入,bob加入后,两方就可以开始创建数据表。

同样为bob添加数据表(需要在对应的网页里操作,因为只能添加自己方的数据):

5、设置数据列的CCL控制

分别为alice和bob设置数据列的CCL控制,对自己方的数据都是明文PLAINTEXT,为对方的授权根据需要,比如有比较的就选PLAIN_AFTER_COMPARE等。

比如alice方的CCL设置如下:

bob方的CCL设置如下:

6、编写代码进行SCQL查询

     比如在bob端执行下面的查询代码:

SELECT tb.id
FROM tb
WHERE tb.order_amount >= 100 
AND tb.is_active = 1 
AND tb.id NOT IN (SELECT id FROM ta);

      上面的代码将获取到满足条件order_amount >= 100 和is_active = 1,但是不出现在alice记录id中的bob方的记录id。

       由此则完成了SCQL的实践操作。

7、下面分享Slides

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值