CN114547082A - 一种数据聚合的方法、相关装置、设备以及存储介质 - Google Patents
一种数据聚合的方法、相关装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN114547082A CN114547082A CN202210181433.6A CN202210181433A CN114547082A CN 114547082 A CN114547082 A CN 114547082A CN 202210181433 A CN202210181433 A CN 202210181433A CN 114547082 A CN114547082 A CN 114547082A
- Authority
- CN
- China
- Prior art keywords
- aggregation
- grouping
- data table
- results
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 439
- 238000004220 aggregation Methods 0.000 title claims abstract description 439
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012545 processing Methods 0.000 claims abstract description 80
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000012423 maintenance Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 32
- 238000007405 data analysis Methods 0.000 description 22
- 230000004931 aggregating effect Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 13
- 231100000279 safety data Toxicity 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000001617 migratory effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据聚合的方法,可应用的领域包括但不限于云技术,数据计算和大数据领域。本申请方法包括:获取第一分组聚合语句;根据第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果;向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果;接收第二设备发送的T个聚合结果;根据T个聚合结果和T个分组结果,生成第一目标数据表。本申请还提供了相关装置、设备以及存储介质。本申请由各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据聚合的方法、相关装置、设备以及存储介质。
背景技术
在关系型数据库查询功能中,可支持分组运算和去重运算等类型的查询。这类查询能够根据数据库中指定的字段,对需要汇总分析的字段进行分组之后,再采用聚合函数进行会汇总运算。这个过程在联机分析处理(Online Analytical Processing,OLAP)的查询中出现频率较高。
由于不同机构或部门独立存储数据,在进行联合数据分析时,传统OLAP需要将这些分散的数据汇合在一起进行分析。目前,在进行分组聚合时,可采用专门的存储集群和计算集群,保证计算集群上提交的敏感数据写入到封闭域的存储集群中。
发明人发现现有方案中至少存在如下问题,虽然将敏感数据存储到封闭域能够保护数据隐私,但是将各个参与方的敏感数据都集中存储到封闭域,会导致维护数据一致性的成本较高。此外,将从封闭区域导出数据时还需要触发人工审核,从而增加人工审核成本。
发明内容
本申请实施例提供了一种数据聚合的方法、相关装置、设备以及存储介质。本申请由各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
有鉴于此,本申请一方面提供一种数据聚合的方法,应用于第一设备,第一设备存储第一数据表,包括:
获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
根据第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,其中,K个分组结果中的每个分组结果包括标识信息,K个分组结果用于生成T个分组结果,K为大于或等于1的整数,T为大于或等于K的整数;
向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,其中,第二数据表存储于第二设备;
接收第二设备发送的T个聚合结果;
根据T个聚合结果和T个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
本申请另一方面提供一种数据聚合装置,数据聚合装置应用于第一设备,第一设备存储第一数据表,数据聚合装置包括:
获取模块,用于获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
处理模块,用于根据第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,其中,K个分组结果中的每个分组结果包括标识信息,K个分组结果用于生成T个分组结果,K为大于或等于1的整数,T为大于或等于K的整数;
发送模块,用于向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,其中,第二数据表存储于第二设备;
接收模块,用于接收第二设备发送的T个聚合结果;
生成模块,用于根据T个聚合结果和T个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于获取原始分组聚合语句,其中,原始分组聚合语句包括第一值字段和第二值字段,第一值字段属于第一数据表,第二值字段属于第二数据表;
根据原始分组聚合语句生成第一分组聚合语句,其中,第一分组聚合语句包括第二值字段,且,第二值字段包含于第一预设字段,原始分组聚合语句还用于第二设备生成第二分组聚合语句,第二分组聚合语句包括第一值字段,且,第一值字段包含于第二预设字段。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,还用于接收第二设备发送的P个分组结果,其中,P个分组结果为第二设备根据第二分组聚合语句,对第二数据表进行分组处理后得到的,P个分组结果中的每个分组结果包括标识信息,P为大于或等于1的整数;
处理模块,还用于根据P个分组结果中每个分组结果所包括的标识信息,对第一数据表进行分组聚合处理,得到P个聚合结果;
发送模块,还用于向第二设备发送P个聚合结果,以使第二设备根据P个聚合结果和P个分组结果,生成第二目标数据表,其中,第二目标数据表包括第一数据表和第二数据表针对第二预设字段的聚合结果;
接收模块,还用于接收第二设备发送的第二目标数据表;
生成模块,还用于根据T个聚合结果和T个分组结果,生成第一目标数据表之后,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,还用于获取第一原始数据表与第二原始数据表之间的标识交集,其中,第一原始数据表存储于第一设备,第二原始数据表存储于第二设备;
获取模块,还用于根据标识交集,从第一原始数据表中获取第一数据表,其中,第一数据表的第一标识字段对应于标识交集,标识交集还用于从第二原始数据表中获取第二数据表,第二数据表的第二标识字段对应于标识交集。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
处理模块,具体用于从第一分组聚合语句中获取第一分组字段,其中,第一分组字段对应于至少一类组别信息,第一分组字段包含于第一预设字段;
根据第一分组字段所包括的至少一类组别信息,生成K个分组结果,其中,K个分组结果中的同一个分组结果具有相同的组别信息。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
发送模块,具体用于向第二设备发送K个分组结果,以使第二设备根据K个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到K个聚合结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,K个分组结果包括第一分组结果;
发送模块,具体用于将第一分组结果划分为若干个分组结果,其中,若干个分组结果中的各个分组结果所包括的标识信息不重合;
向第二设备发送各个分组结果,以使第二设备根据各个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和聚合数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括原始组别信息和目标数值,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,原始组别信息对应于第二数据表的第二分组字段。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
处理模块,还用于若第一聚合结果与第二聚合结果包括相同的目标组别信息,则基于同态加密算法,对所述第一聚合结果和所述第二聚合结果中的目标数值进行加和,得到加密数值。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
生成模块,具体用于根据T个聚合结果,获取R个加密数值,其中,R为大于或等于1,且小于或等于T的整数;
向第二设备发送R个加密数值,以使第二设备采用私钥对R个加密数值进行解密,得到R个解密数值,其中,私钥与公钥为第二设备生成的;
接收第二设备发送的R个解密数值;
根据R个解密数值和T个分组结果,生成第一目标数据表。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和第一目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,第一目标数值为第一原始数值与第一随机数值之和,目标组别信息对应于第二数据表的第二分组字段,第一原始数值对应于第二数据表的第二值字段;
接收第二设备发送的第二聚合结果,其中,第二聚合结果包括目标组别信息和第二目标数值,第二目标组别信息为第二设备对第二原始组别信息进行加密后得到的,第二目标数值为第二原始数值与第二随机数值之和,第二目标组别信息对应于第二数据表的第二分组字段,第二原始数值对应于第二数据表的第二值字段。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
生成模块,具体用于基于不经意传输协议,获取来源于第二设备的随机数总和,其中,随机数总和为第1个至第N个随机数值之和,N为大于1的整数;
从第一聚合结果中获取第一目标数值,并从第二聚合结果中获取第二目标数值;
根据第一目标数值、第二目标数值、随机数总和和历史随机总数,确定目标原始数值,其中,历史随机总数为第1个至第M个随机数值之和,M为大于或等于1,且小于N的整数;
根据目标原始数值、目标组别信息和T个分组结果,生成第一目标数据表。
本申请另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种数据聚合的方法,首先,第一设备获取第一分组聚合语句,第一设备存储第一数据表。然后,第一设备根据第一分组聚合语句,对第一数据表进行分组处理,得到分组结果。接下来,由第一设备向第二设备发送这些分组结果,以使第二设备根据每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到聚合结果。于是,第二设备向第一设备发送这些聚合结果,由第一设备根据聚合结果和分组结果,生成包括第一数据表和第二数据表针对第一预设字段的聚合结果。通过上述方式,将数据表存储在设备本地,基于此,设备可根据分组聚合语句对本地的数据表进行处理,设备之间可以互传数据表的处理结果,从而实现数据的分组聚合。由于各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
附图说明
图1为本申请实施例中数据聚合系统的一个架构示意图;
图2为本申请实施例中分布式系统应用于区块链系统的一个可选结构示意图;
图3为本申请实施例中区块结构的一个可选示意图;
图4为本申请实施例中数据聚合方法的一个流程示意图;
图5为本申请实施例中对第一数据表进行分组处理的一个示意图;
图6为本申请实施例中对第二数据表进行分组聚合处理的一个示意图;
图7为本申请实施例中对聚合结果以及分组结果进行合并的一个示意图;
图8为本申请实施例中实现数据聚合的一个示意图;
图9为本申请实施例中实现数据聚合的另一个示意图;
图10为本申请实施例中组合得到总数据表的一个示意图;
图11为本申请实施例中第一设备与第二设备进行信息交互的一个示意图;
图12为本申请实施例中第一设备与第二设备进行信息交互的另一个示意图;
图13为本申请实施例中第一设备与第二设备进行信息交互的另一个示意图;
图14为本申请实施例中第二设备反馈解密结果的一个示意图;
图15为本申请实施例中基于不经意传输实现数据分享的一个示意图;
图16为本申请实施例中数据聚合装置的一个示意图;
图17为本申请实施例中服务器的一个结构示意图;
图18为本申请实施例中终端的一个结构示意图。
具体实施方式
本申请实施例提供了一种数据聚合的方法、相关装置、设备以及存储介质。本申请由各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在进行数据分析时,分组聚合是一个常用的场景。利用分组聚合后得到的数据,可执行相应的处理。下面将结合具体场景进行介绍。
一、数据计算场景;
不同部门各自存储数据表。示例性地,以游戏部门和广告部门为例,假设游戏部门存储有游戏数据表,游戏数据表包括游戏名称和游戏标识(identity document,id)。广告部门存储有广告数据表,广告数据表包括游戏id、广告投放量以及广告投放日期。如果游戏部门想要联合计算各个游戏的总广告投放量,那么使用单方字段按照游戏名称这个数据列进行分组即可。如果游戏部门想要联合计算各个游戏在各个日期的总广告投放量,那么使用多方字段按照游戏名称和广告投放日期进行分组。
二、大数据场景;
不同机构各自存储数据表。示例性地,以大数据研究机构和培训机构为例,假设大数据研究机构存储有数据表A,数据表A包括科目名称和科目id。培训机构存储有数据表B,数据表B包括科目id、培训人数以及开课日期。如果大数据研究机构想要联合计算各个科目的总培训人数,那么使用单方字段按照科目名称这个数据列进行分组即可。如果大数据研究机构想要联合计算各个科目在各个开课日期的总培训人数,那么使用多方字段按照科目名称和开课日期进行分组。由此,大数据研究机构可分析不同科目在不同开课时间参与培训的人数变化,从而指导后续的机构规划课程。
可以理解的是,大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
三、机器学习场景;
不同企业各自存储数据表。示例性地,以企业A和企业B为例,假设企业A存储有数据表A,数据表A包括用户性别和用户id。企业B存储有数据表B,数据表B包括用户id、消费数量以及注册日期。如果企业A想要联合计算各个用户性别的总消费数量,那么使用单方字段按照用户性别这个数据列进行分组即可。如果企业A想要联合计算各个用户性别在各个注册日期的总消费数量,那么使用多方字段按照用户性别和注册日期进行分组。由此,企业A可根据获取到信息执行机器学习,训练用于预测消费数量的模型。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。ML是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能(ArtificialIntelligence,AI)的各个领域。ML和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
由于不同机构或部门独立存储数据,因此,在进行联合数据分析时,为了在不泄露隐私数据的情况下高效地进行数据分析,本申请提出了一种数据聚合方法,该方法应用于图1所示的数据聚合系统,如图所示,数据聚合系统包括至少两个设备,图中示出的第一设备和第二设备可以是终端。示例性地,第一设备和第二设备也可以是服务器。示例性地,第一设备为终端,第二设备为服务器。示例性地,第二设备为终端,第一设备为服务器。本申请涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器和终端的数量也不做限制。本申请提供的方案可以由终端独立完成,也可以由服务器独立完成,还可以由终端与服务器配合完成,对此,本申请并不做具体限定。
以图1所示的数据聚合系统为例,第一设备存储第一数据表,第二设备存储第二数据表。第一数据表和第二数据表均包含三列数据,分别为值(value)字段、分组(col)字段和标识(id)字段。典型的分组聚合语句包含使用单方字段进行分组聚合和使用多方字段进行分组聚合两种情况,
示例性地,使用单方字段的分组聚合语句可以为:
Select sum(T1.value),sum(T2.value)from T1 join T2 on T1.id=T2.idgroup by T1.col
示例性地,使用多方字段的分组聚合语句可以为:
Select sum(T1.value),sum(T2.value)from T1 join T2 on T1.id=T2.idgroup by T1.col,T2.col
可见,使用单方字段和多方字段的情况,首先,都需要根据两个数据表的id数据列进行数据表的连接(join)运算。基于此,使用单方字段的情况下,仅采用第一数据表的col数据列对join之后的表进行分组,在每个分组中,对第一数据表的value数据列和第二数据表的value数据列进行聚合。使用多方字段的情况下,同时使用第一数据表的col数据列和第二数据表的col数据列对join之后的表进行分组,再在每个分组中,对第一数据表的value数据列和第二数据表的value数据列进行聚合。
需要说明的是,本申请提供的数据聚合方法主要用于实现使用多方字段进行分组聚合场景下的隐私计算。
为了避免目标数据表被篡改,在生成目标数据表之后,还可以将目标数据表中的数据存储至区块链系统中,区块链系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图2,图2为本申请实施例中分布式系统应用于区块链系统的一个可选结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、终端)和客户端形成,节点之间形成组成的点对点(Peer To Peer,P2P)网络,P2P协议是一个运行在传输控制协议(Transmission Control Protocol,TCP)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图2示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图3,图3为本申请实施例中区块结构的一个可选示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。区块中还可以包括有区块生成时的时间戳等信息。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
鉴于本申请涉及到一些与专业领域相关的术语,为了便于理解,下面将进行解释。
(1)分组聚合:在结构化查询语言(Structured Query Language,SQL)语句中,一个“SELECT-FROM-GROUP BY”语句被称为一个分组聚合语句。
(2)多方字段:在分组聚合中,利用字段进行数据表的分组操作,如果字段由多方数据列构成,那么称这样的分组聚合是使用多方字段进行的分组聚合。
(3)用户自定义聚合函数(User Defined Aggregate Function,UDAF):以单个数据列的多个数据行作为输入,以一个聚合值作为输出,本申请涉及到的聚合函数包含但不仅限于求和(sum)、计数(count)、最大值(max)、最小值(min)和平均值(avg)。
(4)隐私集合求交(Private Set intersection,PSI):是指参与双方在不泄露任何额外信息的情况下,求得双方输入集合的交集。这里的额外信息指交集之外的所有信息。
(5)不经意传输(Oblivious Transfer,OT):是指一种安全数据传输协议。参与方A持有一系列消息,参与方B能够从中选取自己想要的某一条消息。在这个过程中,参与方A不知道参与方B选取了哪一条消息,参与方B也不知道参与方A持有的除B自己获取的消息之外的消息内容。
(6)公钥加密算法:是一种密码算法,主要包含三个组成部分,即,密钥生成算法(Gen),加密算法(Enc),解密算法(Dec)。其中,密钥生成算法接收一个安全参数k,输出一组公私钥对(pk,sk),公开公钥(pk),保存私钥(sk)。加密算法接收一个明文消息(m)和公钥,输出密文。后续将密文写为[m]pk,用于详细表示用于加密的消息和密钥。解密算法接收一个密文消息[m]pk和私钥,输出明文。
(7)联合数据分析:联合多方的数据表进行数据分析的一种方式。
(8)安全的随机数发生器:一个能够产生高安全性的随机数生成算法,本申请选择密码学哈希(hash)函数或者随机数生成算法。
结合上述介绍,下面将以第一设备的角度,对本申请中数据聚合的方法进行介绍,第一设备存储第一数据表,请参阅图4,本申请实施例中数据聚合方法的一个实施例包括:
210、第一设备获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
在一个或多个实施例中,第一设备获取第一分组聚合语句,第一分组聚合语句包括第一预设字段,基于第一预设字段实现对数据表的分组聚合处理。
具体地,第一分组聚合语句中UDAF所涉及的数据列是一方的。示例性地,第一分组聚合语句可以为:
Select sum(T2.value)from T1 join T2 on T1.id=T2.id group by T1.col,T2.col
其中,T1表示第一数据表,T2表示第二数据表。sum()表示求和函数。求和所涉及的数据列是第二数据表中的“T2.value”。T2.value表示第二数据表中的第二值字段。T1.id表示第一数据表的第一标识字段。T2.id表示第二数据表的第二标识字段。T1.col表示第一数据表的第一分组字段。T2.col表示第二数据表的第二分组字段。
以上述第一分组聚合语句为例,即,第一预设字段包括“T2.value”、“T1.col”和“T2.col”。由此可知,需要对第一数据表中的“T1.col”进行分组,并且对第二数据表中的“T2.col”进行分组,对第二数据表中的“T2.value”进行聚合。
220、第一设备根据第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,其中,K个分组结果中的每个分组结果包括标识信息,K个分组结果用于生成T个分组结果,K为大于或等于1的整数,T为大于或等于K的整数;
在一个或多个实施例中,第一设备根据第一分组聚合语句中第一预设字段所包括的第一分组字段,对第一数据表进行分组处理,由此,得到K个分组结果,且,每个分组结果包括至少一个标识信息(即,id)。第一分组字段为第一数据表中的分组字段,第一标识字段为第一数据表中的标识字段。
具体地,为了便于理解,请参阅图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)。
第一设备可根据K个分组结果生成T个分组结果,T为大于或等于K的整数。可以理解的是,一种情况下,T=K,此时,得到的K个分组结果无需进行拆分。另一种情况下,T>K,此时,可对K个分组结果中的至少一个分组结果进行拆分,因此,得到多于K个的分组结果。
230、第一设备向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,其中,第二数据表存储于第二设备;
在一个或多个实施例中,第一设备向第二设备发送T个分组结果。由此,第二设备可根据T个分组结果中每个分组结果所包括的标识信息,对存储在本地的第二数据表进行分组聚合处理,得到T个聚合结果。
具体地,为了便于理解,请参阅图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)。
在每一个分组中,对第二数据表中的第二值字段(即,T2.value)进行聚合。以求和作为聚合方式,由此,得到一个聚合结果。在该聚合结果中包括聚合字段(即,T2.sum)以及对应的第二分组字段(即,T2.col),例如,T2.sum为“40”,对应的T2.col为“D”。T2.sum为“40”,对应的T2.col为“C”。T2.sum为“60”,对应的T2.col为“E”。
240、第一设备接收第二设备发送的T个聚合结果;
在一个或多个实施例中,第二设备针对T个分组结果中的每个分组结果,分别进行分组聚合操作,从而得到T个聚合结果。第二设备将T个聚合结果发送至第一设备。
250、第一设备根据T个聚合结果和T个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
在一个或多个实施例中,第一设备根据T个聚合结果以及对应的T个分组结果,对数据进行合并,生成第一目标数据表。
具体地,为了便于理解,请参阅图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)的第一目标数据表。
基于此,以第一分组聚合语句为“Select sum(T2.value)from T1 join T2 onT1.id=T2.id group by T1.col,T2.col”作为示例,请参阅图8,图8为本申请实施例中实现数据聚合的一个示意图,如图所示,第一设备根据第一数据表中的“T1.col”对“T1.id”进行分组,对每个分组,将分组中的id发送给第二设备。第二设备通过id检索第二数据表中的数据行,并将检索得到的数据行按照第二数据表中的“T2.col”进行分组。在每一个分组中,对第二数据表中的“T2.value”进行聚合,将聚合结果发送至第一设备。由第一设备合并分组结果及其对应的聚合结果,得到第一目标数据表。
本申请实施例中,提供了一种数据聚合的方法。通过上述方式,将数据表存储在设备本地,基于此,设备可根据分组聚合语句对本地的数据表进行处理,设备之间可以互传数据表的处理结果,从而实现数据的分组聚合。由于各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备获取第一分组聚合语句,具体可以包括:
第一设备获取原始分组聚合语句,其中,原始分组聚合语句包括第一值字段和第二值字段,第一值字段属于第一数据表,第二值字段属于第二数据表;
第一设备根据原始分组聚合语句生成第一分组聚合语句,其中,第一分组聚合语句包括第二值字段,且,第二值字段包含于第一预设字段,原始分组聚合语句还用于第二设备生成第二分组聚合语句,第二分组聚合语句包括第一值字段,且,第一值字段包含于第二预设字段。
在一个或多个实施例中,介绍了一种将多方数据列切分为单方数据列的方式。由前述实施例可知,第一设备和第二设备在获取原始分组聚合语句之后,可分别对其进行拆分,由此,第一设备根据原始分组聚合语句生成第一分组聚合语句,第二设备根据原始分组聚合语句生成第二分组聚合语句。
具体地,假设原始分组聚合语句为:
Select sum(T1.value),sum(T2.value)from T1 join T2 on T1.id=T2.idgroup by T1.col,T2.col
其中,T1表示第一数据表,T2表示第二数据表。sum()表示求和函数。求和所涉及的数据列是第一数据表中的“value”和第二数据表中的“value”。T1.value表示第一数据表中的value字段(即,第一值字段)。T2.value表示第二数据表中的value字段(即,第二值字段)。T1.id表示第一数据表的id字段。T2.id表示第一数据表的id字段。T1.col表示第一数据表的col字段。T2.col表示第二数据表的col字段。
基于此,将原始分组聚合语句切分为两个使用多方字段进行单方数据列聚合的第一分组聚合语句和第二分组聚合语句。
第一分组聚合语句为:
Select sum(T2.value)from T1 join T2 on T1.id=T2.id group by T1.col,T2.col
以上述第一分组聚合语句为例,第一预设字段包括“T2.value”、“T1.col”和“T2.col”。由此可知,需要对第一数据表中的“T1.col”进行分组,并且对第二数据表中的“T2.col””进行分组,对第二数据表中的“T2.value”进行聚合。
第二分组聚合语句为:
Select sum(T1.value)from T1 join T2 on T1.id=T2.id group by T1.col,T2.col
以上述第二分组聚合语句为例,第二预设字段包括“T1.value”、“T1.col”和“T2.col”。由此可知,需要对第二数据表中的“col”进行分组,并且对第一数据表中的“col”进行分组,对第一数据表中的“value”进行聚合。
其次,本申请实施例中,提供了一种将多方数据列切分为单方数据列的方式。通过上述方式,考虑到在联合分组的情况下,直接对多方数据列进行聚合的操作较为复杂,因此,可拆分对单方数据列进行聚合,从而降低操作的复杂度。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
第一设备接收第二设备发送的P个分组结果,其中,P个分组结果为第二设备根据第二分组聚合语句,对第二数据表进行分组处理后得到的,P个分组结果中的每个分组结果包括标识信息,P为大于或等于1的整数;
第一设备根据P个分组结果中每个分组结果所包括的标识信息,对第一数据表进行分组聚合处理,得到P个聚合结果;
第一设备向第二设备发送P个聚合结果,以使第二设备根据P个聚合结果和P个分组结果,生成第二目标数据表,其中,第二目标数据表包括第一数据表和第二数据表针对第二预设字段的聚合结果;
第一设备接收第二设备发送的第二目标数据表;
第一设备根据T个聚合结果和T个分组结果,生成第一目标数据表之后,还可以包括:
第一设备对第一目标数据表和第二目标数据表进行组合,得到总数据表。
在一个或多个实施例中,介绍了一种基于第二设备反馈的数据表进行数据整合的方式。由前述实施例可知,第一设备根据原始分组聚合语句生成第一分组聚合语句,第二设备根据原始分组聚合语句生成第二分组聚合语句。
具体地,假设原始分组聚合语句为:
Select sum(T1.value),sum(T2.value)from T1 join T2 on T1.id=T2.idgroup by T1.col,T2.col
示例性地,经过拆分后,得到的第一分组聚合语句为:
Select sum(T2.value)from T1 join T2 on T1.id=T2.id group by T1.col,T2.col
为了便于理解,请再次参阅图8,第一设备根据第一数据表中的“T1.col”对“T1.id”进行分组,对每个分组,将分组中的id发送给第二设备。第二设备通过id检索第二数据表中的数据行,并将检索得到的数据行按照第二数据表中的“T2.col”进行分组。在每一个分组中,对第二数据表中的“T2.value”进行聚合,将聚合结果发送至第一设备。由第一设备合并分组结果及其对应的聚合结果,得到第一目标数据表。
示例性地,经过拆分后,得到的第二分组聚合语句为:
Select sum(T1.value)from T1 join T2 on T1.id=T2.id group by T1.col,T2.col
为了便于理解,请参阅图9,图9为本申请实施例中实现数据聚合的另一个示意图,如图所示,第二设备根据第二数据表中的“T2.col”对“T2.id”进行分组,对每个分组,将分组中的id发送给第一设备。第一设备通过id检索第一数据表中的数据行,并将检索得到的数据行按照第一数据表中的“T1.col”进行分组。在每一个分组中,对第二数据表中的“T1.value”进行聚合,将聚合结果发送至第二设备。由第二设备合并分组结果及其对应的聚合结果,得到第二目标数据表。
基于此,为了便于理解,请参阅图10,图10为本申请实施例中组合得到总数据表的一个示意图,如图所示,将第一目标数据表和第二目标数据表进行组合,即,将第一目标数据表中的“T1.col”和“T2.sum”,与第二目标数据包中的“T2.col”和“T1.sum”进行组合,从而得到总数据表。
再次,本申请实施例中,提供了一种基于第二设备反馈的数据表进行数据整合的方式。通过上述方式,不同参与方(即,设备)分别基于拆分得到的分组聚合语句,对数据表进行分组聚合操作,最后,综合各自生成的目标数据表,组合得到一个总数据表。由此,提升方案的可行性和可操作性。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
第一设备获取第一原始数据表与第二原始数据表之间的标识交集,其中,第一原始数据表存储于第一设备,第二原始数据表存储于第二设备;
第一设备根据标识交集,从第一原始数据表中获取第一数据表,其中,第一数据表的第一标识字段对应于标识交集,标识交集还用于从第二原始数据表中获取第二数据表,第二数据表的第二标识字段对应于标识交集。
在一个或多个实施例中,介绍了一种基于PSI实现隐私集合求交的方式。由前述实施例可知,第一设备存储有第一原始数据表,第二设备存储有第二原始数据表,其中,第一原始数据表和第二原始数据表均包括标识字段。
具体地,为了便于理解,请参阅表1,表1为第一原始数据表的一个示意。
表1
T1.id | T1.value | T1.col |
1 | 3 | A |
2 | 4 | B |
3 | 5 | C |
4 | 6 | C |
5 | 9 | D |
6 | 8 | D |
请参阅表2,表2为第二原始数据表的一个示意。
表2
T2.id | T2.value | T2.col |
2 | 7 | C |
3 | 8 | C |
4 | 9 | D |
5 | 10 | D |
6 | 11 | D |
基于此,将第一原始数据表的“T1.id”和第二原始数据表的“T2.id”作为输入,并运行PSI方案,从而得到标识交集(即,T),即,T=T1.id∩T2.id。第一设备根据标识交集的元素对第一原始数据表进行筛选,在本地筛选id属于标识交集的数据行,从而构成第一数据表,并可以进一步按照T1.col对第一数据表进行排序。类似地,第二设备根据标识交集的元素对第二原始数据表进行筛选,在本地筛选id属于标识交集的数据行,从而构成第二数据表,并可以进一步按照T2.col对第二数据表进行排序。
请参阅表3,表3为基于表1所示第一原始数据表生成的第一数据表的一个示意。
表3
T1.id | T1.value | T1.col |
2 | 4 | B |
3 | 5 | C |
4 | 6 | C |
5 | 9 | D |
6 | 8 | D |
请参阅表4,表4为基于表2所示第二原始数据表生成的第二数据表的一个示意。
表4
其次,本申请实施例中,提供了一种基于PSI实现隐私集合求交的方式。通过上述方式,能够实现在双方设备不泄露额外信息的情况下,求得双方输入集合的交集,从而提升数据交互的安全性和可靠性。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备根据第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,具体可以包括:
第一设备从第一分组聚合语句中获取第一分组字段,其中,第一分组字段对应于至少一类组别信息,第一分组字段包含于第一预设字段;
第一设备根据第一分组字段所包括的至少一类组别信息,生成K个分组结果,其中,K个分组结果中的同一个分组结果具有相同的组别信息。
在一个或多个实施例中,介绍了一种基于分组字段对数据表进行分组的方式。由前述实施例可知,第一设备存储有第一数据表,第一数据表可包括第一分组字段和第一标识字段,其中,第一分组字段对应于至少一类组别信息。
具体地,为了便于理解,请再次参阅表3,第一分组字段为“T1.col”,与“T1.col”关联的组别信息包括“B”、“C”和“D”。由此,将组别信息均为“B”的数据行作为一个分组结果,将组别信息均为“C”的数据行作为一个分组结果,并将组别信息均为“D”的数据行作为一个分组结果。
其次,本申请实施例中,提供了一种基于分组字段对数据表进行分组的方式。通过上述方式,为方案实现提供了具体的实现方式,从而提升方案的可行性和可操作性。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,具体可以包括:
第一设备向第二设备发送K个分组结果,以使第二设备根据K个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到K个聚合结果。
在一个或多个实施例中,介绍了一种一次性传输分组结果的方式。由前述实施例可知,一种情况下,T=K,即,得到的K个分组结果无需进行拆分,由此,第一设备向第二发送发送K个分组结果。
具体地,示例性地,假设K个分组结果包括第一分组结果和第二分组结果。为了便于理解,请参阅表5,表5为第一数据表的一个示意。
表5
假设第一分组结果包括T1.col为“A”的4个标识信息(即,id),那么第一设备向第二设备发送的第一分组结果包括id=1,id=3,id=4,id=6。由此,第二设备根据这4个标识信息,对第二数据表进行分组聚合处理,从而得到第一聚合结果。
假设第二分组结果包括T1.col为“B”的3个标识信息,那么第一设备向第二设备发送的第二分组结果包括id=2,id=5,id=7。由此,第二设备根据这3个标识信息,对第二数据表进行分组聚合处理,从而得到第二聚合结果。
其次,本申请实施例中,提供了一种一次性传输分组结果的方式。通过上述方式,第一设备可直接将K个分组结果发送至第二设备,无需对分组结果进行处理,由此,节省数据处理资源,提升处理效率。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,K个分组结果包括第一分组结果;
第一设备向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,具体可以包括:
第一设备将第一分组结果划分为若干个分组结果,其中,若干个分组结果中的各个分组结果所包括的标识信息不重合;
第一设备向第二设备发送各个分组结果,以使第二设备根据各个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果。
在一个或多个实施例中,介绍了一种多批次传输分组结果的方式。由前述实施例可知,一种情况下,T>K,即,得到的K个分组结果需要进行拆分,由此,第一设备向第二发送发送T个分组结果。
具体地,示例性地,假设K个分组结果包括第一分组结果。为了便于理解,请再次参阅表5,假设第一分组结果包括T1.col为“A”的4个标识信息(即,id),此时,第一设备可以将第一分组结果随机拆分为若干个分组结果,且,各个分组结果所包括的标识信息不重合。例如,第一分组结果拆分为两个分组结果,其中,一个分组结果包括T1.col为“A”的id=1,另一个分组结果包括T1.col为“A”的id=3,id=4,id=6。
其次,本申请实施例中,提供了一种多批次传输分组结果的方式。通过上述方式,由第一设备对K个分组结果作进一步拆分,避免一次性传输一个完整的分组结果,从而防止泄露分组结果中的标识信息,进而增强了安全数据分析的能力。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备接收第二设备发送的T个聚合结果,具体可以包括:
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和聚合数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
在一个或多个实施例中,介绍了一种对原始组别信息进行加密传输的方式。由前述实施例可知,第一设备存储有第一数据表,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“T2.col”)和第二值字段(即,“T2.value”)。
可以理解的是,本申请以采用hash函数对原始组别信息进行加密为例进行介绍,然而这不应理解为对本申请的限定。基于hash函数,可定义为hash(key),其中,key表示元素的键值,hash(key)的值则表示经过散列函数计算得到的散列值。
具体地,以对第二数据表中的原始组别信息进行加密为例,为了便于说明,请再次参阅表4,基于此,第二设备可采用hash函数对第二分组字段(即,“T2.col”)对应的各个原始组别信息进行加密。请参阅表6,表6为对表4中各个原始组别信息进行hash函数计算后得到的第二数据表的一个示意。
表6
T2.id | T2.value | T2.col |
2 | 7 | hash(C) |
3 | 8 | hash(C) |
4 | 9 | hash(D) |
5 | 10 | hash(D) |
6 | 11 | hash(D) |
由表6可知,第二分组字段(即,“T2.col”)对应的目标组别信息包括hash(C)和hash(D)。第二值字段(即,“T2.value”)对应的原始数值包括“7”、“8”、“9”、“10”和“11”。
其次,本申请实施例中,提供了一种对原始组别信息进行加密传输的方式。通过上述方式,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,从而防止原始组别信息的泄露,进而增强了安全数据分析的能力。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备接收第二设备发送的T个聚合结果,具体可以包括:
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括原始组别信息和目标数值,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,原始组别信息对应于第二数据表的第二分组字段。
在一个或多个实施例中,介绍了一种对原始数值进行加密传输的方式。由前述实施例可知,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“T2.col”)和第二值字段(即,“T2.value”),第二设备在接收到第一设备发送的T个分组结果,并进行分组聚合之后,可得到聚合字段(即,T2.sum)。
可以理解的是,第一设备执行密钥生成(Gen)算法,生成一对公私钥(pkA,skA),其中,pkA为第一设备生成的公钥,skA为第一设备生成的私钥,第一设备公开公钥pkA。类似地,第二设备执行Gen算法,生成一对公私钥(pkB,skB),其中,pkB为第二设备生成的公钥,skB为第二设备生成的私钥,第二设备公开公钥pkB。
具体地,以对聚合数值进行加密为例,为了便于说明,请再次参阅表4,基于此,第二设备可采用公钥pkB对聚合字段(即,T2.sum)对应的各个聚合数值进行加密。请参阅表7,表7为对表4所示第二数据表中各个原始数值进行分组聚合之后,得到的一个数据表示意。
表7
T2.id | T2.sum | T2.col |
2 | [7]pk<sub>B</sub> | C |
3 | [8]pk<sub>B</sub> | C |
4 | [9]pk<sub>B</sub> | D |
5 | [10]pk<sub>B</sub> | D |
6 | [11]pk<sub>B</sub> | D |
由表7可知,聚合字段(即,T2.sum)对应的目标数值包括[7]pkB、[8]pkB、[9]pkB、[10]pkB和[11]pkB。第二分组字段(即,“T2.col”)对应的原始组别信息包括“C”和“D”。
可以理解的是,第一设备向第二设备发送的分组结果中包括id=2和id=3,基于表4,得到聚合数值为15(即,7+8=15),因此,该聚合数值对应的目标数值为[15]pkB。
其次,本申请实施例中,提供了一种对原始数值进行加密传输的方式。通过上述方式,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始数值的泄露,进而增强了安全数据分析的能力。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备接收第二设备发送的T个聚合结果,具体可以包括:
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
在一个或多个实施例中,介绍了一种对原始组别信息和原始数值进行加密传输的方式。由前述实施例可知,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“T2.col”)和第二值字段(即,“T2.value”),第二设备在接收到第一设备发送的T个分组结果,并进行分组聚合之后,可得到聚合字段(即,T2.sum)。
可以理解的是,本申请以采用hash函数对原始组别信息进行加密为例进行介绍,然而这不应理解为对本申请的限定。第一设备执行Gen)算法,生成一对公私钥(pkA,skA),第二设备执行Gen算法,生成一对公私钥(pkB,skB)。
具体地,以对原始组别信息和聚合数值进行加密为例,为了便于说明,请再次参阅表4,基于此,第二设备可采用hash函数对第二分组字段(即,“T2.col”)对应的各个原始组别信息进行加密,并采用公钥pkB对聚合字段(即,T2.sum)对应的各个聚合数值进行加密。请参阅表8,表8为对表4所示第二数据表中各个原始组别信息进行hash函数计算,并对第二数据表中各个原始数值进行分组聚合之后得到的一个数据表示意。
表8
由表8可知,第二分组字段(即,“T2.col”)对应的目标组别信息包括hash(C)和hash(D)。聚合字段(即,T2.sum)对应的目标数值包括[7]pkB、[8]pkB、[9]pkB、[10]pkB和[11]pkB。
其次,本申请实施例中,提供了一种对原始组别信息和原始数值进行加密传输的方式。通过上述方式,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,与此同时,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始组别信息和原始数值的泄露,进而增强了安全数据分析的能力。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
若第一聚合结果与第二聚合结果包括相同的目标组别信息,则第一设备基于同态加密算法,对第一聚合结果和第二聚合结果中的目标数值进行加和,得到加密数值。
在一个或多个实施例中,介绍了一种对多个目标数值进行同态加密的方式。由前述实施例可知,第一设备基于第一分组字段(即,“T1.col”)对第一数据表进行分组,得到K个分组结果,基于此,第一设备和第二设备可根据K个分组结果进行交互。
具体地,为了便于理解,请参阅表9,表9为第一数据表的一个示意。
表9
T1.id | T1.value | T1.col |
2 | 4 | B |
3 | 5 | C |
4 | 6 | C |
5 | 9 | D |
6 | 8 | D |
其中,第一设备对“T1.col”进行分组,可得到三个分组结果,分别为T1.col=B,T1.col=C和T1.col=D。
为了便于理解,请参阅表10,表10为第二数据表的一个示意。
表10
T2.id | T2.value | T2.col |
2 | 7 | C |
3 | 8 | C |
4 | 9 | D |
5 | 10 | D |
6 | 11 | D |
示例性地,请参阅图11,图11为本申请实施例中第一设备与第二设备进行信息交互的一个示意图,如图所示,当T1.col=B时,第一设备选取T1.id={2}发送给第二设备。第二设备根据T1.id={2}和第二数据表进行索引,得到数据行(2,7,C)。基于此,第二设备可计算得到[7]pkB,然后向第一设备发送聚合结果(hash(C),[7]pkB)。
示例性地,请参阅图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)。
示例性地,请参阅图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)),于是,第一设备可采用同态加密的方式计算目标数值之和:
[10]pkB⊕[11]pkB=[10+11]pkB
其中,⊕表示在密文域上的加法运算,例如,采用Paillier算法,该运算为标准的乘法。
基于此,第一设备得到(hash(D),[21]pkB)。[21]pkB表示加密数值。
可以理解的是,第一设备每收到一个聚合结果,需要检查是否存在相同的目标组别信息(或,原始组别信息),如果有,则采用同态加密的方式计算聚合结果中目标数值之和,并更新目标数值之和,即:
(Lt,Rest)←(Lt,Rest⊕Resj);
并丢弃(Lj,Resj)。其中,Lt表示第一聚合结果中的目标组别信息(或,原始组别信息)。Rest表示第一聚合结果中的目标数值。Lj表示第二聚合结果中的目标组别信息(或,原始组别信息)。Resj表示第二聚合结果中的目标数值。
再次,本申请实施例中,提供了一种对多个目标数值进行同态加密的方式。通过上述方式,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备根据T个聚合结果和T个分组结果,生成第一目标数据表,具体可以包括:
第一设备根据T个聚合结果,获取R个加密数值,其中,R为大于或等于1,且小于或等于T的整数;
第一设备向第二设备发送R个加密数值,以使第二设备采用私钥对R个加密数值进行解密,得到R个解密数值,其中,私钥与公钥为第二设备生成的;
第一设备接收第二设备发送的R个解密数值;
第一设备根据R个解密数值和T个分组结果,生成第一目标数据表。
在一个或多个实施例中,介绍了一种基于同态加密算法进行解密的方式。由前述实施例可知,第一设备接收第二发送的T个聚合结果,以上述实施例为例,第一设备对T个聚合结果中具有相同目标组别信息(或,原始组别信息)进行同态加法,从而得到R个加密数值以及每个加密数值所对应的目标组别信息(或,原始组别信息)。
具体地,假设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)。
基于此,第一设备接收R个解密数值,然后根据R个解密数值、每个解密数值对应的目标组别信息(或,原始组别信息)以及T个分组结果,生成第一目标数据表。
需要说明的是,第二设备可基于第二分组聚合语句,采用类似方式得到对应的第二目标数据表。由此,第一设备公开第一目标数据表,第二设备公开第一目标数据表,基于此,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
进一步地,本申请实施例中,提供了一种基于同态加密算法进行解密的方式。通过上述方式,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备接收第二设备发送的T个聚合结果,具体可以包括:
第一设备接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和第一目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,第一目标数值为第一原始数值与第一随机数值之和,目标组别信息对应于第二数据表的第二分组字段,第一原始数值对应于第二数据表的第二值字段;
第一设备接收第二设备发送的第二聚合结果,其中,第二聚合结果包括目标组别信息和第二目标数值,第二目标组别信息为第二设备对第二原始组别信息进行加密后得到的,第二目标数值为第二原始数值与第二随机数值之和,第二目标组别信息对应于第二数据表的第二分组字段,第二原始数值对应于第二数据表的第二值字段。
在一个或多个实施例中,介绍了一种基于OT协议实现数据加密的方式。由前述实施例可知,第一设备存储有第一数据表,第二设备存储有第二数据表,其中,第二数据表包括第二分组字段(即,“T2.col”)和第二值字段(即,“T2.value”),目标组别信息对应于第二分组字段(即,“T2.col”),第一原始数值和第二原始数值均对应于第二值字段(即,“T2.value”)。
具体地,以第二设备向第一设备发送第一聚合结果和第二聚合结果为例,其中,第一聚合结果包括目标组别信息(或,原始组别信息)和第一目标数值(即,Res’j),第一目标数值(即,Res’j)为第一原始数值(即,Resj)与第一随机数值(即,rj)之和,即,Res’j=Resj+rj。类似地,第二聚合结果包括目标组别信息(或,原始组别信息)和第二目标数值(即,Res’i),第二目标数值(即,Res’i)为第二原始数值(即,Resi)与第二随机数值(即,ri)之和,即,Res’i=Resi+ri。
由此,第一设备可直接计算第一目标数值(即,Res’j)与第二目标数值(即,Res’i)。之和,即,得到Resj+Resi+rj+ri。这里的加法是指有限域上的加法,计算开销较低。
其次,本申请实施例中,提供了一种基于OT协议实现数据加密的方式。通过上述方式,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于OT协议传输数据的计算开销较低,从而提升方案的实用性。
可选地,在上述图4对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,第一设备根据T个聚合结果和T个分组结果,生成第一目标数据表,具体可以包括:
第一设备基于不经意传输协议,获取来源于第二设备的随机数总和,其中,随机数总和为第1个至第N个随机数值之和,N为大于1的整数;
第一设备从第一聚合结果中获取第一目标数值,并从第二聚合结果中获取第二目标数值;
第一设备根据第一目标数值、第二目标数值、随机数总和和历史随机总数,确定目标原始数值,其中,历史随机总数为第1个至第M个随机数值之和,M为大于或等于1,且小于N的整数;
第一设备根据目标原始数值、目标组别信息和T个分组结果,生成第一目标数据表。
在一个或多个实施例中,介绍了一种基于OT协议实现数据解密的方式。由前述实施例可知,第一设备在获取到对应同样目标组别信息(或,原始组别信息)的各个目标数值之和,无需让第二设备进行解密。第一设备获取到的各个目标数值之和可以是(Lt,Rest+rt),或者,(Lt,Rest+Rest+1+…+Rest+k+rt+rt+1+…+rt+k)。对于第一设备而言,为了恢复结果,实际上就是需要知道第二设备生成的随机数总和,即可使用基于OT的秘密分享方案来实现。
具体地,为了便于理解,请参阅图15,图15为本申请实施例中基于不经意传输实现数据分享的一个示意图,如图所示,假设第一设备最终获得R个聚合结果,第一设备与第二设备进行T次交互,其中,R小于或等于T。因此,第二设备构造一个长度为T的序列S,Si=r1+r2+…+ri。假设第一设备需要知道rt+rt+1+…+rt+k,而此时,第一设备已经知道历史随机总数St-1=r1+r2+…+rt-1,因为历史随机总数会应用于上一次聚合结果的解密中。
基于此,第一设备和第二设备基于OT协议,第一设备选择第t+k个值,那么第一设备就知道了随机数总和St+k,第一设备计算随机数总和St+k(即,rt+rt+1+…+rt+k)与历史随机总数St-1(即,r1+r2+…+rt-1)之差,即可得到rt+rt+1+…+rt+k。解密时,将各个目标数值之和(例如,第一目标数值和第二目标数值之和)与rt+rt+1+…+rt+k相减,得到目标原始数值Rest+Rest+1+…+Rest+k。
可以理解的是,为了便于理解,上述示例中的t+k为N,因此,随机数总和rt+rt+1+…+rt+k为第1个至第N个随机数值之和。上述示例中的t-1为M,因此,历史随机总数r1+r2+…+rt-1为第1个至第M个随机数值之和。
需要说明的是,第二设备可基于第二分组聚合语句,采用类似方式得到对应的第二目标数据表。由此,第一设备公开第一目标数据表,第二设备公开第一目标数据表,基于此,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
再次,本申请实施例中,提供了一种基于OT协议实现数据解密的方式。通过上述方式,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于OT协议传输数据的计算开销较低,从而提升方案的实用性。
下面对本申请中的数据聚合装置进行详细描述,数据聚合装置应用于第一设备,第一设备存储第一数据表。请参阅图16,图16为本申请实施例中数据聚合装置一个实施例示意图,数据聚合装置30包括:
获取模块310,用于获取第一分组聚合语句,其中,第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
处理模块320,用于根据第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,其中,K个分组结果中的每个分组结果包括标识信息,K个分组结果用于生成T个分组结果,K为大于或等于1的整数,T为大于或等于K的整数;
发送模块330,用于向第二设备发送T个分组结果,以使第二设备根据T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,其中,第二数据表存储于第二设备;
接收模块340,用于接收第二设备发送的T个聚合结果;
生成模块350,用于根据T个聚合结果和T个分组结果,生成第一目标数据表,其中,第一目标数据表包括针对第一预设字段的分组聚合结果。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,将数据表存储在设备本地,基于此,设备可根据分组聚合语句对本地的数据表进行处理,设备之间可以互传数据表的处理结果,从而实现数据的分组聚合。由于各个设备独立对本地数据表进行处理,因此,一方面从根源上避免了数据泄露的风险,另一方面,整个过程无需触发人工审核,由此节省了数据维护成本。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
获取模块310,具体用于获取原始分组聚合语句,其中,原始分组聚合语句包括第一值字段和第二值字段,第一值字段属于第一数据表,第二值字段属于第二数据表;
根据原始分组聚合语句生成第一分组聚合语句,其中,第一分组聚合语句包括第二值字段,且,第二值字段包含于第一预设字段,原始分组聚合语句还用于第二设备生成第二分组聚合语句,第二分组聚合语句包括第一值字段,且,第一值字段包含于第二预设字段。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,考虑到在联合分组的情况下,直接对多方数据列进行聚合的操作较为复杂,因此,可拆分对单方数据列进行聚合,从而降低操作的复杂度。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
接收模块340,还用于接收第二设备发送的P个分组结果,其中,P个分组结果为第二设备根据第二分组聚合语句,对第二数据表进行分组处理后得到的,P个分组结果中的每个分组结果包括标识信息,P为大于或等于1的整数;
处理模块320,还用于根据P个分组结果中每个分组结果所包括的标识信息,对第一数据表进行分组聚合处理,得到P个聚合结果;
发送模块330,还用于向第二设备发送P个聚合结果,以使第二设备根据P个聚合结果和P个分组结果,生成第二目标数据表,其中,第二目标数据表包括第一数据表和第二数据表针对第二预设字段的聚合结果;
接收模块340,还用于接收第二设备发送的第二目标数据表;
生成模块350,还用于根据T个聚合结果和T个分组结果,生成第一目标数据表之后,对第一目标数据表和第二目标数据表进行组合,得到总数据表。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,不同参与方(即,设备)分别基于拆分得到的分组聚合语句,对数据表进行分组聚合操作,最后,综合各自生成的目标数据表,组合得到一个总数据表。由此,提升方案的可行性和可操作性。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
获取模块310,还用于获取第一原始数据表与第二原始数据表之间的标识交集,其中,第一原始数据表存储于第一设备,第二原始数据表存储于第二设备;
获取模块310,还用于根据标识交集,从第一原始数据表中获取第一数据表,其中,第一数据表的第一标识字段对应于标识交集,标识交集还用于从第二原始数据表中获取第二数据表,第二数据表的第二标识字段对应于标识交集。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,能够实现在双方设备不泄露额外信息的情况下,求得双方输入集合的交集,从而提升数据交互的安全性和可靠性。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
处理模块320,具体用于从第一分组聚合语句中获取第一分组字段,其中,第一分组字段对应于至少一类组别信息,第一分组字段包含于第一预设字段;
根据第一分组字段所包括的至少一类组别信息,生成K个分组结果,其中,K个分组结果中的同一个分组结果具有相同的组别信息。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,为方案实现提供了具体的实现方式,从而提升方案的可行性和可操作性。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
发送模块330,具体用于向第二设备发送K个分组结果,以使第二设备根据K个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到K个聚合结果。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,第一设备可直接将K个分组结果发送至第二设备,无需对分组结果进行处理,由此,节省数据处理资源,提升处理效率。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
发送模块330,具体用于将第一分组结果划分为若干个分组结果,其中,若干个分组结果中的各个分组结果所包括的标识信息不重合;
向第二设备发送各个分组结果,以使第二设备根据各个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,由第一设备对K个分组结果作进一步拆分,避免一次性传输一个完整的分组结果,从而防止泄露分组结果中的标识信息,进而增强了安全数据分析的能力。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和聚合数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,从而防止原始组别信息的泄露,进而增强了安全数据分析的能力。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括原始组别信息和目标数值,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,原始组别信息对应于第二数据表的第二分组字段。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始数值的泄露,进而增强了安全数据分析的能力。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,目标数值为第二设备采用公钥对聚合数值进行加密后得到的,目标组别信息对应于第二数据表的第二分组字段。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,可对数据表中的每个原始组别信息生成一个随机数,使用随机数保护原始组别信息,与此同时,可采用公钥对数据表中的每个原始数值进行加密,从而防止原始组别信息和原始数值的泄露,进而增强了安全数据分析的能力。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
处理模块320,还用于若第一聚合结果与第二聚合结果包括相同的目标组别信息,则基于同态加密算法,对所述第一聚合结果和所述第二聚合结果中的目标数值进行加和,得到加密数值。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
生成模块350,具体用于根据T个聚合结果,获取R个加密数值,其中,R为大于或等于1,且小于或等于T的整数;
向第二设备发送R个加密数值,以使第二设备采用私钥对R个加密数值进行解密,得到R个解密数值,其中,私钥与公钥为第二设备生成的;
接收第二设备发送的R个解密数值;
根据R个解密数值和T个分组结果,生成第一目标数据表。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,使用同态加密对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
接收模块340,具体用于接收第二设备发送的第一聚合结果,其中,第一聚合结果包括目标组别信息和第一目标数值,目标组别信息为第二设备对原始组别信息进行加密后得到的,第一目标数值为第一原始数值与第一随机数值之和,目标组别信息对应于第二数据表的第二分组字段,第一原始数值对应于第二数据表的第二值字段;
接收第二设备发送的第二聚合结果,其中,第二聚合结果包括目标组别信息和第二目标数值,第二目标组别信息为第二设备对第二原始组别信息进行加密后得到的,第二目标数值为第二原始数值与第二随机数值之和,第二目标组别信息对应于第二数据表的第二分组字段,第二原始数值对应于第二数据表的第二值字段。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于OT协议传输数据的计算开销较低,从而提升方案的实用性。
可选地,在上述图16所对应的实施例的基础上,本申请实施例提供的数据聚合装置20的另一实施例中,
生成模块350,具体用于基于不经意传输协议,获取来源于第二设备的随机数总和,其中,随机数总和为第1个至第N个随机数值之和,N为大于1的整数;
从第一聚合结果中获取第一目标数值,并从第二聚合结果中获取第二目标数值;
根据第一目标数值、第二目标数值、随机数总和和历史随机总数,确定目标原始数值,其中,历史随机总数为第1个至第M个随机数值之和,M为大于或等于1,且小于N的整数;
根据目标原始数值、目标组别信息和T个分组结果,生成第一目标数据表。
本申请实施例中,提供了一种数据聚合装置。采用上述装置,一方面能够对聚合结果进行保护,避免了他人通过聚合结果进行反推,造成隐私泄漏的风险,由此,增强了安全数据分析的能力。另一方面,基于OT协议传输数据的计算开销较低,从而提升方案的实用性。
本申请提供了一种数据聚合装置,可部署于服务器。为了便于理解,请参阅图17,图17是本申请实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。
服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图17所示的服务器结构。
本申请提供了一种数据聚合装置,可部署于终端。为了便于理解,请参阅图18,如图18所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。在本申请实施例中,以终端为智能手机为例进行说明:
图18示出的是与本申请实施例提供的终端相关的智能手机的部分结构的框图。参考图18,智能手机包括:射频(radio frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,WiFi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图18中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图18对智能手机的各个构成部件进行具体的介绍:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noiseamplifier,LNA)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystem of mobile communication,GSM)、通用分组无线服务(general packet radioservice,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与智能手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及智能手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(liquidcrystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图18中,触控面板531与显示面板541是作为两个独立的部件来实现智能手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现智能手机的输入和输出功能。
智能手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在智能手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与智能手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一智能手机,或者将音频数据输出至存储器520以便进一步处理。
WiFi属于短距离无线传输技术,智能手机通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图18示出了WiFi模块570,但是可以理解的是,其并不属于智能手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器580是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行智能手机的各种功能和处理数据。可选的,处理器580可包括一个或多个处理单元;可选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
智能手机还包括给各个部件供电的电源590(比如电池),可选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
上述实施例中由终端所执行的步骤可以基于该图18所示的终端结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种数据聚合的方法,其特征在于,所述方法应用于第一设备,所述第一设备存储第一数据表,所述方法包括:
获取第一分组聚合语句,其中,所述第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
根据所述第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,其中,所述K个分组结果中的每个分组结果包括标识信息,所述K个分组结果用于生成T个分组结果,所述K为大于或等于1的整数,所述T为大于或等于所述K的整数;
向第二设备发送所述T个分组结果,以使所述第二设备根据所述T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,其中,所述第二数据表存储于所述第二设备;
接收所述第二设备发送的所述T个聚合结果;
根据所述T个聚合结果和所述T个分组结果,生成第一目标数据表,其中,所述第一目标数据表包括针对所述第一预设字段的分组聚合结果。
2.根据权利要求1所述的方法,其特征在于,所述获取第一分组聚合语句,包括:
获取原始分组聚合语句,其中,所述原始分组聚合语句包括第一值字段和第二值字段,所述第一值字段属于所述第一数据表,所述第二值字段属于所述第二数据表;
根据所述原始分组聚合语句生成所述第一分组聚合语句,其中,所述第一分组聚合语句包括所述第二值字段,且,所述第二值字段包含于所述第一预设字段,所述原始分组聚合语句还用于所述第二设备生成第二分组聚合语句,所述第二分组聚合语句包括所述第一值字段,且,所述第一值字段包含于第二预设字段。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述第二设备发送的P个分组结果,其中,所述P个分组结果为所述第二设备根据所述第二分组聚合语句,对所述第二数据表进行分组处理后得到的,所述P个分组结果中的每个分组结果包括标识信息,所述P为大于或等于1的整数;
根据所述P个分组结果中每个分组结果所包括的标识信息,对所述第一数据表进行分组聚合处理,得到P个聚合结果;
向所述第二设备发送所述P个聚合结果,以使所述第二设备根据所述P个聚合结果和所述P个分组结果,生成第二目标数据表,其中,所述第二目标数据表包括所述第一数据表和所述第二数据表针对所述第二预设字段的聚合结果;
接收所述第二设备发送的所述第二目标数据表;
所述根据所述T个聚合结果和所述T个分组结果,生成第一目标数据表之后,所述方法还包括:
对所述第一目标数据表和所述第二目标数据表进行组合,得到总数据表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第一原始数据表与第二原始数据表之间的标识交集,其中,所述第一原始数据表存储于所述第一设备,所述第二原始数据表存储于所述第二设备;
根据所述标识交集,从所述第一原始数据表中获取所述第一数据表,其中,所述第一数据表的第一标识字段对应于所述标识交集,所述标识交集还用于从所述第二原始数据表中获取所述第二数据表,所述第二数据表的第二标识字段对应于所述标识交集。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,包括:
从所述第一分组聚合语句中获取第一分组字段,其中,所述第一分组字段对应于至少一类组别信息,所述第一分组字段包含于所述第一预设字段;
根据所述第一分组字段所包括的所述至少一类组别信息,生成所述K个分组结果,其中,所述K个分组结果中的同一个分组结果具有相同的组别信息。
6.根据权利要求1所述的方法,其特征在于,所述向第二设备发送所述T个分组结果,以使所述第二设备根据所述T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,包括:
向第二设备发送所述K个分组结果,以使所述第二设备根据所述K个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到K个聚合结果。
7.根据权利要求1所述的方法,其特征在于,所述向第二设备发送所述T个分组结果,以使所述第二设备根据所述T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,包括:
将所述第一分组结果划分为若干个分组结果,其中,所述若干个分组结果中的各个分组结果所包括的标识信息不重合;
向第二设备发送所述各个分组结果,以使所述第二设备根据所述各个分组结果所包括的标识信息,对所述第二数据表进行分组聚合处理,得到所述T个聚合结果。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述接收所述第二设备发送的所述T个聚合结果,包括:
接收所述第二设备发送的第一聚合结果,其中,所述第一聚合结果包括目标组别信息和聚合数值,所述目标组别信息为所述第二设备对原始组别信息进行加密后得到的,所述目标组别信息对应于所述第二数据表的第二分组字段。
9.根据权利要求1所述的方法,其特征在于,所述接收所述第二设备发送的所述T个聚合结果,包括:
接收所述第二设备发送的第一聚合结果,其中,所述第一聚合结果包括原始组别信息和目标数值,所述目标数值为所述第二设备采用公钥对聚合数值进行加密后得到的,所述原始组别信息对应于所述第二数据表的第二分组字段。
10.根据权利要求1所述的方法,其特征在于,所述接收所述第二设备发送的所述T个聚合结果,包括:
接收所述第二设备发送的第一聚合结果,其中,所述第一聚合结果包括目标组别信息和目标数值,所述目标组别信息为所述第二设备对原始组别信息进行加密后得到的,所述目标数值为所述第二设备采用公钥对聚合数值进行加密后得到的,所述目标组别信息对应于所述第二数据表的第二分组字段。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
若所述第一聚合结果与第二聚合结果包括相同的目标组别信息,则基于同态加密算法,对所述第一聚合结果和所述第二聚合结果中的目标数值进行加和,得到加密数值。
12.根据权利要求11所述的方法,其特征在于,所述根据所述T个聚合结果和所述T个分组结果,生成第一目标数据表,包括:
根据所述T个聚合结果,获取R个加密数值,其中,所述R为大于或等于1,且小于或等于所述T的整数;
向所述第二设备发送所述R个加密数值,以使所述第二设备采用私钥对所述R个加密数值进行解密,得到R个解密数值,其中,所述私钥与所述公钥为所述第二设备生成的;
接收所述第二设备发送的所述R个解密数值;
根据所述R个解密数值和所述T个分组结果,生成所述第一目标数据表。
13.根据权利要求1至7中任一项所述的方法,其特征在于,所述接收所述第二设备发送的所述T个聚合结果,包括:
接收所述第二设备发送的第一聚合结果,其中,所述第一聚合结果包括目标组别信息和第一目标数值,所述目标组别信息为所述第二设备对原始组别信息进行加密后得到的,所述第一目标数值为第一原始数值与第一随机数值之和,所述目标组别信息对应于所述第二数据表的第二分组字段,所述第一原始数值对应于所述第二数据表的第二值字段;
接收所述第二设备发送的第二聚合结果,其中,所述第二聚合结果包括所述目标组别信息和第二目标数值,所述第二目标组别信息为所述第二设备对第二原始组别信息进行加密后得到的,所述第二目标数值为第二原始数值与第二随机数值之和,所述第二目标组别信息对应于所述第二数据表的第二分组字段,所述第二原始数值对应于所述第二数据表的第二值字段。
14.根据权利要求13所述的方法,其特征在于,所述根据所述T个聚合结果和所述T个分组结果,生成第一目标数据表,包括:
基于不经意传输协议,获取来源于所述第二设备的随机数总和,其中,所述随机数总和为第1个至第N个随机数值之和,所述N为大于1的整数;
从所述第一聚合结果中获取所述第一目标数值,并从所述第二聚合结果中获取所述第二目标数值;
根据所述第一目标数值、所述第二目标数值、所述随机数总和和历史随机总数,确定目标原始数值,其中,所述历史随机总数为第1个至第M个随机数值之和,所述M为大于或等于1,且小于所述N的整数;
根据所述目标原始数值、所述目标组别信息和所述T个分组结果,生成所述第一目标数据表。
15.一种数据聚合装置,其特征在于,所述数据聚合装置应用于第一设备,所述第一设备存储第一数据表,所述数据聚合装置包括:
获取模块,用于获取第一分组聚合语句,其中,所述第一分组聚合语句用于请求根据第一预设字段对数据表进行分组聚合处理;
处理模块,用于根据所述第一分组聚合语句,对第一数据表进行分组处理,得到K个分组结果,其中,所述K个分组结果中的每个分组结果包括标识信息,所述K个分组结果用于生成T个分组结果,所述K为大于或等于1的整数,所述T为大于或等于所述K的整数;
发送模块,用于向第二设备发送所述T个分组结果,以使所述第二设备根据所述T个分组结果中每个分组结果所包括的标识信息,对第二数据表进行分组聚合处理,得到T个聚合结果,其中,所述第二数据表存储于所述第二设备;
接收模块,用于接收所述第二设备发送的所述T个聚合结果;
生成模块,用于根据所述T个聚合结果和所述T个分组结果,生成第一目标数据表,其中,所述第一目标数据表包括针对所述第一预设字段的分组聚合结果。
16.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至14中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
17.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至14中任一项所述的方法。
18.一种计算机程序产品,包括计算机程序和指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210181433.6A CN114547082B (zh) | 2022-02-25 | 2022-02-25 | 一种数据聚合的方法、相关装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210181433.6A CN114547082B (zh) | 2022-02-25 | 2022-02-25 | 一种数据聚合的方法、相关装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114547082A true CN114547082A (zh) | 2022-05-27 |
CN114547082B CN114547082B (zh) | 2024-09-27 |
Family
ID=81679712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210181433.6A Active CN114547082B (zh) | 2022-02-25 | 2022-02-25 | 一种数据聚合的方法、相关装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114547082B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115795547A (zh) * | 2022-12-09 | 2023-03-14 | 京信数据科技有限公司 | 用于查询数据的方法、装置、终端及计算机存储介质 |
CN115994161A (zh) * | 2023-03-21 | 2023-04-21 | 杭州金智塔科技有限公司 | 基于多方安全计算的数据聚合系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250519A (zh) * | 2016-08-04 | 2016-12-21 | 曙光信息产业(北京)有限公司 | 用于并行数据库的数据查询方法和装置 |
US20170147636A1 (en) * | 2015-11-20 | 2017-05-25 | Sap Se | First/last aggregation operator on multiple keyfigures with a single table scan |
US20170329823A1 (en) * | 2016-05-11 | 2017-11-16 | International Business Machines Corporation | Efficient multiple aggregation distinct processing |
EP3419211A1 (en) * | 2017-06-23 | 2018-12-26 | Flytxt B.V. | Privacy preserving computation protocol for data analytics |
CN110046181A (zh) * | 2019-03-13 | 2019-07-23 | 平安科技(深圳)有限公司 | 基于数据库分布式存储的数据路由的方法和装置 |
CN110442574A (zh) * | 2019-07-01 | 2019-11-12 | 上海赜睿信息科技有限公司 | 一种数据处理方法、电子设备和计算机可读存储介质 |
US20210256006A1 (en) * | 2019-06-11 | 2021-08-19 | Renmin University Of China | Hash multi-table join implementation method based on grouping vector |
CN113468208A (zh) * | 2021-07-19 | 2021-10-01 | 网易(杭州)网络有限公司 | 生成数据查询语句的方法和装置、服务器及存储介质 |
-
2022
- 2022-02-25 CN CN202210181433.6A patent/CN114547082B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170147636A1 (en) * | 2015-11-20 | 2017-05-25 | Sap Se | First/last aggregation operator on multiple keyfigures with a single table scan |
US20170329823A1 (en) * | 2016-05-11 | 2017-11-16 | International Business Machines Corporation | Efficient multiple aggregation distinct processing |
CN106250519A (zh) * | 2016-08-04 | 2016-12-21 | 曙光信息产业(北京)有限公司 | 用于并行数据库的数据查询方法和装置 |
EP3419211A1 (en) * | 2017-06-23 | 2018-12-26 | Flytxt B.V. | Privacy preserving computation protocol for data analytics |
CN110046181A (zh) * | 2019-03-13 | 2019-07-23 | 平安科技(深圳)有限公司 | 基于数据库分布式存储的数据路由的方法和装置 |
US20210256006A1 (en) * | 2019-06-11 | 2021-08-19 | Renmin University Of China | Hash multi-table join implementation method based on grouping vector |
CN110442574A (zh) * | 2019-07-01 | 2019-11-12 | 上海赜睿信息科技有限公司 | 一种数据处理方法、电子设备和计算机可读存储介质 |
CN113468208A (zh) * | 2021-07-19 | 2021-10-01 | 网易(杭州)网络有限公司 | 生成数据查询语句的方法和装置、服务器及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115795547A (zh) * | 2022-12-09 | 2023-03-14 | 京信数据科技有限公司 | 用于查询数据的方法、装置、终端及计算机存储介质 |
CN115795547B (zh) * | 2022-12-09 | 2023-07-21 | 京信数据科技有限公司 | 用于查询数据的方法、装置、终端及计算机存储介质 |
CN115994161A (zh) * | 2023-03-21 | 2023-04-21 | 杭州金智塔科技有限公司 | 基于多方安全计算的数据聚合系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114547082B (zh) | 2024-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3742323B1 (en) | Blockchain generating method, and related device and system | |
CN111475841B (zh) | 一种访问控制的方法、相关装置、设备、系统及存储介质 | |
US11394773B2 (en) | Cryptographic currency block chain based voting system | |
CN107145791B (zh) | 一种具有隐私保护的K-means聚类方法及系统 | |
Zhang et al. | Location privacy-preserving task recommendation with geometric range query in mobile crowdsensing | |
CN113395159A (zh) | 一种基于可信执行环境的数据处理方法以及相关装置 | |
CN108694668A (zh) | 数字资产交易方法、装置、介质以及设备 | |
US20150149763A1 (en) | Server-Aided Private Set Intersection (PSI) with Data Transfer | |
CN106850220A (zh) | 数据加密方法、数据解密方法及装置 | |
CN114547082B (zh) | 一种数据聚合的方法、相关装置、设备以及存储介质 | |
Yan et al. | Context-aware verifiable cloud computing | |
CN114039726B (zh) | 一种密钥生成的方法、密钥获取的方法、相关装置及介质 | |
CN115270163B (zh) | 数据处理方法、相关装置及存储介质 | |
CN114553612B (zh) | 数据加密、解密方法、装置、存储介质及电子设备 | |
CN114629649B (zh) | 基于云计算的数据处理方法、装置及存储介质 | |
Gupta et al. | Quest: Practical and oblivious mitigation strategies for COVID-19 using WiFi datasets | |
CN112231309A (zh) | 纵向联邦数据统计的去重方法、装置、终端设备及介质 | |
CN104639394B (zh) | 客户端使用人数的统计方法、装置和系统 | |
CN114758388A (zh) | 一种人脸识别方法、相关装置及存储介质 | |
CN117932685A (zh) | 基于纵向联邦学习的隐私数据处理方法及相关设备 | |
CN112231768A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN116506227B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Segal et al. | Privacy-Preserving Lawful Contact Chaining: [Preliminary Report] | |
CN106961386A (zh) | 一种签到服务中的位置隐私保护方法 | |
CN115225330B (zh) | 一种数据加密方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40072971 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |