一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据聚合的方法、相关装置、设备以及存储介质与流程

2022-06-01 09:21:25 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种数据聚合的方法、相关装置、设备以及存储介质。


背景技术:

2.在关系型数据库查询功能中,可支持分组运算和去重运算等类型的查询。这类查询能够根据数据库中指定的字段,对需要汇总分析的字段进行分组之后,再采用聚合函数进行会汇总运算。这个过程在联机分析处理(online analytical processing,olap)的查询中出现频率较高。
3.由于不同机构或部门独立存储数据,在进行联合数据分析时,传统olap需要将这些分散的数据汇合在一起进行分析。目前,在进行分组聚合时,可采用专门的存储集群和计算集群,保证计算集群上提交的敏感数据写入到封闭域的存储集群中。
4.发明人发现现有方案中至少存在如下问题,虽然将敏感数据存储到封闭域能够保护数据隐私,但是将各个参与方的敏感数据都集中存储到封闭域,会导致维护数据一致性的成本较高。此外,将从封闭区域导出数据时还需要触发人工审核,从而增加人工审核成本。


技术实现要素:

5.本技术实施例提供了一种数据聚合的方法、相关装置、设备以及存储介质。本技术由各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
6.有鉴于此,本技术一方面提供一种数据聚合的方法,应用于第一设备,第一设备存储第一数据表,包括:
7.获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
8.根据第一分组聚合语句,对第一数据表进行分组处理,得到k个分组结果,其中,k个分组结果中的每个分组结果包括标识信息,k个分组结果用于生成t个分组结果,k为大于或等于1的整数,t为大于或等于k的整数;
9.向第二设备发送t个分组结果,以使第二设备根据t个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果,其中,第二数据表存储于第二设备;
10.接收第二设备发送的t个聚合结果;
11.根据t个聚合结果和t个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
12.本技术另一方面提供一种数据聚合装置,数据聚合装置应用于第一设备,第一设备存储第一数据表,数据聚合装置包括:
13.获取模块,用于获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
14.处理模块,用于根据第一分组聚合语句,对第一数据表进行分组处理,得到k个分组结果,其中,k个分组结果中的每个分组结果包括标识信息,k个分组结果用于生成t个分组结果,k为大于或等于1的整数,t为大于或等于k的整数;
15.发送模块,用于向第二设备发送t个分组结果,以使第二设备根据t个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果,其中,第二数据表存储于第二设备;
16.接收模块,用于接收第二设备发送的t个聚合结果;
17.生成模块,用于根据t个聚合结果和t个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
18.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
19.获取模块,具体用于获取原始分组聚合语句,其中,原始分组聚合语句包括第一值字段和第二值字段,第一值字段属于第一数据表,第二值字段属于第二数据表;
20.根据原始分组聚合语句生成第一分组聚合语句,其中,第一分组聚合语句包括第二值字段,且,第二值字段包含于第一预设字段,原始分组聚合语句还用于第二设备生成第二分组聚合语句,第二分组聚合语句包括第一值字段,且,第一值字段包含于第二预设字段。
21.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
22.接收模块,还用于接收第二设备发送的p个分组结果,其中,p个分组结果为第二设备根据第二分组聚合语句,对第二数据表进行分组处理后得到的,p个分组结果中的每个分组结果包括标识信息,p为大于或等于1的整数;
23.处理模块,还用于根据p个分组结果中每个分组结果所包括的标识信息,对第一数据表进行分组聚合处理,得到p个聚合结果;
24.发送模块,还用于向第二设备发送p个聚合结果,以使第二设备根据p个聚合结果和p个分组结果,生成第二目标数据表,其中,第二目标数据表包括第一数据表和第二数据表针对第二预设字段的聚合结果;
25.接收模块,还用于接收第二设备发送的第二目标数据表;
26.生成模块,还用于根据t个聚合结果和t个分组结果,生成第一目标数据表之后,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
27.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
28.获取模块,还用于获取第一原始数据表与第二原始数据表之间的标识交集,其中,第一原始数据表存储于第一设备,第二原始数据表存储于第二设备;
29.获取模块,还用于根据标识交集,从第一原始数据表中获取第一数据表,其中,第一数据表的第一标识字段对应于标识交集,标识交集还用于从第二原始数据表中获取第二数据表,第二数据表的第二标识字段对应于标识交集。
30.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
31.处理模块,具体用于从第一分组聚合语句中获取第一分组字段,其中,第一分组字段对应于至少一类组别信息,第一分组字段包含于第一预设字段;
32.根据第一分组字段所包括的至少一类组别信息,生成k个分组结果,其中,k个分组结果中的同一个分组结果具有相同的组别信息。
33.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
34.发送模块,具体用于向第二设备发送k个分组结果,以使第二设备根据k个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到k个聚合结果。
35.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,k个分组结果包括第一分组结果;
36.发送模块,具体用于将第一分组结果划分为若干个分组结果,其中,若干个分组结果中的各个分组结果所包括的标识信息不重合;
37.向第二设备发送各个分组结果,以使第二设备根据各个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果。
38.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
39.接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和聚合数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
40.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
41.接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括原始组别信息和目标数值,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,原始组别信息对应于第二数据表的第二分组字段。
42.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
43.接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
44.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
45.处理模块,还用于若第一聚合结果与第二聚合结果包括相同的目标组别信息,则基于同态加密算法,对所述第一聚合结果和所述第二聚合结果中的目标数值进行加和,得到加密数值。
46.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
47.生成模块,具体用于根据t个聚合结果,获取r个加密数值,其中,r为大于或等于1,且小于或等于t的整数;
48.向第二设备发送r个加密数值,以使第二设备采用私钥对r个加密数值进行解密,得到r个解密数值,其中,私钥与公钥为第二设备生成的;
49.接收第二设备发送的r个解密数值;
50.根据r个解密数值和t个分组结果,生成第一目标数据表。
51.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
52.接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和第一目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到
的,第一目标数值为第一原始数值与第一随机数值之和,目标组别信息对应于第二数据表的第二分组字段,第一原始数值对应于第二数据表的第二值字段;
53.接收第二设备发送的第二聚合结果,其中,第二聚合结果包括目标组别信息和第二目标数值,第二目标组别信息为第二设备对第二原始组别信息进行加密后得到的,第二目标数值为第二原始数值与第二随机数值之和,第二目标组别信息对应于第二数据表的第二分组字段,第二原始数值对应于第二数据表的第二值字段。
54.在一种可能的设计中,在本技术实施例的另一方面的另一种实现方式中,
55.生成模块,具体用于基于不经意传输协议,获取来源于第二设备的随机数总和,其中,随机数总和为第1个至第n个随机数值之和,n为大于1的整数;
56.从第一聚合结果中获取第一目标数值,并从第二聚合结果中获取第二目标数值;
57.根据第一目标数值、第二目标数值、随机数总和和历史随机总数,确定目标原始数值,其中,历史随机总数为第1个至第m个随机数值之和,m为大于或等于1,且小于n的整数;
58.根据目标原始数值、目标组别信息和t个分组结果,生成第一目标数据表。
59.本技术另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
60.其中,存储器用于存储程序;
61.处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
62.总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
63.本技术的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
64.本技术的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
65.从以上技术方案可以看出,本技术实施例具有以下优点:
66.本技术实施例中,提供了一种数据聚合的方法,首先,第一设备获取第一分组聚合语句,第一设备存储第一数据表。然后,第一设备根据第一分组聚合语句,对第一数据表进行分组处理,得到分组结果。接下来,由第一设备向第二设备发送这些分组结果,以使第二设备根据每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到聚合结果。于是,第二设备向第一设备发送这些聚合结果,由第一设备根据聚合结果和分组结果,生成包括第一数据表和第二数据表针对第一预设字段的聚合结果。通过上述方式,将数据表存储在设备本地,基于此,设备可根据分组聚合语句对本地的数据表进行处理,设备之间可以互传数据表的处理结果,从而实现数据的分组聚合。由于各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
附图说明
67.图1为本技术实施例中数据聚合系统的一个架构示意图;
68.图2为本技术实施例中分布式系统应用于区块链系统的一个可选结构示意图;
69.图3为本技术实施例中区块结构的一个可选示意图;
70.图4为本技术实施例中数据聚合方法的一个流程示意图;
71.图5为本技术实施例中对第一数据表进行分组处理的一个示意图;
72.图6为本技术实施例中对第二数据表进行分组聚合处理的一个示意图;
73.图7为本技术实施例中对聚合结果以及分组结果进行合并的一个示意图;
74.图8为本技术实施例中实现数据聚合的一个示意图;
75.图9为本技术实施例中实现数据聚合的另一个示意图;
76.图10为本技术实施例中组合得到总数据表的一个示意图;
77.图11为本技术实施例中第一设备与第二设备进行信息交互的一个示意图;
78.图12为本技术实施例中第一设备与第二设备进行信息交互的另一个示意图;
79.图13为本技术实施例中第一设备与第二设备进行信息交互的另一个示意图;
80.图14为本技术实施例中第二设备反馈解密结果的一个示意图;
81.图15为本技术实施例中基于不经意传输实现数据分享的一个示意图;
82.图16为本技术实施例中数据聚合装置的一个示意图;
83.图17为本技术实施例中服务器的一个结构示意图;
84.图18为本技术实施例中终端的一个结构示意图。
具体实施方式
85.本技术实施例提供了一种数据聚合的方法、相关装置、设备以及存储介质。本技术由各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
86.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
87.在进行数据分析时,分组聚合是一个常用的场景。利用分组聚合后得到的数据,可执行相应的处理。下面将结合具体场景进行介绍。
88.一、数据计算场景;
89.不同部门各自存储数据表。示例性地,以游戏部门和广告部门为例,假设游戏部门存储有游戏数据表,游戏数据表包括游戏名称和游戏标识(identity document,id)。广告部门存储有广告数据表,广告数据表包括游戏id、广告投放量以及广告投放日期。如果游戏部门想要联合计算各个游戏的总广告投放量,那么使用单方字段按照游戏名称这个数据列进行分组即可。如果游戏部门想要联合计算各个游戏在各个日期的总广告投放量,那么使用多方字段按照游戏名称和广告投放日期进行分组。
90.二、大数据场景;
91.不同机构各自存储数据表。示例性地,以大数据研究机构和培训机构为例,假设大
数据研究机构存储有数据表a,数据表a包括科目名称和科目id。培训机构存储有数据表b,数据表b包括科目id、培训人数以及开课日期。如果大数据研究机构想要联合计算各个科目的总培训人数,那么使用单方字段按照科目名称这个数据列进行分组即可。如果大数据研究机构想要联合计算各个科目在各个开课日期的总培训人数,那么使用多方字段按照科目名称和开课日期进行分组。由此,大数据研究机构可分析不同科目在不同开课时间参与培训的人数变化,从而指导后续的机构规划课程。
92.可以理解的是,大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
93.三、机器学习场景;
94.不同企业各自存储数据表。示例性地,以企业a和企业b为例,假设企业a存储有数据表a,数据表a包括用户性别和用户id。企业b存储有数据表b,数据表b包括用户id、消费数量以及注册日期。如果企业a想要联合计算各个用户性别的总消费数量,那么使用单方字段按照用户性别这个数据列进行分组即可。如果企业a想要联合计算各个用户性别在各个注册日期的总消费数量,那么使用多方字段按照用户性别和注册日期进行分组。由此,企业a可根据获取到信息执行机器学习,训练用于预测消费数量的模型。
95.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。ml是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能(artificial intelligence,ai)的各个领域。ml和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
96.由于不同机构或部门独立存储数据,因此,在进行联合数据分析时,为了在不泄露隐私数据的情况下高效地进行数据分析,本技术提出了一种数据聚合方法,该方法应用于图1所示的数据聚合系统,如图所示,数据聚合系统包括至少两个设备,图中示出的第一设备和第二设备可以是终端。示例性地,第一设备和第二设备也可以是服务器。示例性地,第一设备为终端,第二设备为服务器。示例性地,第二设备为终端,第一设备为服务器。本技术涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。服务器和终端的数量也不做限制。本技术提供的方案可以由终端独立完成,也可以由服务器独立完成,还可以由终端与服务器配合完成,对此,本技术并不做具体限定。
97.以图1所示的数据聚合系统为例,第一设备存储第一数据表,第二设备存储第二数
据表。第一数据表和第二数据表均包含三列数据,分别为值(value)字段、分组(col)字段和标识(id)字段。典型的分组聚合语句包含使用单方字段进行分组聚合和使用多方字段进行分组聚合两种情况,
98.示例性地,使用单方字段的分组聚合语句可以为:
99.select sum(t1.value),sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col
100.示例性地,使用多方字段的分组聚合语句可以为:
101.select sum(t1.value),sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
102.可见,使用单方字段和多方字段的情况,首先,都需要根据两个数据表的id数据列进行数据表的连接(join)运算。基于此,使用单方字段的情况下,仅采用第一数据表的col数据列对join之后的表进行分组,在每个分组中,对第一数据表的value数据列和第二数据表的value数据列进行聚合。使用多方字段的情况下,同时使用第一数据表的col数据列和第二数据表的col数据列对join之后的表进行分组,再在每个分组中,对第一数据表的value数据列和第二数据表的value数据列进行聚合。
103.需要说明的是,本技术提供的数据聚合方法主要用于实现使用多方字段进行分组聚合场景下的隐私计算。
104.为了避免目标数据表被篡改,在生成目标数据表之后,还可以将目标数据表中的数据存储至区块链系统中,区块链系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、终端)通过网络通信的形式连接形成的分布式系统。
105.以分布式系统为区块链系统为例,参见图2,图2为本技术实施例中分布式系统应用于区块链系统的一个可选结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、终端)和客户端形成,节点之间形成组成的点对点(peer to peer,p2p)网络,p2p协议是一个运行在传输控制协议(transmission control protocol,tcp)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
106.参见图2示出的区块链系统中各节点的功能,涉及的功能包括:
107.1)路由,节点具有的基本功能,用于支持节点之间的通信。
108.节点除具有路由功能外,还可以具有以下功能:
109.2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
110.3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
111.参见图3,图3为本技术实施例中区块结构的一个可选示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。区块中还可以包括有区块生成时的时间戳等信息。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含
了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
112.鉴于本技术涉及到一些与专业领域相关的术语,为了便于理解,下面将进行解释。
113.(1)分组聚合:在结构化查询语言(structured query language,sql)语句中,一个“select-from-group by”语句被称为一个分组聚合语句。
114.(2)多方字段:在分组聚合中,利用字段进行数据表的分组操作,如果字段由多方数据列构成,那么称这样的分组聚合是使用多方字段进行的分组聚合。
115.(3)用户自定义聚合函数(user defined aggregate function,udaf):以单个数据列的多个数据行作为输入,以一个聚合值作为输出,本技术涉及到的聚合函数包含但不仅限于求和(sum)、计数(count)、最大值(max)、最小值(min)和平均值(avg)。
116.(4)隐私集合求交(private set intersection,psi):是指参与双方在不泄露任何额外信息的情况下,求得双方输入集合的交集。这里的额外信息指交集之外的所有信息。
117.(5)不经意传输(oblivious transfer,ot):是指一种安全数据传输协议。参与方a持有一系列消息,参与方b能够从中选取自己想要的某一条消息。在这个过程中,参与方a不知道参与方b选取了哪一条消息,参与方b也不知道参与方a持有的除b自己获取的消息之外的消息内容。
118.(6)公钥加密算法:是一种密码算法,主要包含三个组成部分,即,密钥生成算法(gen),加密算法(enc),解密算法(dec)。其中,密钥生成算法接收一个安全参数k,输出一组公私钥对(pk,sk),公开公钥(pk),保存私钥(sk)。加密算法接收一个明文消息(m)和公钥,输出密文。后续将密文写为[m]
pk
,用于详细表示用于加密的消息和密钥。解密算法接收一个密文消息[m]
pk
和私钥,输出明文。
[0119]
(7)联合数据分析:联合多方的数据表进行数据分析的一种方式。
[0120]
(8)安全的随机数发生器:一个能够产生高安全性的随机数生成算法,本技术选择密码学哈希(hash)函数或者随机数生成算法。
[0121]
结合上述介绍,下面将以第一设备的角度,对本技术中数据聚合的方法进行介绍,第一设备存储第一数据表,请参阅图4,本技术实施例中数据聚合方法的一个实施例包括:
[0122]
210、第一设备获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
[0123]
在一个或多个实施例中,第一设备获取第一分组聚合语句,第一分组聚合语句包括第一预设字段,基于第一预设字段实现对数据表的分组聚合处理。
[0124]
具体地,第一分组聚合语句中udaf所涉及的数据列是一方的。示例性地,第一分组聚合语句可以为:
[0125]
select sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0126]
其中,t1表示第一数据表,t2表示第二数据表。sum()表示求和函数。求和所涉及的数据列是第二数据表中的“t2.value”。t2.value表示第二数据表中的第二值字段。t1.id表示第一数据表的第一标识字段。t2.id表示第二数据表的第二标识字段。t1.col表示第一数据表的第一分组字段。t2.col表示第二数据表的第二分组字段。
[0127]
以上述第一分组聚合语句为例,即,第一预设字段包括“t2.value”、“t1.col”和“t2.col”。由此可知,需要对第一数据表中的“t1.col”进行分组,并且对第二数据表中的“t2.col”进行分组,对第二数据表中的“t2.value”进行聚合。
[0128]
220、第一设备根据第一分组聚合语句,对第一数据表进行分组处理,得到k个分组结果,其中,k个分组结果中的每个分组结果包括标识信息,k个分组结果用于生成t个分组结果,k为大于或等于1的整数,t为大于或等于k的整数;
[0129]
在一个或多个实施例中,第一设备根据第一分组聚合语句中第一预设字段所包括的第一分组字段,对第一数据表进行分组处理,由此,得到k个分组结果,且,每个分组结果包括至少一个标识信息(即,id)。第一分组字段为第一数据表中的分组字段,第一标识字段为第一数据表中的标识字段。
[0130]
具体地,为了便于理解,请参阅图5,图5为本技术实施例中对第一数据表进行分组处理的一个示意图,如图所示,假设第一数据表包括第一分组字段(即,t1.col)和第一标识字段(即,t1.id)。基于此,对第一数据表中的t1.col进行分组,得到两个分组结果。一个分组结果包括t1.col为“a”的4个标识信息(即,id=1,id=3,id=4,id=6),另一个分组结果包括t1.col为“b”的3个标识信息(即,id=2,id=5,id=7)。
[0131]
第一设备可根据k个分组结果生成t个分组结果,t为大于或等于k的整数。可以理解的是,一种情况下,t=k,此时,得到的k个分组结果无需进行拆分。另一种情况下,t>k,此时,可对k个分组结果中的至少一个分组结果进行拆分,因此,得到多于k个的分组结果。
[0132]
230、第一设备向第二设备发送t个分组结果,以使第二设备根据t个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果,其中,第二数据表存储于第二设备;
[0133]
在一个或多个实施例中,第一设备向第二设备发送t个分组结果。由此,第二设备可根据t个分组结果中每个分组结果所包括的标识信息,对存储在本地的第二数据表进行分组聚合处理,得到t个聚合结果。
[0134]
具体地,为了便于理解,请参阅图6,图6为本技术实施例中对第二数据表进行分组聚合处理的一个示意图,如图所示,以某个分组结果包括第一分组字段(即,t1.col)为“a”的4个id(即,id=1,id=3,id=4,id=6)为例,第一设备向第二设备发送这4个id,第二设备通过id检索第二数据表中的数据行,并将检索到的数据行按照第二分组字段(即,t2.col)进行分组,得到三个分组结果。一个分组结果包括第二分组字段(即,t2.col)为“d”的2个id(即,id=3,id=4),另一个分组结果包括第二分组字段(即,t2.col)为“c”的1个id(即,id=1),还有一个分组结果包括第二分组字段(即,t2.col)为“e”的1个id(即,id=6)。
[0135]
在每一个分组中,对第二数据表中的第二值字段(即,t2.value)进行聚合。以求和作为聚合方式,由此,得到一个聚合结果。在该聚合结果中包括聚合字段(即,t2.sum)以及对应的第二分组字段(即,t2.col),例如,t2.sum为“40”,对应的t2.col为“d”。t2.sum为“40”,对应的t2.col为“c”。t2.sum为“60”,对应的t2.col为“e”。
[0136]
240、第一设备接收第二设备发送的t个聚合结果;
[0137]
在一个或多个实施例中,第二设备针对t个分组结果中的每个分组结果,分别进行分组聚合操作,从而得到t个聚合结果。第二设备将t个聚合结果发送至第一设备。
[0138]
250、第一设备根据t个聚合结果和t个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
[0139]
在一个或多个实施例中,第一设备根据t个聚合结果以及对应的t个分组结果,对
数据进行合并,生成第一目标数据表。
[0140]
具体地,为了便于理解,请参阅图7,图7为本技术实施例中对聚合结果以及分组结果进行合并的一个示意图,如图所示,假设第一设备的一个分组结果包括第一分组字段(即,t1.col)为“a”的4个id(即,id=1,id=3,id=4,id=6),该分组结果对应的聚合结果包括t2.sum为“40”,对应的t2.col为“d”,t2.sum为“40”,对应的t2.col为“c”,t2.sum为“60”,对应的t2.col为“e”。对分组结果以及对应的聚合结果进行合并之后,生成包括第一数据表中第一分组字段(即,t1.col)、第二数据表中第二分组字段(即,t2.col)以及第二数据表中聚合字段(即,t2.sum)的第一目标数据表。
[0141]
基于此,以第一分组聚合语句为“select sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col”作为示例,请参阅图8,图8为本技术实施例中实现数据聚合的一个示意图,如图所示,第一设备根据第一数据表中的“t1.col”对“t1.id”进行分组,对每个分组,将分组中的id发送给第二设备。第二设备通过id检索第二数据表中的数据行,并将检索得到的数据行按照第二数据表中的“t2.col”进行分组。在每一个分组中,对第二数据表中的“t2.value”进行聚合,将聚合结果发送至第一设备。由第一设备合并分组结果及其对应的聚合结果,得到第一目标数据表。
[0142]
本技术实施例中,提供了一种数据聚合的方法。通过上述方式,将数据表存储在设备本地,基于此,设备可根据分组聚合语句对本地的数据表进行处理,设备之间可以互传数据表的处理结果,从而实现数据的分组聚合。由于各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
[0143]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备获取第一分组聚合语句,具体可以包括:
[0144]
第一设备获取原始分组聚合语句,其中,原始分组聚合语句包括第一值字段和第二值字段,第一值字段属于第一数据表,第二值字段属于第二数据表;
[0145]
第一设备根据原始分组聚合语句生成第一分组聚合语句,其中,第一分组聚合语句包括第二值字段,且,第二值字段包含于第一预设字段,原始分组聚合语句还用于第二设备生成第二分组聚合语句,第二分组聚合语句包括第一值字段,且,第一值字段包含于第二预设字段。
[0146]
在一个或多个实施例中,介绍了一种将多方数据列切分为单方数据列的方式。由前述实施例可知,第一设备和第二设备在获取原始分组聚合语句之后,可分别对其进行拆分,由此,第一设备根据原始分组聚合语句生成第一分组聚合语句,第二设备根据原始分组聚合语句生成第二分组聚合语句。
[0147]
具体地,假设原始分组聚合语句为:
[0148]
select sum(t1.value),sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0149]
其中,t1表示第一数据表,t2表示第二数据表。sum()表示求和函数。求和所涉及的数据列是第一数据表中的“value”和第二数据表中的“value”。t1.value表示第一数据表中的value字段(即,第一值字段)。t2.value表示第二数据表中的value字段(即,第二值字段)。t1.id表示第一数据表的id字段。t2.id表示第一数据表的id字段。t1.col表示第一数
据表的col字段。t2.col表示第二数据表的col字段。
[0150]
基于此,将原始分组聚合语句切分为两个使用多方字段进行单方数据列聚合的第一分组聚合语句和第二分组聚合语句。
[0151]
第一分组聚合语句为:
[0152]
select sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0153]
以上述第一分组聚合语句为例,第一预设字段包括“t2.value”、“t1.col”和“t2.col”。由此可知,需要对第一数据表中的“t1.col”进行分组,并且对第二数据表中的“t2.col
””
进行分组,对第二数据表中的“t2.value”进行聚合。
[0154]
第二分组聚合语句为:
[0155]
select sum(t1.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0156]
以上述第二分组聚合语句为例,第二预设字段包括“t1.value”、“t1.col”和“t2.col”。由此可知,需要对第二数据表中的“col”进行分组,并且对第一数据表中的“col”进行分组,对第一数据表中的“value”进行聚合。
[0157]
其次,本技术实施例中,提供了一种将多方数据列切分为单方数据列的方式。通过上述方式,考虑到在联合分组的情况下,直接对多方数据列进行聚合的操作较为复杂,因此,可拆分对单方数据列进行聚合,从而降低操作的复杂度。
[0158]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,还可以包括:
[0159]
第一设备接收第二设备发送的p个分组结果,其中,p个分组结果为第二设备根据第二分组聚合语句,对第二数据表进行分组处理后得到的,p个分组结果中的每个分组结果包括标识信息,p为大于或等于1的整数;
[0160]
第一设备根据p个分组结果中每个分组结果所包括的标识信息,对第一数据表进行分组聚合处理,得到p个聚合结果;
[0161]
第一设备向第二设备发送p个聚合结果,以使第二设备根据p个聚合结果和p个分组结果,生成第二目标数据表,其中,第二目标数据表包括第一数据表和第二数据表针对第二预设字段的聚合结果;
[0162]
第一设备接收第二设备发送的第二目标数据表;
[0163]
第一设备根据t个聚合结果和t个分组结果,生成第一目标数据表之后,还可以包括:
[0164]
第一设备对第一目标数据表和第二目标数据表进行组合,得到总数据表。
[0165]
在一个或多个实施例中,介绍了一种基于第二设备反馈的数据表进行数据整合的方式。由前述实施例可知,第一设备根据原始分组聚合语句生成第一分组聚合语句,第二设备根据原始分组聚合语句生成第二分组聚合语句。
[0166]
具体地,假设原始分组聚合语句为:
[0167]
select sum(t1.value),sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0168]
示例性地,经过拆分后,得到的第一分组聚合语句为:
[0169]
select sum(t2.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0170]
为了便于理解,请再次参阅图8,第一设备根据第一数据表中的“t1.col”对“t1.id”进行分组,对每个分组,将分组中的id发送给第二设备。第二设备通过id检索第二数据表中的数据行,并将检索得到的数据行按照第二数据表中的“t2.col”进行分组。在每一个分组中,对第二数据表中的“t2.value”进行聚合,将聚合结果发送至第一设备。由第一设备合并分组结果及其对应的聚合结果,得到第一目标数据表。
[0171]
示例性地,经过拆分后,得到的第二分组聚合语句为:
[0172]
select sum(t1.value)from t1 join t2 on t1.id=t2.id group by t1.col,t2.col
[0173]
为了便于理解,请参阅图9,图9为本技术实施例中实现数据聚合的另一个示意图,如图所示,第二设备根据第二数据表中的“t2.col”对“t2.id”进行分组,对每个分组,将分组中的id发送给第一设备。第一设备通过id检索第一数据表中的数据行,并将检索得到的数据行按照第一数据表中的“t1.col”进行分组。在每一个分组中,对第二数据表中的“t1.value”进行聚合,将聚合结果发送至第二设备。由第二设备合并分组结果及其对应的聚合结果,得到第二目标数据表。
[0174]
基于此,为了便于理解,请参阅图10,图10为本技术实施例中组合得到总数据表的一个示意图,如图所示,将第一目标数据表和第二目标数据表进行组合,即,将第一目标数据表中的“t1.col”和“t2.sum”,与第二目标数据包中的“t2.col”和“t1.sum”进行组合,从而得到总数据表。
[0175]
再次,本技术实施例中,提供了一种基于第二设备反馈的数据表进行数据整合的方式。通过上述方式,不同参与方(即,设备)分别基于拆分得到的分组聚合语句,对数据表进行分组聚合操作,最后,综合各自生成的目标数据表,组合得到一个总数据表。由此,提升方案的可行性和可操作性。
[0176]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,还可以包括:
[0177]
第一设备获取第一原始数据表与第二原始数据表之间的标识交集,其中,第一原始数据表存储于第一设备,第二原始数据表存储于第二设备;
[0178]
第一设备根据标识交集,从第一原始数据表中获取第一数据表,其中,第一数据表的第一标识字段对应于标识交集,标识交集还用于从第二原始数据表中获取第二数据表,第二数据表的第二标识字段对应于标识交集。
[0179]
在一个或多个实施例中,介绍了一种基于psi实现隐私集合求交的方式。由前述实施例可知,第一设备存储有第一原始数据表,第二设备存储有第二原始数据表,其中,第一原始数据表和第二原始数据表均包括标识字段。
[0180]
具体地,为了便于理解,请参阅表1,表1为第一原始数据表的一个示意。
[0181]
表1
[0182]
t1.idt1.valuet1.col13a24b
35c46c59d68d
[0183]
请参阅表2,表2为第二原始数据表的一个示意。
[0184]
表2
[0185]
t2.idt2.valuet2.col27c38c49d510d611d
[0186]
基于此,将第一原始数据表的“t1.id”和第二原始数据表的“t2.id”作为输入,并运行psi方案,从而得到标识交集(即,t),即,t=t1.id∩t2.id。第一设备根据标识交集的元素对第一原始数据表进行筛选,在本地筛选id属于标识交集的数据行,从而构成第一数据表,并可以进一步按照t1.col对第一数据表进行排序。类似地,第二设备根据标识交集的元素对第二原始数据表进行筛选,在本地筛选id属于标识交集的数据行,从而构成第二数据表,并可以进一步按照t2.col对第二数据表进行排序。
[0187]
请参阅表3,表3为基于表1所示第一原始数据表生成的第一数据表的一个示意。
[0188]
表3
[0189]
t1.idt1.valuet1.col24b35c46c59d68d
[0190]
请参阅表4,表4为基于表2所示第二原始数据表生成的第二数据表的一个示意。
[0191]
表4
[0192][0193][0194]
其次,本技术实施例中,提供了一种基于psi实现隐私集合求交的方式。通过上述方式,能够实现在双方设备不泄露额外信息的情况下,求得双方输入集合的交集,从而提升数据交互的安全性和可靠性。
[0195]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备根据第一分组聚合语句,对第一数据表进行分组处理,得到k个分组结果,具体可以包括:
[0196]
第一设备从第一分组聚合语句中获取第一分组字段,其中,第一分组字段对应于至少一类组别信息,第一分组字段包含于第一预设字段;
[0197]
第一设备根据第一分组字段所包括的至少一类组别信息,生成k个分组结果,其中,k个分组结果中的同一个分组结果具有相同的组别信息。
[0198]
在一个或多个实施例中,介绍了一种基于分组字段对数据表进行分组的方式。由前述实施例可知,第一设备存储有第一数据表,第一数据表可包括第一分组字段和第一标识字段,其中,第一分组字段对应于至少一类组别信息。
[0199]
具体地,为了便于理解,请再次参阅表3,第一分组字段为“t1.col”,与“t1.col”关联的组别信息包括“b”、“c”和“d”。由此,将组别信息均为“b”的数据行作为一个分组结果,将组别信息均为“c”的数据行作为一个分组结果,并将组别信息均为“d”的数据行作为一个分组结果。
[0200]
其次,本技术实施例中,提供了一种基于分组字段对数据表进行分组的方式。通过上述方式,为方案实现提供了具体的实现方式,从而提升方案的可行性和可操作性。
[0201]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备向第二设备发送t个分组结果,以使第二设备根据t个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果,具体可以包括:
[0202]
第一设备向第二设备发送k个分组结果,以使第二设备根据k个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到k个聚合结果。
[0203]
在一个或多个实施例中,介绍了一种一次性传输分组结果的方式。由前述实施例可知,一种情况下,t=k,即,得到的k个分组结果无需进行拆分,由此,第一设备向第二发送发送k个分组结果。
[0204]
具体地,示例性地,假设k个分组结果包括第一分组结果和第二分组结果。为了便于理解,请参阅表5,表5为第一数据表的一个示意。
[0205]
表5
[0206][0207][0208]
假设第一分组结果包括t1.col为“a”的4个标识信息(即,id),那么第一设备向第二设备发送的第一分组结果包括id=1,id=3,id=4,id=6。由此,第二设备根据这4个标
识信息,对第二数据表进行分组聚合处理,从而得到第一聚合结果。
[0209]
假设第二分组结果包括t1.col为“b”的3个标识信息,那么第一设备向第二设备发送的第二分组结果包括id=2,id=5,id=7。由此,第二设备根据这3个标识信息,对第二数据表进行分组聚合处理,从而得到第二聚合结果。
[0210]
其次,本技术实施例中,提供了一种一次性传输分组结果的方式。通过上述方式,第一设备可直接将k个分组结果发送至第二设备,无需对分组结果进行处理,由此,节省数据处理资源,提升处理效率。
[0211]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,k个分组结果包括第一分组结果;
[0212]
第一设备向第二设备发送t个分组结果,以使第二设备根据t个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果,具体可以包括:
[0213]
第一设备将第一分组结果划分为若干个分组结果,其中,若干个分组结果中的各个分组结果所包括的标识信息不重合;
[0214]
第一设备向第二设备发送各个分组结果,以使第二设备根据各个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果。
[0215]
在一个或多个实施例中,介绍了一种多批次传输分组结果的方式。由前述实施例可知,一种情况下,t>k,即,得到的k个分组结果需要进行拆分,由此,第一设备向第二发送发送t个分组结果。
[0216]
具体地,示例性地,假设k个分组结果包括第一分组结果。为了便于理解,请再次参阅表5,假设第一分组结果包括t1.col为“a”的4个标识信息(即,id),此时,第一设备可以将第一分组结果随机拆分为若干个分组结果,且,各个分组结果所包括的标识信息不重合。例如,第一分组结果拆分为两个分组结果,其中,一个分组结果包括t1.col为“a”的id=1,另一个分组结果包括t1.col为“a”的id=3,id=4,id=6。
[0217]
其次,本技术实施例中,提供了一种多批次传输分组结果的方式。通过上述方式,由第一设备对k个分组结果作进一步拆分,避免一次性传输一个完整的分组结果,从而防止泄露分组结果中的标识信息,进而增强了安全数据分析的能力。
[0218]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备接收第二设备发送的t个聚合结果,具体可以包括:
[0219]
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和聚合数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
[0220]
在一个或多个实施例中,介绍了一种对原始组别信息进行加密传输的方式。由前述实施例可知,第一设备存储有第一数据表,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“t2.col”)和第二值字段(即,“t2.value”)。
[0221]
可以理解的是,本技术以采用hash函数对原始组别信息进行加密为例进行介绍,然而这不应理解为对本技术的限定。基于hash函数,可定义为hash(key),其中,key表示元素的键值,hash(key)的值则表示经过散列函数计算得到的散列值。
[0222]
具体地,以对第二数据表中的原始组别信息进行加密为例,为了便于说明,请再次
参阅表4,基于此,第二设备可采用hash函数对第二分组字段(即,“t2.col”)对应的各个原始组别信息进行加密。请参阅表6,表6为对表4中各个原始组别信息进行hash函数计算后得到的第二数据表的一个示意。
[0223]
表6
[0224]
t2.idt2.valuet2.col27hash(c)38hash(c)49hash(d)510hash(d)611hash(d)
[0225]
由表6可知,第二分组字段(即,“t2.col”)对应的目标组别信息包括hash(c)和hash(d)。第二值字段(即,“t2.value”)对应的原始数值包括“7”、“8”、“9”、“10”和“11”。
[0226]
其次,本技术实施例中,提供了一种对原始组别信息进行加密传输的方式。通过上述方式,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,从而防止原始组别信息的泄露,进而增强了安全数据分析的能力。
[0227]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备接收第二设备发送的t个聚合结果,具体可以包括:
[0228]
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括原始组别信息和目标数值,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,原始组别信息对应于第二数据表的第二分组字段。
[0229]
在一个或多个实施例中,介绍了一种对原始数值进行加密传输的方式。由前述实施例可知,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“t2.col”)和第二值字段(即,“t2.value”),第二设备在接收到第一设备发送的t个分组结果,并进行分组聚合之后,可得到聚合字段(即,t2.sum)。
[0230]
可以理解的是,第一设备执行密钥生成(gen)算法,生成一对公私钥(pka,ska),其中,pka为第一设备生成的公钥,ska为第一设备生成的私钥,第一设备公开公钥pka。类似地,第二设备执行gen算法,生成一对公私钥(pkb,skb),其中,pkb为第二设备生成的公钥,skb为第二设备生成的私钥,第二设备公开公钥pkb。
[0231]
具体地,以对聚合数值进行加密为例,为了便于说明,请再次参阅表4,基于此,第二设备可采用公钥pkb对聚合字段(即,t2.sum)对应的各个聚合数值进行加密。请参阅表7,表7为对表4所示第二数据表中各个原始数值进行分组聚合之后,得到的一个数据表示意。
[0232]
表7
[0233]
t2.idt2.sumt2.col2[7]pkbc3[8]pkbc4[9]pkbd5[10]pkbd6[11]pkbd
[0234]
由表7可知,聚合字段(即,t2.sum)对应的目标数值包括[7]pkb、[8]pkb、[9]pkb、
[10]pkb和[11]pkb。第二分组字段(即,“t2.col”)对应的原始组别信息包括“c”和“d”。
[0235]
可以理解的是,第一设备向第二设备发送的分组结果中包括id=2和id=3,基于表4,得到聚合数值为15(即,7 8=15),因此,该聚合数值对应的目标数值为[15]pkb。
[0236]
其次,本技术实施例中,提供了一种对原始数值进行加密传输的方式。通过上述方式,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始数值的泄露,进而增强了安全数据分析的能力。
[0237]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备接收第二设备发送的t个聚合结果,具体可以包括:
[0238]
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
[0239]
在一个或多个实施例中,介绍了一种对原始组别信息和原始数值进行加密传输的方式。由前述实施例可知,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“t2.col”)和第二值字段(即,“t2.value”),第二设备在接收到第一设备发送的t个分组结果,并进行分组聚合之后,可得到聚合字段(即,t2.sum)。
[0240]
可以理解的是,本技术以采用hash函数对原始组别信息进行加密为例进行介绍,然而这不应理解为对本技术的限定。第一设备执行gen)算法,生成一对公私钥(pka,ska),第二设备执行gen算法,生成一对公私钥(pkb,skb)。
[0241]
具体地,以对原始组别信息和聚合数值进行加密为例,为了便于说明,请再次参阅表4,基于此,第二设备可采用hash函数对第二分组字段(即,“t2.col”)对应的各个原始组别信息进行加密,并采用公钥pkb对聚合字段(即,t2.sum)对应的各个聚合数值进行加密。请参阅表8,表8为对表4所示第二数据表中各个原始组别信息进行hash函数计算,并对第二数据表中各个原始数值进行分组聚合之后得到的一个数据表示意。
[0242]
表8
[0243][0244][0245]
由表8可知,第二分组字段(即,“t2.col”)对应的目标组别信息包括hash(c)和hash(d)。聚合字段(即,t2.sum)对应的目标数值包括[7]pkb、[8]pkb、[9]pkb、[10]pkb和[11]pkb。
[0246]
其次,本技术实施例中,提供了一种对原始组别信息和原始数值进行加密传输的方式。通过上述方式,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,与此同时,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始组别信息和原始数值的泄露,进而增强了安全数据分析的能力。
[0247]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,还可以包括:
[0248]
若第一聚合结果与第二聚合结果包括相同的目标组别信息,则第一设备基于同态加密算法,对第一聚合结果和第二聚合结果中的目标数值进行加和,得到加密数值。
[0249]
在一个或多个实施例中,介绍了一种对多个目标数值进行同态加密的方式。由前述实施例可知,第一设备基于第一分组字段(即,“t1.col”)对第一数据表进行分组,得到k个分组结果,基于此,第一设备和第二设备可根据k个分组结果进行交互。
[0250]
具体地,为了便于理解,请参阅表9,表9为第一数据表的一个示意。
[0251]
表9
[0252]
t1.idt1.valuet1.col24b35c46c59d68d
[0253]
其中,第一设备对“t1.col”进行分组,可得到三个分组结果,分别为t1.col=b,t1.col=c和t1.col=d。
[0254]
为了便于理解,请参阅表10,表10为第二数据表的一个示意。
[0255]
表10
[0256]
t2.idt2.valuet2.col27c38c49d510d611d
[0257]
示例性地,请参阅图11,图11为本技术实施例中第一设备与第二设备进行信息交互的一个示意图,如图所示,当t1.col=b时,第一设备选取t1.id={2}发送给第二设备。第二设备根据t1.id={2}和第二数据表进行索引,得到数据行(2,7,c)。基于此,第二设备可计算得到[7]pkb,然后向第一设备发送聚合结果(hash(c),[7]pkb)。
[0258]
示例性地,请参阅图12,图12为本技术实施例中第一设备与第二设备进行信息交互的另一个示意图,如图所示,当t1.col=c时,第一设备选取t1.id={3,4}发送给第二设备。第二设备根据t1.id={3,4}和第二数据表进行索引,得到数据行(3,8,c)和(4,9,d)。基于此,第二设备可计算得到[8]pkb和[9]pkb,然后向第一设备发送聚合结果(hash(c),[8]pkb)和(hash(d),[9]pkb)。
[0259]
示例性地,请参阅图13,图13为本技术实施例中第一设备与第二设备进行信息交互的另一个示意图,如图所示,当t1.col=d时,第一设备选取t1.id={3,4},并分两次发送给第二设备。由此,第二设备根据t1.id={5}和第二数据表进行索引,得到数据行(5,10,d)。基于此,第二设备可计算得到[10]pkb,然后向第一设备发送第一聚合结果(hash(d),[10]pkb)。此外,第二设备根据t1.id={6}和第二数据表进行索引,得到数据行(6,11,d)。
基于此,第二设备可计算得到[11]pkb,然后向第一设备发送第二聚合结果(hash(d),[11]pkb)。可见,此时,第一聚合结果与第二聚合结果包括相同的目标组别信息(即,hash(d)),于是,第一设备可采用同态加密的方式计算目标数值之和:
[0260]
[10]pkb⊕
[11]pkb=[10 11]pkb[0261]
其中,

