基于联邦学习的数据查询方法、装置、设备及存储介质与流程

文档序号:32868186发布日期:2023-01-07 02:35阅读:73来源:国知局
基于联邦学习的数据查询方法、装置、设备及存储介质与流程

1.本发明涉及数据处理技术领域,尤其涉及一种基于联邦学习的数据查询方法、装置、设备及存储介质。


背景技术:

2.隐私计算(privacy computing)是一种由两个以上的终端进行联合计算的技术和系统,终端在不泄露各自数据的前提下通过协作对他们的数据进行联合机器学习和联合分析。因此,需要提供一种是在保护用户隐私并且保证数据安全的前提下,进行跨数据源联合数据分析的技术方案。
3.现有技术方案要实现跨数据源访问通常采用以下两种方法:一是各终端分别向对方申请数据访问权限,该方案存在数据泄露的风险;二是采用封闭域的做法,域内数据可随意查询,出域时需要人工审核,该方案需要大量的数据运维和人工审核成本。


技术实现要素:

4.鉴于以上内容,有必要提供一种基于联邦学习的数据查询方法,用于实现在保证数据安全的前提下实现跨数据源查询数据。
5.为实现上述目的,本发明提供一种基于联邦学习的数据查询方法,应用于第一服务器,所述第一服务器与第二服务器及参与联邦学习的多个终端通信连接,所述方法包括:
6.接收第一终端对第二终端发起的第一查询请求,根据所述第一查询请求生成执行任务,根据所述执行任务生成所述第一终端对应的第一查询语句和所述第二终端对应的第二查询语句,向所述第一终端返回所述第一查询语句,向所述第二终端发送所述第二查询语句;
7.接收所述第一终端发送的第二查询请求和所述第二终端发送的第三查询请求,根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点;
8.接收多个工作节点返回的多个查询结果,对所述多个查询结果进行汇总生成结果集,将所述结果集进行加密后发送至所述第二服务器,通过所述第二服务器对结果集进行计算得到数据表,将所述数据表返回至所述第一终端和所述第二终端;
9.接收所述第二终端发送的查询数据和数据同步请求,将所述查询数据根据所述数据同步请求发送至所述第一终端。
10.可选地,所述根据所述第一查询请求生成执行任务,包括:
11.解析所述第一查询请求的查询语句并生成语法树,遍历所述语法树生成逻辑执行任务;
12.基于预设优化逻辑对所述逻辑执行任务进行优化生成执行任务。
13.可选地,所述根据所述执行任务生成第一终端的第一查询语句和第二终端的第二
查询语句,包括:
14.从所述执行任务中获取所述第一查询请求的表信息和查询条件;
15.根据所述表信息和所述查询条件为所述第一终端构建第一查询语句;
16.根据所述表信息和所述查询条件为所述第二终端构建第二查询语句。
17.可选地,所述第一终端在接收到所述第一查询语句后,根据所述第一查询语句生成第二查询请求并发送至所述第一服务器;所述第二终端在接收到所述第二查询语句后,根据所述第二查询语句生成第三查询请求并发送至所述第一服务器。
18.可选地,所述根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点,包括:
19.获取参与联邦学习的各个终端的工作节点信息,所述工作节点信息包括资源情况以及数据量大小;
20.将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容根据所述工作节点信息拆分成多个任务;
21.根据所述执行任务将所述多个任务分配到各个终端的工作节点。
22.可选地,所述结果集包括第一数据集和第二数据集,所述第一数据集包含所述第二查询请求的查询结果与所述第一终端的唯一标识,所述第二数据集包含所述第三查询请求的查询结果与所述第二终端的唯一标识。
23.可选地,所述通过所述第二服务器对结果集进行计算得到数据表,包括:
24.所述第二服务器遍历所述结果集中的第一数据集和第二数据集,计算所述第一数据集和所述第二数据集的交集,根据所述交集生成数据表。
25.此外,为实现上述目的,本发明还提供一种基于联邦学习的数据查询装置,所述装置包括:
26.查询处理模块,用于接收所述第一终端对所述第二终端发起的第一查询请求,根据所述第一查询请求生成执行任务,根据所述执行任务生成所述第一终端对应的第一查询语句和所述第二终端对应的第二查询语句,向所述第一终端返回所述第一查询语句,向所述第二终端发送所述第二查询语句;
27.任务调度模块,用于接收所述第一终端发送的第二查询请求和所述第二终端发送的第三查询请求,根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点;
28.数据汇总模块,用于接收多个工作节点返回的多个查询结果,对所述多个查询结果进行汇总生成结果集,将所述结果集进行加密后发送至所述第二服务器,通过所述第二服务器对结果集进行计算得到数据表,将所述数据表返回至所述第一终端和所述第二终端;
29.数据同步模块,用于接收所述第二终端发送的查询数据和数据同步请求,将所述查询数据根据所述数据同步请求发送至所述第一终端。
30.此外,为实现上述目的,本发明还提供一种电子设备,所述电子设备包括:
31.存储器,存储至少一个计算机程序;及
32.处理器,执行所述存储器中存储的程序以实现上述所述的基于联邦学习的数据查询方法。
33.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的基于联邦学习的数据查询方法。
34.本发明通过第一服务器将跨数据源的数据查询请求转换成执行任务以对查询内容进行分配调度实现分布式联合数据分析,并结合第二服务器提供的硬件级强安全隔离和通用计算环境对数据分析结果进行汇总计算,在保证数据安全的前提下实现跨数据源查询数据,且参与联邦学习的终端只需要用查询语句进行查询,降低了用户适用门槛,提高了跨数据源查询数据的安全性和便捷性。
附图说明
35.图1为本发明基于联邦学习的数据查询方法一实施例的流程图;
36.图2为本发明电子设备一实施例的示意图;
37.图3为本发明基于联邦学习的数据查询装置一实施例的示意图。
38.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
39.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
41.如图1所示,为本发明基于联邦学习的数据查询方法一实施例的流程图,该基于联邦学习的数据查询方法应用于第一服务器,包括步骤s1-s4。
42.s1、接收第一终端对第二终端发起的第一查询请求,根据所述第一查询请求生成执行任务,根据所述执行任务生成所述第一终端对应的第一查询语句和所述第二终端对应的第二查询语句,向所述第一终端返回所述第一查询语句,向所述第二终端发送所述第二查询语句。
43.在一实施例中,所述第一查询请求为sql查询语句,所述第一服务器为协调服务器。
44.具体地,第一服务器与第二服务器及参与联邦学习的多个终端通信连接,且第二服务器不与参与联邦学习的多个终端进行连接;第一终端通过第一查询请求向第一服务器请求查询第二终端的数据。
45.在一实施例中,所述根据所述第一查询请求生成执行任务,包括:解析所述第一查询请求的查询语句并生成语法树,遍历所述语法树生成逻辑执行任务;基于预设优化逻辑对所述逻辑执行任务进行优化生成执行任务。
46.具体地,第一服务器通过对查询语句进行词法分析、语法分析和语义分析生成语法树,从根结点开始遍历语法树生成逻辑执行任务,并基于包括规则优化逻辑(rbo)和成本优化逻辑(cbo)的预设优化逻辑对所述逻辑执行任务进行优化。
47.在一实施例中,所述根据所述执行任务生成第一终端的第一查询语句和第二终端的第二查询语句,包括:从所述执行任务中获取所述第一查询请求的表信息和查询条件;根据所述表信息和所述查询条件为第一终端构建第一查询语句;根据所述表信息和所述查询条件为第二终端构建第二查询语句。
48.通常情况下,第一终端与第二终端的本地数据并不相同,例如:第一终端存储有用户信息表,第二终端存储有用户电商购买记录表,但第一终端的用户与第二终端的用户并不完全相同。当第一终端要向第二终端查询用户的订单总金额时,直接让第一终端根据查询请求访问第二终端会将第二终端的用户名单泄漏给第一终端,而将第一终端请求查询的用户名单发送给第二终端由第二终端进行本地查询则会将将第一终端的用户名单泄漏给第二终端。本实施例中,第一服务器根据第一查询请求的表信息和查询条件构建不泄露第一终端信息和第二终端信息的查询语句,以获取第一终端所要查询的信息对应的用户名单,以及第二终端包含该信息的用户名单。
49.s2、接收所述第一终端发送的第二查询请求和所述第二终端发送的第三查询请求,根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点。
50.在一实施例中,所述第一终端在接收到所述第一查询语句后,根据所述第一查询语句生成第二查询请求并发送至所述第一服务器;所述第二终端在接收到所述第二查询语句后,根据所述第二查询语句生成第三查询请求并发送至所述第一服务器。
51.在一实施例中,所述根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点,包括:获取参与联邦学习的各个终端的工作节点信息,所述工作节点信息包括资源情况以及数据量大小;将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容根据所述工作节点信息拆分成多个任务;根据所述执行任务将所述多个任务分配到各个终端的工作节点。
52.在一实施例中,各个终端的工作节点根据被分配的任务进行数据查询得到查询结果。
53.s3、接收多个工作节点返回的多个查询结果,对所述多个查询结果进行汇总生成结果集,将所述结果集进行加密后发送至所述第二服务器,通过所述第二服务器对结果集进行计算得到数据表,将所述数据表返回至所述第一终端和所述第二终端。
54.具体地,所述结果集包括第一数据集和第二数据集,所述第一数据集包含所述第二查询请求的查询结果与所述第一终端的唯一标识,所述第二数据集包含所述第三查询请求的查询结果与所述第二终端的唯一标识。
55.在一实施例中,所述第二服务器为tee(可信执行环境)服务器。
56.在一实施例中,将所述结果集进行加密后发送至所述第二服务器包括:所述第一服务器与所述第二服务器基于diffie-hellman密钥交换协议生成对称密钥;所述第一服务器通过所述对称密钥对所述结果集进行加密后发送至所述第二服务器。
57.在一实施例中,所述通过所述第二服务器对结果集进行计算得到数据表,包括:所述第二服务器遍历所述结果集中的第一数据集和第二数据集,计算所述第一数据集和所述第二数据集的交集,根据所述交集生成数据表。
58.例如:第一终端存储有用户信息表,第二终端存储有用户电商购买记录表,第一终端向第二终端查询用户的订单总金额;第一服务器获取第一终端所要查询的信息对应的用户名单作为第一数据集,获取第二终端包含该信息的用户名单作为第二数据集,然后通过第二服务器遍历计算第一数据集和第二数据集的交集得到第一终端与第二终端的用户名单交集,再将该交集作为数据表返回第一终端和第二终端,该数据表仅包含第一终端和第二终端均有存储的用户名单,不会造成第一终端和第二终端的用户名单泄漏。
59.s4、接收所述第二终端发送的查询数据和数据同步请求,将所述查询数据根据所述数据同步请求发送至所述第一终端。
60.在一实施例中,第二终端在接收到所述数据表后,将所述数据表存入缓存,并根据缓存中的数据表从数据库中查找对应的数据生成查询数据,根据所述查询数据生成数据同步请求。
61.在一实施例中,第一终端在接收到所述数据表后,将所述数据表存入缓存,并在接收到第二终端通过第一服务器同步的查询数据后,通过所述数据表对查询数据进行验证。
62.由上述实施例可知,本发明提出的基于联邦学习的数据查询方法,通过第一服务器将跨数据源的数据查询请求转换成执行任务以对查询内容进行分配调度实现分布式联合数据分析,并结合第二服务器提供的硬件级强安全隔离和通用计算环境对数据分析结果进行汇总计算,在保证数据安全的前提下实现跨数据源查询数据,且参与联邦学习的终端只需要用查询语句进行查询,降低了用户适用门槛,提高了跨数据源查询数据的安全性和便捷性。
63.如图2所示,为本发明电子设备一实施例的示意图。电子设备1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子设备1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
64.在本实施例中,电子设备1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有基于联邦学习的数据查询程序10,所述基于联邦学习的数据查询程序10可被所述处理器12执行。图3仅示出了具有组件11-13以及基于联邦学习的数据查询程序10的电子设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
65.其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子设备1的运行提供缓存;可读存储介质可以是易失性的,也可以是非易失性的。具体的,可读存储介质
可为如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等的存储介质。在一些实施例中,可读存储介质可以是电子设备1的内部存储单元,例如该电子设备1的硬盘;在另一些实施例中,该存储介质也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。本实施例中,存储器11的可读存储介质主要包括存储程序区和存储数据区,其中,存储程序区通常用于存储安装于电子设备1的操作系统和各类应用软件,例如存储本发明一实施例中的基于联邦学习的数据查询程序10的代码等;存储数据区可存储根据区块链节点的使用所创建的数据等,例如已经输出或者将要输出的各类数据。
66.处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子设备1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行基于联邦学习的数据查询程序10等。
67.网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子设备1与客户端(图中未画出)之间建立通信连接。
68.可选的,所述电子设备1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
69.在本发明的一实施例中,所述基于联邦学习的数据查询程序10被所述处理器12执行时实现如下步骤s1-s4。
70.s1、接收第一终端对第二终端发起的第一查询请求,根据所述第一查询请求生成执行任务,根据所述执行任务生成所述第一终端对应的第一查询语句和所述第二终端对应的第二查询语句,向所述第一终端返回所述第一查询语句,向所述第二终端发送所述第二查询语句;
71.s2、接收所述第一终端发送的第二查询请求和所述第二终端发送的第三查询请求,根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点;
72.s3、接收多个工作节点返回的多个查询结果,对所述多个查询结果进行汇总生成结果集,将所述结果集进行加密后发送至所述第二服务器,通过所述第二服务器对结果集进行计算得到数据表,将所述数据表返回至所述第一终端和所述第二终端;
73.s4、接收所述第二终端发送的查询数据和数据同步请求,将所述查询数据根据所述数据同步请求发送至所述第一终端。
74.上述步骤s1-s4所实现的具体操作步骤与本发明基于联邦学习的数据查询方法一
实施例大体相同,在此不再赘述。
75.在其他实施例中,基于联邦学习的数据查询程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述基于联邦学习的数据查询程序10在电子设备1中的执行过程。
76.如图3所示,为本发明基于联邦学习的数据查询装置一实施例的示意图。
77.在本发明的第一实施例中,基于联邦学习的数据查询装置10,包括查询处理模块110、任务调度模块120、数据汇总模块130及数据同步模块140,示例性地:
78.所述查询处理模块110,用于接收第一终端对第二终端发起的第一查询请求,根据所述第一查询请求生成执行任务,根据所述执行任务生成所述第一终端对应的第一查询语句和所述第二终端对应的第二查询语句,向所述第一终端返回所述第一查询语句,向所述第二终端发送所述第二查询语句;
79.所述任务调度模块120,用于接收所述第一终端发送的第二查询请求和所述第二终端发送的第三查询请求,根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点;
80.所述数据汇总模块130,用于接收多个工作节点返回的多个查询结果,对所述多个查询结果进行汇总生成结果集,将所述结果集进行加密后发送至所述第二服务器,通过所述第二服务器对结果集进行计算得到数据表,将所述数据表返回至所述第一终端和所述第二终端;
81.所述数据同步模块140,用于接收所述第二终端发送的查询数据和数据同步请求,将所述查询数据根据所述数据同步请求发送至所述第一终端。
82.上述查询处理模块110、任务调度模块120、数据汇总模块130及数据同步模块140被执行时所实现的具体操作步骤与上述实施例大体相同,在此不再赘述。
83.此外,本发明实施例还提出一种计算机可读存储介质,可读存储介质可以是易失性的,也可以是非易失性的。具体的,计算机可读存储介质可以是硬盘、多媒体卡、sd卡、闪存卡、smc、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中存储有基于联邦学习的数据查询程序10。
84.所述基于联邦学习的数据查询程序10被处理器执行时实现如下操作:
85.a1、接收第一终端对第二终端发起的第一查询请求,根据所述第一查询请求生成执行任务,根据所述执行任务生成所述第一终端对应的第一查询语句和所述第二终端对应的第二查询语句,向所述第一终端返回所述第一查询语句,向所述第二终端发送所述第二查询语句;
86.a2、接收所述第一终端发送的第二查询请求和所述第二终端发送的第三查询请求,根据所述执行任务对所述第二查询请求和所述第三查询请求进行调度,将所述第二查询请求对应的查询内容和所述第三查询请求对应的查询内容分配到参与联邦学习的各个终端的工作节点;
87.a3、接收多个工作节点返回的多个查询结果,对所述多个查询结果进行汇总生成
结果集,将所述结果集进行加密后发送至所述第二服务器,通过所述第二服务器对结果集进行计算得到数据表,将所述数据表返回至所述第一终端和所述第二终端;
88.a4、接收所述第二终端发送的查询数据和数据同步请求,将所述查询数据根据所述数据同步请求发送至所述第一终端。
89.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
90.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
91.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
92.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1