表示在密文域上的加法运算,例如,采用paillier算法,该运算为标准的乘法。
[0262]
基于此,第一设备得到(hash(d),[21]pkb)。[21]pkb表示加密数值。
[0263]
可以理解的是,第一设备每收到一个聚合结果,需要检查是否存在相同的目标组别信息(或,原始组别信息),如果有,则采用同态加密的方式计算聚合结果中目标数值之和,并更新目标数值之和,即:
[0264]
(l
t
,res
t
)

(l
t
,res
t

resj);
[0265]
并丢弃(lj,resj)。其中,l
t
表示第一聚合结果中的目标组别信息(或,原始组别信息)。res
t
表示第一聚合结果中的目标数值。lj表示第二聚合结果中的目标组别信息(或,原始组别信息)。resj表示第二聚合结果中的目标数值。
[0266]
再次,本技术实施例中,提供了一种对多个目标数值进行同态加密的方式。通过上述方式,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
[0267]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备根据t个聚合结果和t个分组结果,生成第一目标数据表,具体可以包括:
[0268]
第一设备根据t个聚合结果,获取r个加密数值,其中,r为大于或等于1,且小于或等于t的整数;
[0269]
第一设备向第二设备发送r个加密数值,以使第二设备采用私钥对r个加密数值进行解密,得到r个解密数值,其中,私钥与公钥为第二设备生成的;
[0270]
第一设备接收第二设备发送的r个解密数值;
[0271]
第一设备根据r个解密数值和t个分组结果,生成第一目标数据表。
[0272]
在一个或多个实施例中,介绍了一种基于同态加密算法进行解密的方式。由前述实施例可知,第一设备接收第二发送的t个聚合结果,以上述实施例为例,第一设备对t个聚合结果中具有相同目标组别信息(或,原始组别信息)进行同态加法,从而得到r个加密数值以及每个加密数值所对应的目标组别信息(或,原始组别信息)。
[0273]
具体地,假设t个聚合结果包括(hash(c),[7]pkb),(hash(c),[8]pkb),(hash(d),[9]pkb),(hash(c),[10]pkb)和(hash(c),[11]pkb),经过同态加法之后,得到(hash(c),[7]pkb),(hash(c),[8]pkb),(hash(d),[9]pkb)和(hash(d),[21]pkb),其中,r个加密数值包括[7]pkb,[8]pkb,[9]pkb和[21]pkb。为了便于理解,请参阅图14,图14为本技术实施例中第二设备反馈解密结果的一个示意图,如图所示,第一设备向第二设备发送r个加密数值,第二设备可采用私钥(即,skb)对r个加密数值进行解密,从而得到r个解密数值(即,7,8,9,21)。
[0274]
基于此,第一设备接收r个解密数值,然后根据r个解密数值、每个解密数值对应的目标组别信息(或,原始组别信息)以及t个分组结果,生成第一目标数据表。
[0275]
需要说明的是,第二设备可基于第二分组聚合语句,采用类似方式得到对应的第
二目标数据表。由此,第一设备公开第一目标数据表,第二设备公开第一目标数据表,基于此,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
[0276]
进一步地,本技术实施例中,提供了一种基于同态加密算法进行解密的方式。通过上述方式,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
[0277]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备接收第二设备发送的t个聚合结果,具体可以包括:
[0278]
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和第一目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,第一目标数值为第一原始数值与第一随机数值之和,目标组别信息对应于第二数据表的第二分组字段,第一原始数值对应于第二数据表的第二值字段;
[0279]
第一设备接收第二设备发送的第二聚合结果,其中,第二聚合结果包括目标组别信息和第二目标数值,第二目标组别信息为第二设备对第二原始组别信息进行加密后得到的,第二目标数值为第二原始数值与第二随机数值之和,第二目标组别信息对应于第二数据表的第二分组字段,第二原始数值对应于第二数据表的第二值字段。
[0280]
在一个或多个实施例中,介绍了一种基于ot协议实现数据加密的方式。由前述实施例可知,第一设备存储有第一数据表,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“t2.col”)和第二值字段(即,“t2.value”),目标组别信息对应于第二分组字段(即,“t2.col”),第一原始数值和第二原始数值均对应于第二值字段(即,“t2.value”)。
[0281]
具体地,以第二设备向第一设备发送第一聚合结果和第二聚合结果为例,其中,第一聚合结果包括目标组别信息(或,原始组别信息)和第一目标数值(即,res’j
),第一目标数值(即,res’j
)为第一原始数值(即,resj)与第一随机数值(即,rj)之和,即,res’j
=resj rj。类似地,第二聚合结果包括目标组别信息(或,原始组别信息)和第二目标数值(即,res’i
),第二目标数值(即,res’i
)为第二原始数值(即,resi)与第二随机数值(即,ri)之和,即,res’i
=resi ri。
[0282]
由此,第一设备可直接计算第一目标数值(即,res’j
)与第二目标数值(即,res’i
)。之和,即,得到resj resi rj ri。这里的加法是指有限域上的加法,计算开销较低。
[0283]
其次,本技术实施例中,提供了一种基于ot协议实现数据加密的方式。通过上述方式,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于ot协议传输数据的计算开销较低,从而提升方案的实用性。
[0284]
可选地,在上述图4对应的各个实施例的基础上,本技术实施例提供的另一个可选实施例中,第一设备根据t个聚合结果和t个分组结果,生成第一目标数据表,具体可以包括:
[0285]
第一设备基于不经意传输协议,获取来源于第二设备的随机数总和,其中,随机数总和为第1个至第n个随机数值之和,n为大于1的整数;
[0286]
第一设备从第一聚合结果中获取第一目标数值,并从第二聚合结果中获取第二目标数值;
[0287]
第一设备根据第一目标数值、第二目标数值、随机数总和和历史随机总数,确定目标原始数值,其中,历史随机总数为第1个至第m个随机数值之和,m为大于或等于1,且小于n的整数;
[0288]
第一设备根据目标原始数值、目标组别信息和t个分组结果,生成第一目标数据表。
[0289]
在一个或多个实施例中,介绍了一种基于ot协议实现数据解密的方式。由前述实施例可知,第一设备在获取到对应同样目标组别信息(或,原始组别信息)的各个目标数值之和,无需让第二设备进行解密。第一设备获取到的各个目标数值之和可以是(l
t
,res
t
r
t
),或者,(l
t
,res
t
res
t 1


res
t k
r
t
r
t 1


r
t k
)。对于第一设备而言,为了恢复结果,实际上就是需要知道第二设备生成的随机数总和,即可使用基于ot的秘密分享方案来实现。
[0290]
具体地,为了便于理解,请参阅图15,图15为本技术实施例中基于不经意传输实现数据分享的一个示意图,如图所示,假设第一设备最终获得r个聚合结果,第一设备与第二设备进行t次交互,其中,r小于或等于t。因此,第二设备构造一个长度为t的序列s,si=r1 r2

ri。假设第一设备需要知道r
t
r
t 1


r
t k
,而此时,第一设备已经知道历史随机总数s
t-1
=r1 r2

r
t-1
,因为历史随机总数会应用于上一次聚合结果的解密中。
[0291]
基于此,第一设备和第二设备基于ot协议,第一设备选择第t k个值,那么第一设备就知道了随机数总和s
t k
,第一设备计算随机数总和s
t k
(即,r
t
r
t 1


r
t k
)与历史随机总数s
t-1
(即,r1 r2

r
t-1
)之差,即可得到r
t
r
t 1


r
t k
。解密时,将各个目标数值之和(例如,第一目标数值和第二目标数值之和)与r
t
r
t 1


r
t k
相减,得到目标原始数值res
t
res
t 1


res
t k

[0292]
可以理解的是,为了便于理解,上述示例中的t k为n,因此,随机数总和r
t
r
t 1


r
t k
为第1个至第n个随机数值之和。上述示例中的t-1为m,因此,历史随机总数r1 r2

r
t-1
为第1个至第m个随机数值之和。
[0293]
需要说明的是,第二设备可基于第二分组聚合语句,采用类似方式得到对应的第二目标数据表。由此,第一设备公开第一目标数据表,第二设备公开第一目标数据表,基于此,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
[0294]
再次,本技术实施例中,提供了一种基于ot协议实现数据解密的方式。通过上述方式,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于ot协议传输数据的计算开销较低,从而提升方案的实用性。
[0295]
下面对本技术中的数据聚合装置进行详细描述,数据聚合装置应用于第一设备,第一设备存储第一数据表。请参阅图16,图16为本技术实施例中数据聚合装置一个实施例示意图,数据聚合装置30包括:
[0296]
获取模块310,用于获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
[0297]
处理模块320,用于根据第一分组聚合语句,对第一数据表进行分组处理,得到k个分组结果,其中,k个分组结果中的每个分组结果包括标识信息,k个分组结果用于生成t个分组结果,k为大于或等于1的整数,t为大于或等于k的整数;
[0298]
发送模块330,用于向第二设备发送t个分组结果,以使第二设备根据t个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果,其中,第二数据表存储于第二设备;
[0299]
接收模块340,用于接收第二设备发送的t个聚合结果;
[0300]
生成模块350,用于根据t个聚合结果和t个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
[0301]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,将数据表存储在设备本地,基于此,设备可根据分组聚合语句对本地的数据表进行处理,设备之间可以互传数据表的处理结果,从而实现数据的分组聚合。由于各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
[0302]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0303]
获取模块310,具体用于获取原始分组聚合语句,其中,原始分组聚合语句包括第一值字段和第二值字段,第一值字段属于第一数据表,第二值字段属于第二数据表;
[0304]
根据原始分组聚合语句生成第一分组聚合语句,其中,第一分组聚合语句包括第二值字段,且,第二值字段包含于第一预设字段,原始分组聚合语句还用于第二设备生成第二分组聚合语句,第二分组聚合语句包括第一值字段,且,第一值字段包含于第二预设字段。
[0305]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,考虑到在联合分组的情况下,直接对多方数据列进行聚合的操作较为复杂,因此,可拆分对单方数据列进行聚合,从而降低操作的复杂度。
[0306]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0307]
接收模块340,还用于接收第二设备发送的p个分组结果,其中,p个分组结果为第二设备根据第二分组聚合语句,对第二数据表进行分组处理后得到的,p个分组结果中的每个分组结果包括标识信息,p为大于或等于1的整数;
[0308]
处理模块320,还用于根据p个分组结果中每个分组结果所包括的标识信息,对第一数据表进行分组聚合处理,得到p个聚合结果;
[0309]
发送模块330,还用于向第二设备发送p个聚合结果,以使第二设备根据p个聚合结果和p个分组结果,生成第二目标数据表,其中,第二目标数据表包括第一数据表和第二数据表针对第二预设字段的聚合结果;
[0310]
接收模块340,还用于接收第二设备发送的第二目标数据表;
[0311]
生成模块350,还用于根据t个聚合结果和t个分组结果,生成第一目标数据表之后,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
[0312]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,不同参与方(即,设备)分别基于拆分得到的分组聚合语句,对数据表进行分组聚合操作,最后,综合各自生成的目标数据表,组合得到一个总数据表。由此,提升方案的可行性和可操作性。
[0313]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装
置20的另一实施例中,
[0314]
获取模块310,还用于获取第一原始数据表与第二原始数据表之间的标识交集,其中,第一原始数据表存储于第一设备,第二原始数据表存储于第二设备;
[0315]
获取模块310,还用于根据标识交集,从第一原始数据表中获取第一数据表,其中,第一数据表的第一标识字段对应于标识交集,标识交集还用于从第二原始数据表中获取第二数据表,第二数据表的第二标识字段对应于标识交集。
[0316]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,能够实现在双方设备不泄露额外信息的情况下,求得双方输入集合的交集,从而提升数据交互的安全性和可靠性。
[0317]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0318]
处理模块320,具体用于从第一分组聚合语句中获取第一分组字段,其中,第一分组字段对应于至少一类组别信息,第一分组字段包含于第一预设字段;
[0319]
根据第一分组字段所包括的至少一类组别信息,生成k个分组结果,其中,k个分组结果中的同一个分组结果具有相同的组别信息。
[0320]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,为方案实现提供了具体的实现方式,从而提升方案的可行性和可操作性。
[0321]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0322]
发送模块330,具体用于向第二设备发送k个分组结果,以使第二设备根据k个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到k个聚合结果。
[0323]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,第一设备可直接将k个分组结果发送至第二设备,无需对分组结果进行处理,由此,节省数据处理资源,提升处理效率。
[0324]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0325]
发送模块330,具体用于将第一分组结果划分为若干个分组结果,其中,若干个分组结果中的各个分组结果所包括的标识信息不重合;
[0326]
向第二设备发送各个分组结果,以使第二设备根据各个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到t个聚合结果。
[0327]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,由第一设备对k个分组结果作进一步拆分,避免一次性传输一个完整的分组结果,从而防止泄露分组结果中的标识信息,进而增强了安全数据分析的能力。
[0328]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0329]
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和聚合数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
[0330]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,从而防止原始组别信息的泄露,进而增强了安全数据分析的能力。
[0331]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0332]
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括原始组别信息和目标数值,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,原始组别信息对应于第二数据表的第二分组字段。
[0333]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始数值的泄露,进而增强了安全数据分析的能力。
[0334]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0335]
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
[0336]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,与此同时,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始组别信息和原始数值的泄露,进而增强了安全数据分析的能力。
[0337]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0338]
处理模块320,还用于若第一聚合结果与第二聚合结果包括相同的目标组别信息,则基于同态加密算法,对所述第一聚合结果和所述第二聚合结果中的目标数值进行加和,得到加密数值。
[0339]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
[0340]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0341]
生成模块350,具体用于根据t个聚合结果,获取r个加密数值,其中,r为大于或等于1,且小于或等于t的整数;
[0342]
向第二设备发送r个加密数值,以使第二设备采用私钥对r个加密数值进行解密,得到r个解密数值,其中,私钥与公钥为第二设备生成的;
[0343]
接收第二设备发送的r个解密数值;
[0344]
根据r个解密数值和t个分组结果,生成第一目标数据表。
[0345]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
[0346]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0347]
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和第一目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,第一目标数值为第一原始数值与第一随机数值之和,目标组别信息对应于第二数据表的第二分组字段,第一原始数值对应于第二数据表的第二值字段;
[0348]
接收第二设备发送的第二聚合结果,其中,第二聚合结果包括目标组别信息和第二目标数值,第二目标组别信息为第二设备对第二原始组别信息进行加密后得到的,第二目标数值为第二原始数值与第二随机数值之和,第二目标组别信息对应于第二数据表的第二分组字段,第二原始数值对应于第二数据表的第二值字段。
[0349]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于ot协议传输数据的计算开销较低,从而提升方案的实用性。
[0350]
可选地,在上述图16所对应的实施例的基础上,本技术实施例提供的数据聚合装置20的另一实施例中,
[0351]
生成模块350,具体用于基于不经意传输协议,获取来源于第二设备的随机数总和,其中,随机数总和为第1个至第n个随机数值之和,n为大于1的整数;
[0352]
从第一聚合结果中获取第一目标数值,并从第二聚合结果中获取第二目标数值;
[0353]
根据第一目标数值、第二目标数值、随机数总和和历史随机总数,确定目标原始数值,其中,历史随机总数为第1个至第m个随机数值之和,m为大于或等于1,且小于n的整数;
[0354]
根据目标原始数值、目标组别信息和t个分组结果,生成第一目标数据表。
[0355]
本技术实施例中,提供了一种数据聚合装置。采用上述装置,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于ot协议传输数据的计算开销较低,从而提升方案的实用性。
[0356]
本技术提供了一种数据聚合装置,可部署于服务器。为了便于理解,请参阅图17,图17是本技术实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。
[0357]
服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
[0358]
上述实施例中由服务器所执行的步骤可以基于该图17所示的服务器结构。
crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图18中,触控面板531与显示面板541是作为两个独立的部件来实现智能手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现智能手机的输入和输出功能。
[0366]
智能手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在智能手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0367]
音频电路560、扬声器561,传声器562可提供用户与智能手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经rf电路510以发送给比如另一智能手机,或者将音频数据输出至存储器520以便进一步处理。
[0368]
wifi属于短距离无线传输技术,智能手机通过wifi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图18示出了wifi模块570,但是可以理解的是,其并不属于智能手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0369]
处理器580是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行智能手机的各种功能和处理数据。可选的,处理器580可包括一个或多个处理单元;可选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
[0370]
智能手机还包括给各个部件供电的电源590(比如电池),可选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0371]
尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0372]
上述实施例中由终端所执行的步骤可以基于该图18所示的终端结构。
[0373]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
[0374]
本技术实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
[0375]
可以理解的是,在本技术的具体实施方式中,涉及到用户信息等相关的数据,当本
申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0376]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0377]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0378]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0379]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0380]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0381]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献