CN112631767A - 数据处理方法、系统、装置、电子设备及可读存储介质 - Google Patents
数据处理方法、系统、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112631767A CN112631767A CN201911108626.3A CN201911108626A CN112631767A CN 112631767 A CN112631767 A CN 112631767A CN 201911108626 A CN201911108626 A CN 201911108626A CN 112631767 A CN112631767 A CN 112631767A
- Authority
- CN
- China
- Prior art keywords
- data
- configuration file
- task
- processed
- computing
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 111
- 238000004364 calculation method Methods 0.000 claims abstract description 68
- 239000012634 fragment Substances 0.000 claims description 85
- 238000000034 method Methods 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 16
- 239000008186 active pharmaceutical agent Substances 0.000 description 43
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000010130 dispersion processing Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/602—Providing cryptographic facilities or services
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种数据处理方法、系统、装置、电子设备及可读存储介质,旨在提高基于多方安全计算协议处理数据的处理效率。所述数据处理方法,应用于数据库引擎,所述方法包括:接收针对待处理数据的计算任务;根据预设拆分规则确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;根据所述计算任务和所述位置信息,生成第一配置文件;将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果。
Description
本公开要求在2019年10月09日提交至中华人民共和国知识产权局、申请号为2019109550300、发明名称为“数据处理方法、系统、装置、电子设备及可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、系统、装置、电子设备及可读存储介质。
背景技术
随着数据处理技术和互联网大数据业务的发展,以及用户生活方式和企业经营方式的逐渐变化,用户/企业的习惯、状态、信息等逐渐数据化。其中的部分数据属于用户/企业的私有数据,例如个人身份信息、个人消费信息、个人考试成绩、银行信用等级、客户统计信息等等。一方面,用户/企业通常不希望其他用户或其他企业能随意获得这些私有数据。另一方面,在某些情况下,用户/企业又希望利用其他用户或其他企业的私有数据进行数据处理。
为了在不泄露私有数据的前提下,安全地实现数据处理,相关技术中通常基于多方安全计算协议执行私有数据与私有数据之间的计算,或者执行私有数据与公共数据之间的计算。这期间,私有数据持有方的私有数据不会被泄露给参与数据处理的其他方。在数据处理完成后,仅最终结果会被发送给参与数据处理的各方,因此能达到保护私有数据安全的目的。
然而上述数据处理方式的处理效率较低,在计算量较大的情况下,通常需要消耗很长的计算时间。
发明内容
本申请实施例提供一种数据处理方法、系统、装置、电子设备及可读存储介质,旨在提高基于多方安全计算协议处理数据的处理效率。
本申请实施例第一方面提供了一种数据处理方法,应用于数据库引擎,所述方法包括:
接收针对待处理数据的计算任务;
根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;
根据所述计算任务和所述位置信息,生成第一配置文件;
将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
可选地,所述根据所述计算任务和所述位置信息,生成第一配置文件,包括:
针对每个数据分段,根据所述计算任务和该数据分段的所述位置信息,生成针对该数据分段的第一配置文件;
所述将所述第一配置文件发送给服务端,包括:
将多个第一配置文件发送给服务端。
可选地,所述服务端包括数据节点和多个计算节点,所述第一配置文件中包括:
提供所述数据分段的目标数据节点的信息;以及
针对所述数据分段,参与执行所述计算任务的第一计算节点信息。
可选地,针对所述数据分段,所述参与执行所述计算任务的第一计算节点的数量为至少2个。
可选地,所述方法还包括:
接收服务端返回的提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果。
可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果;所述提示信息用于表征所述数据分段已经被计算出对应的中间结果集。
可选地,所述方法还包括:
在接收到全部数据分段各自对应的提示信息后,向所述服务端发送携带有汇总任务的第二配置文件,使所述服务端根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第一配置文件中包括:用于缓存所述数据分段对应的中间结果的缓存节点信息;
所述第二配置文件中包括:
提供所述中间结果的缓存节点信息;以及
参与执行汇总任务的第二计算节点信息。
可选地,所述第二配置文件中还包括:
接收所述汇总结果的结果需求方信息。
可选地,所述第一配置文件中包括每个数据分段在所述待处理数据中的位置信息,所述第一配置文件中还包括针对中间结果的汇总任务;所述将所述第一配置文件发送给服务端,包括:
将包括所述汇总任务的第一配置文件发送给所述服务端,以通过所述服务端将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第一配置文件还包括:提供所述数据分段的目标数据节点的信息。
可选地,所述第一配置文件还包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息。
可选地,所述预设拆分规则包括以下任一种:
针对一个待处理数据,将所述待处理数据所包含的段数/行数进行平均拆分,每个待处理数据中包含平均拆分后的段/行;
针对一个待处理数据,将所述待处理数据按段/行划分,每个数据分段包含预设段数/行数。
可选地,若所述待处理数据包括多个待处理文件,所述预设拆分规则包括以下任一种:
将所述多个待处理文件的数量进行平均拆分,每个数据分段包含平均拆分后的待处理文件;
将所述多个待处理文件按数量划分,每个数据分段包含预设数量个待处理文件。
本申请实施例第二方面提供一种数据处理方法,应用于任务管理服务器,所述方法包括:
接收数据库引擎发送的第一配置文件,所述第一配置文件中包括计算任务和数据分段的位置信息,所述数据分段是待处理数据中的一部分,所述第一配置文件是所述数据库引擎根据预设拆分规则确定出每个数据分段在待处理数据中的位置信息后,根据所述位置信息和针对所述待处理数据的计算任务所生成的;
将所述第一配置文件提交给多个任务处理设备,以使多个任务处理设备针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
可选地,所述接收数据库引擎发送的第一配置文件,包括:
接收所述数据库引擎发送的多个第一配置文件,每个所述第一配置文件中包括一个数据分段的位置信息。
可选地,所述方法还包括:
接收提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果;
将所述提示信息发送给所述数据库引擎。
可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果,所述提示信息用于表征所述数据分段已经被计算出对应的中间结果集。
可选地,所述方法还包括:
接收数据库引擎发送的第二配置文件,所述第二配置文件是所述数据库引擎在接收到待处理数据的全部数据分段各自对应的提示信息后发送的,所述第二配置文件携带有汇总任务;
将所述第二配置文件发送给所述任务处理设备,使所述任务处理设备根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第二配置文件中包括:提供所述中间结果的缓存节点信息,以及参与执行汇总任务的第二计算节点信息;
所述将所述第二配置文件发送给所述任务处理设备,包括:
根据所述第二配置文件中包括的缓存节点信息,将所述第二配置文件发送给该缓存节点信息对应的缓存节点,使所述缓存节点将缓存的中间结果发送给该第二配置文件中包括的第二计算节点信息对应的第二计算节点;
将所述第二配置文件发送给该第二计算节点信息对应的第二计算节点,使所述第二计算节点在获得缓存节点缓存的中间结果后,根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第二配置文件中还包括:接收所述汇总结果的结果需求方信息。
可选地,所述方法还包括:
向缓存节点发送清除缓存指令,使所述缓存节点将缓存的中间结果清除。
可选地,所述第一配置文件中包括每个数据分段在所述待处理数据中的位置信息,所述第一配置文件中还包括针对中间结果的汇总任务;所述将所述第一配置文件提交给多个任务处理设备,包括:
将包括所述汇总任务的第一配置文件提交给多个任务处理设备,以通过多个任务处理设备将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第一配置文件中还包括:提供所述数据分段的目标数据节点的信息;所述将所述第一配置文件提交给多个任务处理设备,包括:
根据所述第一配置文件中包括的目标数据节点的信息,将所述第一配置文件发送给对应的目标数据节点。
可选地,所述第一配置文件中还包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息;述将所述第一配置文件提交给多个任务处理设备,包括:
根据所述第一配置文件中包括的第一计算节点信息,将所述第一配置文件发送给对应的第一计算节点;
根据所述第一配置文件中包括的第二计算节点信息,将所述第一配置文件发送给对应的第二计算节点。
本申请实施例第三方面提供一种数据处理系统,所述系统包括数据库引擎和任务管理服务器;
所述数据库引擎用于接收针对待处理数据的计算任务,根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息,根据所述计算任务和所述位置信息,生成第一配置文件,并将所述第一配置文件发送给所述任务管理服务器;
所述任务管理服务器用于接收所述数据库引擎发送的第一配置文件,并将该第一配置文件提交给多个任务处理设备,以通过所述多个任务处理设备并行执行所述各第一配置文件所携带的计算任务,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
可选地,所述预设拆分规则包括以下任一种:
针对一个待处理数据,将所述待处理数据所包含的段数/行数进行平均拆分,每个待处理数据中包含平均拆分后的段/行;
针对一个待处理数据,将所述待处理数据按段/行划分,每个数据分段包含预设段数/行数。
可选地,若所述待处理数据包括多个待处理文件,所述预设拆分规则包括以下任一种:
将所述多个待处理文件的数量进行平均拆分,每个数据分段包含平均拆分后的待处理文件;
将所述多个待处理文件按数量划分,每个数据分段包含预设数量个待处理文件。
可选地,所述任务处理设备包括:数据节点和多个计算节点;所述第一配置文件中包括提供所述数据分段的目标数据节点的信息,以及针对所述数据分段,参与执行所述计算任务的第一计算节点信息;所述任务管理服务器用于:
根据每个第一配置文件中包括的目标数据节点的信息,将该第一配置文件发送给该目标数据节点的信息对应的目标数据节点,使所述数据节点根据该第一配置文件中数据分段的位置信息,从所述待处理数据中获取该数据分段,并将该数据分段转换为密文形式的密文分片,再将该密文分片分发给该第一配置文件中包括的第一计算节点信息对应的第一计算节点;
根据每个第一配置文件中包括的第一计算节点信息,将该第一配置文件发送给该第一计算节点信息对应的第一计算节点,使所述第一计算节点在获得密文分片后,根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果。
可选地,针对一个第一配置文件,参与执行所述计算任务的第一计算节点的数量为至少2个。
可选地,所述任务管理服务器还用于:
接收所述计算节点返回的提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果;
将所述提示信息发送给所述数据库引擎。
可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果,所述提示信息用于表征所述数据分段已经被计算出对应的中间结果集。
可选地,所述数据库引擎还用于在接收到全部数据分段各自对应的提示信息后,向所述任务管理服务器发送第二配置文件,所述第二配置文件携带有汇总任务;
所述任务管理服务器还用于将所述第二配置文件发送给所述任务处理设备,使所述任务处理设备根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述任务处理设备还包括缓存节点,所述第一配置文件中包括:用于缓存所述数据分段对应的中间结果的缓存节点信息;
所述任务管理服务器用于根据每个第一配置文件中包括的第一计算节点信息,将该包括缓存节点信息的第一配置文件发送给该第一计算节点信息对应的第一计算节点,使所述第一计算节点在计算出所述数据分段的中间结果后,将所述中间结果缓存至所述缓存节点信息对应的缓存节点。
可选地,所述第二配置文件中包括:提供所述中间结果的缓存节点信息,以及参与执行汇总任务的第二计算节点信息;所述任务管理服务器用于:
根据所述第二配置文件中包括的缓存节点信息,将所述第二配置文件发送给该缓存节点信息对应的缓存节点,使所述缓存节点将缓存的中间结果发送给该第二配置文件中包括的第二计算节点信息对应的第二计算节点;
根据所述第二配置文件中包括的第二计算节点信息,将所述第二配置文件发送给该第二计算节点信息对应的第二计算节点,使所述第二计算节点在获得缓存节点缓存的中间结果后,根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第二配置文件中还包括:接收所述汇总结果的结果需求方信息。
可选地,所述任务管理服务器还用于:
向缓存节点发送清除缓存指令,使所述缓存节点将缓存的中间结果清除。
可选地,所述第一配置文件中包括每个数据分段在所述待处理数据中的位置信息,所述第一配置文件中还包括针对中间结果的汇总任务。
可选地,所述第一配置文件还包括:提供所述数据分段的目标数据节点的信息。
可选地,所述第一配置文件还包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息。
本申请实施例第四方面提供一种数据处理装置,所述处理装置包括:
计算任务接收模块,用于接收针对待处理数据的计算任务;
位置信息确定模块,根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;
第一配置文件生成模块,用于根据所述计算任务和所述位置信息,生成第一配置文件;
第一配置文件发送模块,用于将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
本申请实施例第五方面提供另一种数据处理装置,所述处理装置包括:
第一配置文件接收模块,用于接收数据库引擎发送的第一配置文件,所述第一配置文件中包括计算任务和数据分段的位置信息,所述数据分段是待处理数据中的一部分,所述第一配置文件是所述数据库引擎根据预设拆分规则确定出每个数据分段在待处理数据中的位置信息后,根据所述位置信息和针对所述待处理数据的计算任务所生成的;
第一配置文件提交模块,用于将所述第一配置文件提交给多个任务处理设备,以使多个任务处理设备针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
本申请实施例第六方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面或第二方面所述的方法中的步骤。
本申请实施例第七方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面或第二方面所述的方法的步骤。
采用本申请实施例提供的数据处理方法,服务端在根据数据库引擎发送的第一配置文件,将待处理数据被拆分成多个待处理的数据分段后,服务端针对待处理数据的多个数据分段并行地执行以下操作:获得各数据分段的多个密文分片,根据第一配置文件中的计算任务并基于多方安全计算协议,对各数据分段的多个密文分片进行密文计算,从而获得多个数据分段各自对应的中间结果。
如此,本申请将针对待处理数据的计算任务转换为针对多个数据分段并行执行的计算任务,可以快速获得多个数据分段各自对应的中间结果。这些中间结果再经基于多方安全计算协议的数据汇总计算后,得到待处理数据对应的汇总结果。如此,在保证待处理数据的数据安全、防止待处理数据泄露的条件下,提高了对待处理数据的处理效率,因此该数据处理方法更具实用性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的数据交互系统示意图;
图2是本申请一实施例提出的数据处理方法的流程图;
图3是本申请一实施例提出的数据节点DS分发密文分片的示意图;
图4是本申请一实施例提出的数据计算系统示意图;
图5是本申请另一实施例提出的数据计算系统示意图;
图6是本申请另一实施例提出的数据处理方法的流程图;
图7是本申请一实施例提供的数据处理装置的示意图;
图8是本申请另一实施例提供的数据处理装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,均应属于本申请保护的范围。
相关技术中,用户/企业的习惯、状态、信息等逐渐被数据化。其中的部分数据属于用户/企业的私有数据,例如个人身份信息、个人消费信息、个人考试成绩,例如企业的银行信用等级、客户统计信息等等。一方面,用户/企业通常不希望其他用户或其他企业能随意获得这些私有数据。另一方面,在某些情况下,用户/企业又希望利用其他用户或其他企业的私有数据进行数据处理。
为了在不泄露私有数据的前提下,安全地实现数据处理,相关技术中通常基于多方安全计算协议执行私有数据与私有数据之间的计算,或者执行私有数据与普通数据之间的计算。这期间,私有数据持有方的私有数据不会被泄露给参与数据处理的其他方。在数据处理完成后,仅最终结果会被发送给参与数据处理的各方,因此能达到保护私有数据安全的目的。
然而上述数据处理方式的处理效率较低,在计算量较大的情况下,通常需要消耗很长的计算时间。例如针对用户输入的一个结构化查询语句SQL(Structured QueryLanguage),以基于多方安全计算协议的方式执行该SQL语句的速度,远远低于以基于明文的计算方式执行该SQL语句的速度。
有鉴于此,本申请实施例提出至少一种数据处理方法,旨在提高基于多方安全计算协议处理私有数据的处理效率。参考图1,图1是本申请一实施例提出的数据交互系统示意图。如图1所示,处理系统主要包括客户端、数据库引擎以及服务端,所示服务端主要包括任务管理服务器、数据节点DS以及计算节点ES。其中,数据节点DS和计算节点ES的数量可以是多个,为了简化附图,图1中仅示出了一个数据节点DS和两个计算节点ES。
本申请实施例提供的数据处理方法的一种可能的应用场景可以是:针对持有大量私有数据、并可以基于这些私有数据向用户提供数据处理服务的企业。例如,银行持有多个用户各自的信用分数,多个用户各自的信用分数属于用户的私有数据。某科创企业在仅知道其自身信用分数的情况下,希望知道所有同类企业中,信用分数高于该科创企业的其他科创企业的总数。此种场景下,可利用本发明的数据交互系统,在不获知其他用户具体信用分数的情况下,获得信用分数高于该科创企业的其他科创企业的总数。具体地,该科创企业可以通过其控制的客户端输入用于查询其他科创企业信用分数的SQL语句,该SQL语句中包括比较指令和统计指令,银行根据该SQL语句读取出其余各科创企业的信用分数,再根据该SQL语句中的比较指令,将该科创企业的信用分数分别与其余各科创企业的信用分数进行对比,并根据该SQL语句中的统计指令,统计出信用分数大于该科创企业信用分数的所有科创企业的总数。为了达到提高基于多方安全计算协议处理私有数据的处理效率的目的,银行可基于本申请实施例在下文所提供的数据处理方法执行该SQL语句,从而更快速地为该科创企业输出统计结果。
本申请实施例提供的数据处理方法的另一种可能的应用场景可以是:应用于专门向用户提供基于密文的查询、计算等数据处理服务的平台。
应当理解的,上述两种应用场景仅作为示例,不应理解为是对本申请的限定。本申请对具体的应用场景不做限定。
参考图2,图2是本申请一实施例提出的数据处理方法的流程图,该数据处理方法应用于数据库引擎。如图2所示,该方法包括以下步骤:
步骤S21:接收针对待处理数据的计算任务;
步骤S22:根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;
步骤S23:根据所述计算任务和所述位置信息,生成第一配置文件;
步骤S24:将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
本申请通过以下具体实施例对上述步骤S21至步骤S24做进一步解释说明和补充,应当理解的,以下具体实施例作为本申请多种可实施方式中的举例,不应解释为对本申请的限定。
本申请在实现时,在执行上述步骤S13时,一种可行的实施方式是:针对每个数据分段,根据所述计算任务和该数据分段的所述位置信息,生成针对该数据分段的第一配置文件。如此,在执行上述步骤S14时,数据库引擎将多个第一配置文件发送给服务端。
如图1所示,在某些实施例中,个人用户/企业用户通过客户端向数据库引擎发送用于从多个候选数据中指定待处理数据的指定信息,以及针对该待处理数据的计算任务。具体地,所述指定信息可以是用户编辑的SQL语句中的部分内容。例如,用户编辑的SQL语句用于查询和数据A,则通常情况下,该SQL语句中携带有数据A的标识,因此数据A的标识可视为所述指定信息。所述计算任务可以是用户编辑的SQL语句中的部分语句,例如前述比较指令和统计指令。
数据库引擎在接收到客户端发送的针对待处理数据的计算任务后,可以根据预设拆分规则,确定每个数据分段在待处理数据中的位置信息,旨在使存储有待处理数据的数据节点DS可以根据这些位置信息,从待处理数据读取出对应的数据分段。或者旨在使存储有待处理数据的数据节点DS可以根据这些位置信息,将待处理数据拆分成多个数据分段。数据库引擎针对每个即将拆出的数据分段,根据计算任务和该数据分段在待处理数据中的位置信息,生成针对该数据分段的第一配置文件。数据库引擎将多个数据分段各自对应的第一配置文件发送给任务管理服务器。其中,一个第一配置文件相当于一个针对其对应数据分段的数据处理子请求。
如图1所示,在某些实施例中,第一配置文件中还可以包括提供所述数据分段的目标数据节点的信息。所述目标数据节点是指存储有待处理数据的数据节点DS。任务管理服务器在接收到多个第一配置文件后,针对每个第一配置文件,根据其中的目标数据节点的信息,将该第一配置文件发送给对应的数据节点DS。数据节点DS针对接收到的多个第一配置文件中的每个第一配置文件,根据该第一配置文件中携带的数据分段的位置信息,从待处理数据中读取出数据分段,并针对该数据分段做随机分散处理,得到该数据分段的至少两个密文分片。或者,数据节点DS针对接收到的多个第一配置文件,根据各第一配置文件中包括的位置信息,将待处理数据拆分成多个数据分段,并针对每个数据分段做随机分散处理,得到各数据分段的至少两个密文分片。
在另一些实施例中,第一配置文件中可以不包括目标数据节点的信息。任务管理服务器在接收到多个第一配置文件后,将每个第一配置文件广播给所有的数据节点DS。每个数据节点DS针对接收到的每个第一配置文件,根据其中携带的数据分段的位置信息,确定其自身是否存储有待处理数据。在其自身存储有待处理数据的情况下,从待处理数据中读取出数据分段,并针对该数据分段做随机分散处理,得到该数据分段的至少两个密文分片。
此外,如图1所示,在某些实施例中,第一配置文件中还可以包括针对所述数据分段,参与执行所述计算任务的第一计算节点信息。例如,第一配置文件中还可以包括一组第一计算节点的信息。任务管理服务器在接收到多个第一配置文件后,针对每个第一配置文件,根据其中的所述一组第一计算节点的信息,将该第一配置文件发送给对应的一组计算节点。其中,一组第一计算节点至少包括2个计算节点,例如可以包括4个计算节点。换言之,针对一个数据分段,参与执行针对该数据分段的计算任务的第一计算节点至少为2个,例如可以为4个或更多。
同样地,数据节点DS在根据一个第一配置文件中的位置信息,从待处理数据中读取出数据分段,并在将数据分段分散处理得到密文分片后,数据节点DS可以根据该第一配置文件中的所述一组第一计算节点的信息,将这些密文分片分发给该组计算节点中包括的多个计算节点ES。由于一个计算节点ES仅获得数据分段的部分密文分片,因此计算节点ES不能根据所获得的密文分片反推出数据分段的数据信息,从而确保了数据分段的数据安全。
参考图3,图3是本申请一实施例提出的数据节点DS分发密文分片的示意图。如图3所示,数据节点DS在针对待处理数据的四个数据分段中的每个数据分段,将该数据分段进行随机分散处理后,获得该数据分段的多个密文分片。数据节点DS将一个数据分段的多个密文分片分发给一组计算节点包括的多个计算节点。图3中,一个虚线框内的多个计算节点作为一组计算节点。例如,一组计算节点具体包括四个计算节点,四个计算节点可实施基于多方安全计算协议的加、减、乘、除、与、或、非等运算。如图3所示,待处理数据的四个数据分段各自的密文分片分别分发给四组计算节点。如此,本申请将针对待处理数据的计算任务转换为针对多个数据分段并行执行的计算任务,可以提高针对待处理数据的处理效率。
列举一个具体的示例,用户通过客户端向数据库引擎发送SQL语句和计算任务。其中,该SQL语句中包含的指定信息用于指定数据节点DS中存储的待处理数据A,该待处理数据A包括多个科创企业的信用分数信息,共有390行。该计算任务是确定拥有1350分的企业在多个科创企业中的信用排名。数据库引擎根据预设拆分规则,确定四个数据分段在待处理数据中的位置信息分别是:1至100行、101至200行、201至300行、301至390行。以其中的第一个数据分段为例,数据库引擎针对该数据分段生成第一配置文件,该第一配置文件中包括位置信息“1至100行”和计算任务“将各科创企业的信用分数与1350进行对比,并统计信用分数大于1350分的科创企业的总数”。如上所述,在某些实施例中,该第一配置文件中还包括目标数据节点的信息以及一组目标计算节点的信息。数据库引擎将该第一配置文件发送给任务管理服务器。应当理解的,本申请在实施期间,上述位置信息、计算任务、目标数据节点的信息以及一组目标计算节点的信息通常以计算机程序语言的形式表示。上述数字仅为介绍方案方便,实际操作中数值会不同,例如更大或更小。
任务管理服务器将该第一配置文件发送给对应的数据节点DS,该数据节点DS存储有待处理数据A。数据节点DS针对该第一配置文件,将待处理数据A的第1行至第100行读取出,作为数据分段a1。数据节点DS对数据分段a1进行随机分散处理,得到数据分段a1的多个密文分片。数据节点DS在获得数据分段a1的密文分片后,根据第一配置文件中的所述一组目标计算节点的信息,将数据分段a1的密文分片分发给该组计算节点中包括的多个计算节点ES。由于一个计算节点ES仅获得数据分段a1的部分密文分片,因此计算节点ES不能根据所获得的密文分片反推出数据分段a1的数据信息,从而确保了数据分段a1的数据安全,即确保了待处理数据A的数据安全。
其中,数据节点DS对待处理数据的数据分段进行随机分散处理的目的是:获得数据分段的密文分片,这些密文分片可以表征数据分段,从而实现对数据分段的加密。数据节点DS在对数据分段进行随机分散处理时,一种可行的实施方式是:
假设数据分段包含私有数据X,针对私有数据X随机产生两个私密数据X1和X2,基于该私密数据X1和X2将私有数据X分散成{X1、X1′、X2、X2′、Xa、Xa′、Xb、Xb′};其中,X2=X-X1=Xa,X1=Xb,X2′=X-X1′=Xb′,X1′=Xa′;数据节点DS向一组计算节点包括的四个计算节点ES分别发送以下密文分片:{X1、X1′}、{X2、X2′}、{Xa、Xa′}、{Xb、Xb′}。
其中,数据库引擎在根据预设拆分规则,确定每个数据分段在待处理数据中的位置信息时,所依据的预设拆分规则可以包括但不限于以下任一种:
第一种,针对一个待处理数据,将所述待处理数据所包含的段数/行数进行平均拆分,每个数据分段中包含平均拆分后的段/行。
示例地,以所述第一种预设拆分规则为例,假设某一待处理数据的总行数为360行,数据库引擎需要生成四个分别针对不同数据分段的第一配置文件。如此,数据库引擎根据待处理数据的总行数,平均地划分出每个数据分段在待处理数据中的位置。其中,第一个数据分段的位置信息是“第1至第90行”,第二个数据分段的位置信息是“第91至第180行”,第三个数据分段的位置信息是“第181至第270行”,第四个数据分段的位置信息是“第271至第360行”。
沿用上述示例,假设记录一个科创企业的信用分数需要占用的行数为2行,则根据上述预设拆分规则进行处理后,每个数据分段中均包括45个科创企业的信用分数。
第二种,针对一个待处理数据,将所述待处理数据按段/行划分,每个数据分段包含预设段数/行数。
示例地,以所述第二预设拆分规则为例,假设某一待处理数据的总行数为360行,数据库引擎需要生成四个分别针对不同数据分段的第一配置文件。如此,数据库引擎以100行为断点,确定出每个数据分段在待处理数据中的位置。其中,第一个数据分段的位置信息是“第1至第100行”,第二个数据分段的位置信息是“第101至第200行”,第三个数据分段的位置信息是“第201至第300行”,第四个数据分段的位置信息是“第301至第360行”。
沿用上述示例,假设记录一个科创企业的信用分数需要占用的行数为2行,则根据上述预设拆分规则进行处理后,四个数据分段中分别包括50、50、50以及30个科创企业的信用分数。
此外,用户通过客户端指定的待处理数据可能包括多个待处理文件。换言之,用户输入的SQL语句中涉及多个待处理文件各自的标识。对此,数据库引擎在根据预设拆分规则,确定每个数据分段在待处理数据中的位置信息时,所依据的预设拆分规则可以包括但不限于以下任一种:
第三种,将所述多个待处理文件的数量进行平均拆分,每个数据分段包含平均拆分后的待处理文件。
示例地,以所述第三种预设拆分规则为例,假设用户通过客户端指定的待处理文件的数量为6个,换言之,客户端输入的SQL语言中携带有6个待处理文件各自的标识。数据库引擎根据预设拆分规则,需要平均生成三个分别针对不同待处理文件的第一配置文件。如此,数据库引擎根据待处理文件的总数量,平均地划分出三组待处理文件,并生成相应的三个第一配置文件。其中,第一个第一配置文件中携带的位置信息是“第1和第2个待处理文件的标识”,第二个第一配置文件中携带的位置信息是“第3和第4个待处理文件的标识”,第三个第一配置文件中携带的位置信息是“第5和第6个待处理文件的标识”。
第四种,将所述多个待处理文件按数量划分,每个数据分段包含预设数量个待处理文件。
示例地,以所述第四种预设拆分规则为例,假设用户通过客户端指定的待处理文件的数量为6个,换言之,客户端输入的SQL语言中携带有6个待处理文件各自的标识。数据库引擎需要生成四个第一配置文件,其中,第一个第一配置文件中携带的位置信息是“第1和第5个待处理文件的标识”,第二个第一配置文件中携带的位置信息是“第2和第6个待处理文件的标识”,第三个第一配置文件中携带的位置信息是“第3个待处理文件的标识”,第四个第一配置文件中携带的位置信息是“第4个待处理文件的标识”。
一组第一计算节点中的各计算节点ES在获得第一配置文件,以及在获得由数据节点DS向其分发的来自一个数据分段密文分片后,计算节点ES基于多方安全计算协议,对第一配置文件中的计算任务进行处理,得到多方安全计算指令。在实现时,对于所述计算任务被处理成的多方安全计算指令的具体内容,通常取决于各计算节点ES所搭载的多方安全计算算法的具体算法类型。基于不同的算法类型处理计算任务,通常获得不同的多方安全计算指令。
在某些实施例中,计算节点ES中可预先存储有多条针对不同类型的计算任务的翻译逻辑。每条翻译逻辑用于指导计算节点ES将计算任务翻译成合适的多方安全计算指令。其中不同类型的计算任务是指:计算任务中加、减、乘、除、与、或、非等计算类型不同,和/或,参与计算的两方数据中是否存在公开数据的不同。
如图1所示,一组第一计算节点中的一个计算节点ES基于多方安全计算协议,将计算任务翻译成多方安全计算指令后,与该多方安全计算指令中的其他计算节点(即该组第一计算节点中的其他计算节点),共同响应该多方安全计算指令,得到数据分段对应的两个或多个中间结果。通常情况下,一个数据分段对应两个中间结果,称为一个中间结果集。该数据分段的中间结果与所述待处理数据拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述待处理数据对应的汇总结果。
通过执行包括上述步骤S21和步骤S24的数据处理方法,在待处理数据按照预设拆分规则拆分成多个待处理的数据分段后,针对一个数据分段可以由一组计算节点完成该计算任务,则针对多个数据分段可以由多组计算节点分布式并行完成计算任务。其中一组计算节点至少包括2个计算节点,例如可以包括4个计算节点。换言之,针对一个数据分段,参与该数据分段对应的计算任务的计算节点至少为2个,例如可以为4个或更多。由于计算过程是基于数据分段密文分片执行的,未暴露数据分段的明文,因此本发明实现了在保证待处理数据的数据安全、防止待处理数据泄露的条件下,提高对待处理数据的处理效率的目的,因此该数据处理方法更具实用性。
此外,考虑到本申请中,各计算节点ES获得中间结果的时间存在先后差别,为了应对这一情况,服务端的计算节点ES在计算出数据分段的中间结果后,可以通过服务端的任务管理服务器向数据库引擎反馈提示信息。如此,在数据库引擎侧,数据库引擎会接收服务端返回的提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果。如前所述,每个数据分段对应的可以是一个中间结果集,因此一个提示信息也可以用于表征一个数据分段已经被计算出对应的中间结果集。
如图1所示,数据库引擎在接收到全部数据分段各自对应的提示信息后,向所述服务端发送携带有汇总任务的第二配置文件,使所述服务端根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。为简化附图,图1中未示出计算节点反馈提示信息的过程。
在某些实施例中,由于数据库引擎在早期根据预设拆分规则,确定每个数据分段在待处理数据中的位置信息时,已知了数据分段的数量。因此数据库引擎可根据接收到的提示信息的数量和数据分段的数量,确定是否所有数据分段均获得对应的中间结果。在另一些实施例中,数据库引擎也可以记录拆分后的数据分段的标识,根据该标识记录是否接收到提示信息。当然上述仅为发明人所列举的两种可实施方案,本申请并不局限于此。
在某些实施例中,数据库引擎在针对待处理数据的各个数据分段生成各自对应的第一配置文件的同时,生成所述汇总任务。然后数据库引擎将该汇总任务封装为第二配置文件。因此当数据库引擎在接收到全部数据分段各自对应的提示信息后,可以将该第二配置文件发送给服务端。其中,所述汇总任务用于针对多个数据分段各自对应的两个或多个中间结果进行汇总,得到待处理数据的汇总结果。
沿用上述示例,可以将数据节点DS存储的多个科创企业的信用分数作为一个待处理数据,数据库引擎根据预设规则,确定该待处理数据的多个数据分段各自的位置信息。其中,每个数据分段中包括部分科创企业各自的信用分数,例如每个数据分段中包括50个科创企业各自的信用分数。一方面,对于上述科创企业通过其控制的客户端输入的SQL语句中包括的比较指令和统计指令,数据库引擎可以将该比较指令和统计指令作为所述计算任务,该计算任务用于统计一个数据分段中,信用分数大于1350分的科创企业的总数。
另一方面,数据库引擎在确定多个数据分段各自的位置信息的同时,可以生成汇总任务,该汇总任务用于对各个数据分段对应的统计数据进行累加。数据库引擎将生成的汇总任务封装成第二配置文件,并在接收到全部数据分段各自对应的提示信息后,将该第二配置文件发送给服务端,使服务端基于该第二配置文件中的汇总任务,针对多个中间结果各自的统计数据进行累加。
如上所述,数据库引擎通过接收服务端返回的提示信息,并在接收到全部数据分段各自对应的提示信息后,向服务端发送携带汇总任务的第二配置文件,确保各数据分段均已被计算出中间结果后,才对中间结果进行汇总操作,因此保证了汇总结果的准确性,进一步提高了数据处理方法的实用性。
同样地,考虑到本申请中,各计算节点ES获得中间结果的时间存在先后差别,为了应对这一情况,数据库引擎在上述步骤S23中针对数据分段生成第一配置文件时,所生成的第一配置文件中还可以包括:用于缓存所述数据分段对应的中间结果的缓存节点信息。如此,获得该第一配置文件的一组第一计算节点在计算出该第一配置文件的对应的数据分段的中间结果后,根据该第一配置文件中的缓存节点信息,将中间结果存储至对应的缓存节点。
在某些实施例中,为了降低数据的碎片化存储,可以将一个数据分段对应的多个中间结果缓存至同一缓存节点。并且,为了确保数据安全,该缓存节点最好是部署在存储有该数据分段的数据节点DS中。
示例地,参考图4,图4是本申请另一实施例提出的数据计算系统示意图。如图4所示,数据计算系统主要包括数据节点DS、缓存节点以及计算节点ES。图4中除了包括数据计算系统,还包括数据处理系统,数据处理系统主要包括数据库引擎和任务管理服务器,其中,数据库引擎针对待处理数据的数据分段F生成的第一配置文件中,携带的一组第一计算节点的信息所指示的计算节点如图4中的ES1、ES2、ES3以及ES4。该第一配置文件中携带的目标数据节点的信息所指示的数据节点如图4中的DS3。此外,该第一配置文件中携带的缓存节点信息是:ES1、ES2、ES3以及ES4均对应缓存节点3。并且如图4所示,缓存节点3设置在数据节点DS3中。
如图4所示,任务管理服务器在接收到该第一配置文件后,将该第一配置文件发送给DS3、ES1、ES2、ES3以及ES4。为了简化附图,图4中仅示出了任务管理服务器向DS3发送第一配置文件的过程。其中,DS3根据数据分段F的位置信息,从待处理数据中读取出数据分段F,并对其进行随机分散处理,获得四个密文分片,分别为f1、f2、f3以及f4。DS3根据第一配置文件中的所述一组目标计算节点的信息,将这四个密文分片分发给ES1、ES2、ES3以及ES4。如图4中各计算节点ES之间的双向箭头(所示双向箭头表示计算节点间执行的密文计算),四个计算节点ES中的每个计算节点ES在接收到第一配置文件和密文分片后,基于多方安全计算协议,与参与计算任务(即第一配置文件中所携带的计算任务)的其他计算节点,对密文分片进行处理,获得数据分段F对应的中间结果。
如图4中的虚线箭头所示,四个计算节点中的每个计算节点在获得中间结果后,根据第一配置文件中携带的缓存节点信息,将其获得的中间结果缓存至缓存节点3中。由于缓存节点3位于存储有待处理数据的数据节点DS3中,因此即使缓存节点3获得了数据分段F对应的全部中间结果,也不会存在数据分段F被泄露给其他节点的问题,因此在保证数据安全的情况下,有效降低了数据的碎片化存储。应当理解的,图4中的计算节点ES5、ES6、ES7以及ES8作为另一组计算节点,可以用于针对待处理数据的另一个数据分段的密文分片并行进行密文处理。为了简化附图,图4中详细未示出该组计算节点的处理过程。
此外,如前所述,数据库引擎在将汇总任务封装成第二配置文件时,所生成的第二配置文件中除了包括汇总任务外,还可以包括:提供所述中间结果的缓存节点信息、以及参与执行汇总任务的第二计算节点信息。
参考图5,图5是本申请另一实施例提出的数据计算系统的示意图。图5所示各部分具有图4所示各部分的全部功能,为简化附图,图5中省略图4中的部分箭头。如图5所示,数据计算系统主要包括数据节点DS、缓存节点以及计算节点ES。图5中除了包括数据计算系统,还包括数据处理系统,数据处理系统主要包括数据库引擎和任务管理服务器。如图5所示,在某些实施例中,数据库引擎在接收到全部数据分段各自对应的提示信息后,将第二配置文件发送给任务管理服务器,任务管理服务器根据第二配置文件中携带的缓存节点信息和第二计算节点信息,将第二配置文件转发给对应的缓存节点和第二计算节点。如图5所示,获得第二配置文件的缓存节点3根据第二配置文件中携带的第二计算节点信息,将其缓存的中间结果分发给多个第二计算节点。为了简化附图,图5中未示出各计算节点ES获得第二配置文件的过程。
需要说明的是,图5中仅示出了一个缓存有中间结果的缓存节点,即缓存节点3,而本申请在实施期间,用于缓存中间结果的缓存节点的数量也可以是两个或更多个。还需要说明的是,图5中获得中间结果、并对中间结果进行数据汇总的一组第二计算节点,是参与针对密文分片进行密文计算的多组第一计算节点中的一组。应当理解的,图5仅示出了本申请多种可实施方式中的一种。例如数据计算系统也可以另外设立一组计算节点,专用于对多个数据分段的多个中间结果进行数据汇总。或者,数据计算系统还可以从参与针对密文分片进行密文计算的多组计算节点中的每一组中,选出部分计算节点,多个被选出的计算节点组成一组新的计算节点,专用于对多个数据分段的多个中间结果进行数据汇总。
本申请在实施期间,第二配置文件所携带的第二计算节点信息可以是一组第二计算节点的信息。该组第二计算节点至少包括两个计算节点ES,例如可以包括4个计算节点ES。其中每个计算节点获得至少两个中间结果,并且每个计算节点不能获得某一个数据分段的全部中间结果。如此,该组第二计算节点中的每个计算节点在将汇总任务翻译处理成对应的多方安全计算指令后,然后针对每条多方安全计算指令,与该组第二计算节点中的其他计算节点共同响应该多方安全计算指令,得到汇总结果。
如上所述,通过在第一配置文件中配置用于缓存中间结果的缓存节点信息,使第一计算节点在获得数据分段的中间结果后,将中间结果进行缓存;并通过在第二配置文件中配置用于提供中间结果的缓存节点信息、以及第二计算节点信息,可以使缓存节点将缓存的中间结果分发给第二计算节点,使多个第二计算节点根据第二配置文件中的汇总任务,对多个汇总结果进行汇总操作,得到汇总结果。如此,在各计算节点ES获得中间结果的时间存在先后差别的情况下,可以利用缓存节点存储各中间结果。
此外,第二配置文件中还可以包括:接收所述汇总结果的结果需求方信息。如此,一组第二计算节点在针对多个中间结果执行完汇总操作,得到汇总结果后,可以根据结果需求方信息,将汇总结果返回给对应的结果需求方。在某些实施例中,所述结果需求方可以是存储有所述待处理数据的数据节点DS,或者其他第三方。
前述部分实施例中,计算任务被包含在第一配置文件中,服务端的计算节点ES通过获得第一配置文件,从而从其中提取出计算任务。而汇总任务包含在第二配置文件中,服务端的计算节点ES通过获得第二配置文件,从而从其中提取出汇总任务。
本申请在实现时,第一配置文件中还可以包括数据处理函数,示例地,该数据处理函数形如:
DBSCAN([D1,D2,…,Dn],filter,aggregate)
或者形如:
DBSCAN(D)=aggregate([filter(D1),filter(D2),…,filter(Dn)])
其中,DBSCAN表示所述数据处理函数,D1,D2,…,Dn等分别表示一个数据分段的位置信息,filter表示针对数据分段的计算函数,aggregate表示针对中间结果的汇总函数。其中,filter也可以理解为针对数据分段的计算任务,aggregate也可以理解为针对中间结果的汇总任务。
换言之,第一配置文件中包括每个数据分段在待处理数据中的位置信息,第一配置文件中还包括针对中间结果的汇总任务。如此,数据库引擎将该第一配置文件发送给服务端后,通过服务端将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
此外,第一配置文件中还可以包括:提供所述数据分段的目标数据节点的信息。如此,服务端的任务管理服务器接收到第一配置文件后,可以根据其中携带的目标数据节点的信息,将该第一配置文件发送给对应的数据节点DS,使得数据节点DS根据该第一配置文件中包括的多个位置信息,从其存储的目标数据文件中获得对应的多个数据分段。
在某些实施例中,执行汇总任务的计算节点和执行计算任务的计算节点也可以是同一组设备。
在另一些实施例中,执行汇总任务的计算节点和执行计算任务的计算节点是不同的两组设备。如此,第一配置文件中还可以包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息。任务管理服务器在获得计算引擎发送的第一配置文件后,根据该第一配置文件中包括的第一计算节点信息和第二计算节点信息,将该配置文件发送给对应的各个计算节点。同样地,数据节点DS在获得多个数据分段各自的密文分片后,可以根据该第一配置文件中包括的第一计算节点信息,将密文分片分发给对应的各个计算节点。此外,第一计算节点在获得中间结果后,可以根据该第一配置文件中包括的第二计算节点信息,将中间节点发送给对应的各个计算节点。
或者,在多个计算节点中,对于哪些计算节点作为执行计算任务的第一计算节点,哪些计算节点作为执行汇总任务的第二计算节点,可以是管理员预先指定的。具体地,管理员可以预先编辑一份第一计算节点指定文件和一份第二计算节点指定文件,并将这两份文件存储在服务端的各个设备内(如任务管理服务器、各个数据节点以及各个计算节点)。任务管理服务端在接收到数据库引擎发送的第一配置文件后,可以根据其存储的第一计算节点指定文件和第二计算节点指定文件,将第一配置文件发送给对应的计算节点。同样地,数据节点DS在获得多个数据分段各自的密文分片后,可以根据其存储的第一计算节点指定文件,将密文分片分发给对应的各个计算节点。此外,第一计算节点在获得中间结果后,可以根据其存储的第二计算节点指定文件,将中间节点发送给对应的各个计算节点。
参考图6,图6是本申请一实施例提出的数据处理方法的流程图,该数据处理方法应用于任务管理服务器,该数据处理方法与图2所示的数据处理方法基于同一发明构思。如图6所示,该方法包括以下步骤:
步骤S61:接收数据库引擎发送的第一配置文件,所述第一配置文件中包括计算任务和数据分段的位置信息,所述数据分段是待处理数据中的一部分,所述第一配置文件是所述数据库引擎根据预设拆分规则确定出每个数据分段在待处理数据中的位置信息后,根据所述位置信息和针对所述待处理数据的计算任务所生成的;
步骤S62:将所述第一配置文件提交给多个任务处理设备,以使多个任务处理设备针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
本申请通过以下具体实施例对上述步骤S61和步骤S62做进一步解释说明和补充,应当理解的,以下具体实施例作为本申请多种可实施方式中的举例,不应解释为对本申请的限定。
在某些实施例中,所述任务处理设备可以包括多个计算节点ES以及一个或多个数据节点DS。其中,各计算节点ES可以为一实体计算设备,或者可以为实体计算设备承载的虚拟设备。本申请对此不做限定。同样地,数据节点DS可以为实体存储设备,或者可以为实体存储设备承载的虚拟设备,本申请对此不做限定。
在某些实施例中,如前所述,任务管理服务器在接收第一配置文件之前,对于客户端、数据库引擎以及任务管理服务器三者之间的交互过程,可参考上文针对步骤S21至步骤S24的解释说明,和/或,参考图1所示内容,本申请在此不做赘述。
在某些实施例中,如前所述,每个第一配置文件中包括一个数据分段的位置信息。如此,任务管理服务器接收数据库引擎发送的多个第一配置文件。
此外,第一配置文件除了包括计算任务和数据分段的位置信息外,如前所述,第一配置文件中还可以包括:提供数据分段的目标数据节点的信息、参与执行计算任务的第一计算节点信息、以及用于缓存所述数据分段对应的中间结果的缓存节点信息。获得该第一配置文件的数据节点DS和第一计算节点根据该第一配置文件中包括的信息,执行相应的处理过程。对于具体的处理过程,可以参考上文所述内容。为避免重复,此处不再赘述。
在某些实施例中,如前所述,考虑到本申请中,各计算节点ES获得中间结果的时间存在先后差别,为了应对这一情况,服务端的计算节点ES在计算出数据分段的中间结果后,可以向任务管理服务器发送提示信息,该提示信息用于表征一个数据分段已经被计算出对应的中间结果。如此,任务管理服务器接收该提示信息,并将该提示信息发送给数据库引擎。本申请在实施期间,通常一个数据分段对应一组第一计算节点,因此任务管理服务器通常会先后接收到来自多组第一计算节点的多个提示信息,每组第一计算节点发送的提示信息表征该组第一计算节点所对应的数据分段已经被计算出中间结果。
如前所述,每个数据分段对应的可以是一个中间结果集,因此一个提示信息也可以用于表征一个数据分段已经被计算出对应的中间结果集。其中,一个中间结果集中通常包括两个中间结果。
如前所述,数据库引擎在接收到全部数据分段各自对应的提示信息后,向所述服务端发送携带有汇总任务的第二配置文件。如此,任务管理服务器接收数据库引擎发送的第二配置文件。其中,所述第二配置文件中携带有汇总任务。如前所述,该汇总任务可以是数据库引擎在针对待处理数据的各个数据分段生成各自对应的第一配置文件时,同时生成的。
任务管理服务器将接收到的第二配置文件发送给所述任务处理设备,使所述任务处理设备根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
具体地,如前所述,第一配置文件中还可以包括用于缓存所述数据分段对应的中间结果的缓存节点信息,第一计算节点在计算出数据分段的中间结果后,根据第一配置文件中的缓存节点信息,将中间结果缓存至对应的缓存节点。第二配置文件中还可以包括:提供所述中间结果的缓存节点信息,以及参与执行汇总任务的第二计算节点信息。任务管理服务器在将第二配置文件发送给任务处理设备时,具体是根据所述第二配置文件中包括的缓存节点信息,将所述第二配置文件发送给该缓存节点信息对应的缓存节点,使所述缓存节点将缓存的中间结果发送给该第二配置文件中包括的第二计算节点信息对应的第二计算节点。
任务管理服务器还根据所述第二配置文件中包括的第二计算节点信息,将所述第二配置文件发送给该第二计算节点信息对应的第二计算节点,使所述第二计算节点在获得缓存节点缓存的中间结果后,根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
如前所述,为了降低数据的碎片化存储,可以将一个数据分段对应的多个中间结果缓存至同一缓存节点。并且,为了确保数据安全,该缓存节点最好是部署在存储有该数据分段的数据节点DS中。对于降低数据碎片化存储的具体手段,可以参考上文所述内容,和/或,图4所示内容。
如前所述,第二配置文件中还可以包括:接收所述汇总结果的结果需求方信息。如此,一组第二计算节点在针对多个中间结果执行完汇总操作,得到汇总结果后,可以根据结果需求方信息,将汇总结果返回给对应的结果需求方。在某些实施例中,所述结果需求方可以是存储有所述待处理数据的数据节点DS,或者其他第三方。
此外,考虑到缓存节点的存储空间有限,为了使缓存节点可以长期保有较大的可用存储空间,如图5所示,任务管理服务器还可以向缓存节点发送清除缓存指令,使所述缓存节点将缓存的中间结果清除。其中,清除缓存指令可以是由数据库引擎生成并发送给任务管理服务器的,任务管理服务器将该清除缓存指令转发给相应的缓存节点。
数据库引擎生成并发送清除缓存指令的时机可以是:在向缓存节点发送所述第二配置文件后的一段预设时间后。通过在发送第二配置文件后间隔一段时间,再发送清除缓存指令,可以使缓存节点有充足的时间将缓存的中间结果发送给计算节点。
前述部分实施例中,计算任务被包含在第一配置文件中,服务端的计算节点ES通过获得第一配置文件,从而从其中提取出计算任务。而汇总任务包含在第二配置文件中,服务端的计算节点ES通过获得第二配置文件,从而从其中提取出汇总任务。
本申请在实现时,第一配置文件中还可以包括数据处理函数,示例地,该数据处理函数形如:
DBSCAN([D1,D2,…,Dn],filter,aggregate)
或者形如:
DBSCAN(D)=aggregate([filter(D1),filter(D2),…,filter(Dn)])
其中,DBSCAN表示所述数据处理函数,D1,D2,…,Dn等分别表示一个数据分段的位置信息,filter表示针对数据分段的计算函数,aggregate表示针对中间结果的汇总函数。其中,filter也可以理解为针对数据分段的计算任务,aggregate也可以理解为针对中间结果的汇总任务。
换言之,第一配置文件中包括每个数据分段在待处理数据中的位置信息,第一配置文件中还包括针对中间结果的汇总任务。如此,任务管理服务器将包括汇总任务的第一配置文件提交给多个任务处理设备后,通过多个任务处理设备将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
在某些实施例中,如前所述,第一配置文件中还可以包括:提供数据分段的目标数据节点的信息。任务管理服务器在将第一配置文件提交给多个任务处理设备时,具体地,根据所述第一配置文件中包括的目标数据节点的信息,将所述第一配置文件发送给对应的目标数据节点。
如前所述,在某些实施例中,执行汇总任务的计算节点和执行计算任务的计算节点也可以是同一组设备。
在另一些实施例中,执行汇总任务的计算节点和执行计算任务的计算节点是不同的两组设备。如此,所述第一配置文件中还可以包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息。任务管理服务器在接收到数据库引擎发送的第一配置文件后,根据其中包括的第一计算节点信息和第二计算节点信息,将该第一配置文件发送给对应的计算节点。
基于同一发明构思,本申请一实施例提供一种数据处理系统,该数据处理系统包括数据库引擎和任务管理服务器。
所述数据库引擎用于接收针对待处理数据的计算任务,根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息,根据所述计算任务和所述位置信息,生成第一配置文件,并将所述第一配置文件发送给所述任务管理服务器;
所述任务管理服务器用于接收所述数据库引擎发送的第一配置文件,并将该第一配置文件提交给多个任务处理设备,以通过所述多个任务处理设备并行执行所述各第一配置文件所携带的计算任务,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
可选地,所述预设拆分规则包括以下任一种:
第一种,针对一个待处理数据,将所述待处理数据所包含的段数/行数进行平均拆分,每个待处理数据中包含平均拆分后的段/行;
第二种,针对一个待处理数据,将所述待处理数据按段/行划分,每个数据分段包含预设段数/行数。
可选地,考虑到用户通过客户端指定的待处理数据可能包括多个待处理文件。对此,数据库引擎在根据预设拆分规则,确定每个数据分段在待处理数据中的位置信息时,所依据的预设拆分规则可以包括但不限于以下任一种:
第三种,将所述多个待处理文件的数量进行平均拆分,每个数据分段包含平均拆分后的待处理文件。
第四种,将所述多个待处理文件按数量划分,每个数据分段包含预设数量个待处理文件。
可选地,所述任务处理设备包括:数据节点和多个计算节点;所述第一配置文件中包括提供所述数据分段的目标数据节点的信息,以及针对所述数据分段,参与执行所述计算任务的第一计算节点信息。所述任务管理服务器用于:
根据每个第一配置文件中包括的目标数据节点的信息,将该第一配置文件发送给该目标数据节点的信息对应的目标数据节点,使所述数据节点根据该第一配置文件中数据分段的位置信息,从所述待处理数据中获取该数据分段,并将该数据分段转换为密文形式的密文分片,再将该密文分片分发给该第一配置文件中包括的第一计算节点信息对应的第一计算节点;
根据每个第一配置文件中包括的第一计算节点信息,将该第一配置文件发送给该第一计算节点信息对应的第一计算节点,使所述第一计算节点在获得密文分片后,根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果。
其中,针对一个第一配置文件,参与执行所述计算任务的第一计算节点的数量为至少2个。
可选地,所述任务管理服务器还用于:接收所述计算节点返回的提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果;将所述提示信息发送给所述数据库引擎。
可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果,所述提示信息用于表征所述数据分段已经被计算出对应的中间结果集。
可选地,所述数据库引擎还用于在接收到全部数据分段各自对应的提示信息后,向所述任务管理服务器发送第二配置文件,所述第二配置文件携带有汇总任务;
所述任务管理服务器还用于将所述第二配置文件发送给所述任务处理设备,使所述任务处理设备根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述任务处理设备还包括缓存节点,所述第一配置文件中包括:用于缓存所述数据分段对应的中间结果的缓存节点信息;
所述任务管理服务器用于根据每个第一配置文件中包括的第一计算节点信息,将该包括缓存节点信息的第一配置文件发送给该第一计算节点信息对应的第一计算节点,使所述第一计算节点在计算出所述数据分段的中间结果后,将所述中间结果缓存至所述缓存节点信息对应的缓存节点。
可选地,所述第二配置文件中包括:提供所述中间结果的缓存节点信息,以及参与执行汇总任务的第二计算节点信息;所述任务管理服务器用于:
根据所述第二配置文件中包括的缓存节点信息,将所述第二配置文件发送给该缓存节点信息对应的缓存节点,使所述缓存节点将缓存的中间结果发送给该第二配置文件中包括的第二计算节点信息对应的第二计算节点;
根据所述第二配置文件中包括的第二计算节点信息,将所述第二配置文件发送给该第二计算节点信息对应的第二计算节点,使所述第二计算节点在获得缓存节点缓存的中间结果后,根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第二配置文件中还包括:接收所述汇总结果的结果需求方信息。
可选地,所述任务管理服务器还用于:
向缓存节点发送清除缓存指令,使所述缓存节点将缓存的中间结果清除。
可选地,所述数据库引擎用于接收针对待处理数据的计算任务,根据预设拆分规则确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息,根据所述计算任务和所述位置信息,生成第一配置文件,并将所述第一配置文件发送给所述任务管理服务器;
可选地,所述第一配置文件还包括:提供所述数据分段的目标数据节点的信息。
可选地,所述第一配置文件还包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息。
基于同一发明构思,本申请一实施例提供一种数据处理装置,该装置应用于数据库引擎。参考图7,图7是本申请一实施例提供的数据处理装置的示意图。如图7所示,该装置包括:
计算任务接收模块71,用于接收针对待处理数据的计算任务;
位置信息确定模块72,用于根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;
第一配置文件生成模块73,用于根据所述计算任务和所述位置信息,生成第一配置文件;
第一配置文件发送模块74,用于将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
可选地,所述第一配置文件生成模块具体用于:针对每个数据分段,根据所述计算任务和该数据分段的所述位置信息,生成针对该数据分段的第一配置文件;
所述第一配置文件发送模块具体用于:将多个第一配置文件发送给服务端。
可选地,所述服务端包括数据节点和多个计算节点,所述第一配置文件中包括:
提供所述数据分段的目标数据节点的信息;以及
针对所述数据分段,参与执行所述计算任务的第一计算节点信息。
可选地,针对所述数据分段,所述参与执行所述计算任务的第一计算节点的数量为至少2个。
可选地,所述装置还包括:
提示信息接收模块,用于接收服务端返回的提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果。
可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果;所述提示信息用于表征所述数据分段已经被计算出对应的中间结果集。
可选地,所述装置还包括:
第二配置文件发送模块,用于在接收到全部数据分段各自对应的提示信息后,向所述服务端发送携带有汇总任务的第二配置文件,使所述服务端根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第一配置文件中包括:用于缓存所述数据分段对应的中间结果的缓存节点信息;
所述第二配置文件中包括:
提供所述中间结果的缓存节点信息;以及
参与执行汇总任务的第二计算节点信息。
可选地,所述第二配置文件中还包括:
接收所述汇总结果的结果需求方信息。
可选地,或者所述第一配置文件发送模块具体用于:将包括所述汇总任务的第一配置文件发送给所述服务端,以通过所述服务端将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第一配置文件还包括:提供所述数据分段的目标数据节点的信息。
可选地,所述第一配置文件还包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息。
可选地,所述预设拆分规则包括以下任一种:
针对一个待处理数据,将所述待处理数据所包含的段数/行数进行平均拆分,每个待处理数据中包含平均拆分后的段/行;
针对一个待处理数据,将所述待处理数据按段/行划分,每个数据分段包含预设段数/行数。
可选地,若所述待处理数据包括多个待处理文件,所述预设拆分规则包括以下任一种:
将所述多个待处理文件的数量进行平均拆分,每个数据分段包含平均拆分后的待处理文件;
将所述多个待处理文件按数量划分,每个数据分段包含预设数量个待处理文件。
基于同一发明构思,本申请一实施例提供另一种数据处理装置,应用于任务管理服务器。参考图8,图8是本申请另一实施例提供的数据处理装置的示意图。如图8所示,该装置包括:
第一配置文件接收模块81,用于接收数据库引擎发送的第一配置文件,所述第一配置文件中包括计算任务和数据分段的位置信息,所述数据分段是待处理数据中的一部分,所述第一配置文件是所述数据库引擎根据预设拆分规则确定出每个数据分段在待处理数据中的位置信息后,根据所述位置信息和针对所述待处理数据的计算任务所生成的;
第一配置文件提交模块82,用于将所述第一配置文件提交给多个任务处理设备,以使多个任务处理设备针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
可选地,所述第一配置文件接收模块具体用于:接收所述数据库引擎发送的多个第一配置文件,每个所述第一配置文件中包括一个数据分段的位置信息。
可选地,所述装置还包括:
提示信息接收模块,用于接收提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果;
提示信息发送模块,用于将所述提示信息发送给所述数据库引擎。
可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果,所述提示信息用于表征所述数据分段已经被计算出对应的中间结果集。
可选地,所述装置还包括:
第二配置文件接收模块,用于接收数据库引擎发送的第二配置文件,所述第二配置文件是所述数据库引擎在接收到待处理数据的全部数据分段各自对应的提示信息后发送的,所述第二配置文件携带有汇总任务;
第二配置文件发送模块,用于将所述第二配置文件发送给所述任务处理设备,使所述任务处理设备根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第二配置文件中包括:提供所述中间结果的缓存节点信息,以及参与执行汇总任务的第二计算节点信息;
所述第二配置文件发送模块具体用于:根据所述第二配置文件中包括的缓存节点信息,将所述第二配置文件发送给该缓存节点信息对应的缓存节点,使所述缓存节点将缓存的中间结果发送给该第二配置文件中包括的第二计算节点信息对应的第二计算节点;将所述第二配置文件发送给该第二计算节点信息对应的第二计算节点,使所述第二计算节点在获得缓存节点缓存的中间结果后,根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第二配置文件中还包括:接收所述汇总结果的结果需求方信息。
可选地,所述装置还包括:
清除缓存指令发送模块,用于向缓存节点发送清除缓存指令,使所述缓存节点将缓存的中间结果清除。
可选地,所述第一配置文件中包括每个数据分段在所述待处理数据中的位置信息,所述第一配置文件中还包括针对中间结果的汇总任务;
所述第一配置文件提交模块具体用于:将包括所述汇总任务的第一配置文件提交给多个任务处理设备,以通过多个任务处理设备将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
可选地,所述第一配置文件中还包括:提供所述数据分段的目标数据节点的信息;
所述第一配置文件提交模块具体用于:根据所述第一配置文件中包括的目标数据节点的信息,将所述第一配置文件发送给对应的目标数据节点。
可选地,所述第一配置文件中还包括:参与执行所述计算任务的第一计算节点信息、以及参与执行所述汇总任务的第二计算节点信息;
所述第一配置文件提交模块具体用于:根据所述第一配置文件中包括的第一计算节点信息,将所述第一配置文件发送给对应的第一计算节点;根据所述第一配置文件中包括的第二计算节点信息,将所述第一配置文件发送给对应的第二计算节点。
基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请上述任一实施例所述的方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请上述任一实施例所述的方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据处理方法、系统、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于数据库引擎,所述方法包括:
接收针对待处理数据的计算任务;
根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;
根据所述计算任务和所述位置信息,生成第一配置文件;
将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述计算任务和所述位置信息,生成第一配置文件,包括:
针对每个数据分段,根据所述计算任务和该数据分段的所述位置信息,生成针对该数据分段的第一配置文件;
所述将所述第一配置文件发送给服务端,包括:
将多个第一配置文件发送给服务端。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收服务端返回的提示信息,每个提示信息用于表征一个数据分段已经被计算出对应的中间结果。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到全部数据分段各自对应的提示信息后,向所述服务端发送携带有汇总任务的第二配置文件,使所述服务端根据所述汇总任务并基于多方安全计算协议对所述中间结果进行汇总,获得针对所述待处理文件的汇总结果。
5.一种数据处理方法,其特征在于,应用于任务管理服务器,所述方法包括:
接收数据库引擎发送的第一配置文件,所述第一配置文件中包括计算任务和数据分段的位置信息,所述数据分段是待处理数据中的一部分,所述第一配置文件是所述数据库引擎根据预设拆分规则确定出每个数据分段在待处理数据中的位置信息后,根据所述位置信息和针对所述待处理数据的计算任务所生成的;
将所述第一配置文件提交给多个任务处理设备,以使多个任务处理设备针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
6.一种数据处理系统,其特征在于,包括数据库引擎和任务管理服务器;
所述数据库引擎用于接收针对待处理数据的计算任务,根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息,根据所述计算任务和所述位置信息,生成第一配置文件,并将所述第一配置文件发送给所述任务管理服务器;
所述任务管理服务器用于接收所述数据库引擎发送的第一配置文件,并将该第一配置文件提交给多个任务处理设备,以通过所述多个任务处理设备并行执行所述各第一配置文件所携带的计算任务,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
7.一种数据处理装置,其特征在于,所述处理装置包括:
计算任务接收模块,用于接收针对待处理数据的计算任务;
位置信息确定模块,根据预设拆分规则,确定所述待处理数据包括的每个数据分段在所述待处理数据中的位置信息;
第一配置文件生成模块,用于根据所述计算任务和所述位置信息,生成第一配置文件;
第一配置文件发送模块,用于将所述第一配置文件发送给服务端,以通过所述服务端针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
8.一种数据处理装置,其特征在于,所述处理装置包括:
第一配置文件接收模块,用于接收数据库引擎发送的第一配置文件,所述第一配置文件中包括计算任务和数据分段的位置信息,所述数据分段是待处理数据中的一部分,所述第一配置文件是所述数据库引擎根据预设拆分规则确定出每个数据分段在待处理数据中的位置信息后,根据所述位置信息和针对所述待处理数据的计算任务所生成的;
第一配置文件提交模块,用于将所述第一配置文件提交给多个任务处理设备,以使多个任务处理设备针对多个数据分段并行执行所述计算任务,获得所述待处理数据的汇总结果,包括:将各数据分段转换为密文形式的密文分片,然后根据所述计算任务,针对密文分片进行基于多方安全计算协议的计算,获得中间结果,再对所述中间结果进行基于多方安全计算协议的汇总,获得针对所述待处理数据的汇总结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至4或5任一所述的方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1至4或5任一所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910955030 | 2019-10-09 | ||
CN2019109550300 | 2019-10-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631767A true CN112631767A (zh) | 2021-04-09 |
Family
ID=75283631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911108626.3A Pending CN112631767A (zh) | 2019-10-09 | 2019-11-13 | 数据处理方法、系统、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631767A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254956A (zh) * | 2021-05-07 | 2021-08-13 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113448962A (zh) * | 2021-06-02 | 2021-09-28 | 中科驭数(北京)科技有限公司 | 数据库数据管理方法和装置 |
CN113468564A (zh) * | 2021-06-30 | 2021-10-01 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN113517977A (zh) * | 2021-09-09 | 2021-10-19 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN115208958A (zh) * | 2022-06-10 | 2022-10-18 | 珠海格力电器股份有限公司 | 协议自动分段方法和装置 |
CN115361229A (zh) * | 2022-10-17 | 2022-11-18 | 太极计算机股份有限公司 | 一种政府公共数据的安全分享方法以及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148798A (zh) * | 2010-02-04 | 2011-08-10 | 上海果壳电子有限公司 | 大容量数据包的高效并行安全加解密方法 |
US20180075042A1 (en) * | 2016-09-15 | 2018-03-15 | Oracle International Corporation | Reusable transformation mechanism to allow mappings between incompatible data types |
CN109583224A (zh) * | 2018-10-16 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 一种用户隐私数据处理方法、装置、设备及系统 |
US20190130011A1 (en) * | 2017-10-27 | 2019-05-02 | EMC IP Holding Company LLC | Method, device and computer program product for data backup |
US20190220620A1 (en) * | 2018-01-18 | 2019-07-18 | Sap Se | Secure Substring Search to Filter Encrypted Data |
-
2019
- 2019-11-13 CN CN201911108626.3A patent/CN112631767A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148798A (zh) * | 2010-02-04 | 2011-08-10 | 上海果壳电子有限公司 | 大容量数据包的高效并行安全加解密方法 |
US20180075042A1 (en) * | 2016-09-15 | 2018-03-15 | Oracle International Corporation | Reusable transformation mechanism to allow mappings between incompatible data types |
US20190130011A1 (en) * | 2017-10-27 | 2019-05-02 | EMC IP Holding Company LLC | Method, device and computer program product for data backup |
US20190220620A1 (en) * | 2018-01-18 | 2019-07-18 | Sap Se | Secure Substring Search to Filter Encrypted Data |
CN109583224A (zh) * | 2018-10-16 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 一种用户隐私数据处理方法、装置、设备及系统 |
Non-Patent Citations (2)
Title |
---|
刘晖,彭智勇: "数据库安全", 31 October 2007, 武汉大学出版社, pages: 0025 * |
饶文碧主编: "Hadoop核心技术与实验", 30 April 2017, 武汉大学出版社, pages: 0008 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254956A (zh) * | 2021-05-07 | 2021-08-13 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113448962A (zh) * | 2021-06-02 | 2021-09-28 | 中科驭数(北京)科技有限公司 | 数据库数据管理方法和装置 |
CN113448962B (zh) * | 2021-06-02 | 2022-10-28 | 中科驭数(北京)科技有限公司 | 数据库数据管理方法和装置 |
CN113468564A (zh) * | 2021-06-30 | 2021-10-01 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN113517977A (zh) * | 2021-09-09 | 2021-10-19 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113517977B (zh) * | 2021-09-09 | 2021-11-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN115208958A (zh) * | 2022-06-10 | 2022-10-18 | 珠海格力电器股份有限公司 | 协议自动分段方法和装置 |
CN115208958B (zh) * | 2022-06-10 | 2023-08-25 | 珠海格力电器股份有限公司 | 协议自动分段方法和装置 |
CN115361229A (zh) * | 2022-10-17 | 2022-11-18 | 太极计算机股份有限公司 | 一种政府公共数据的安全分享方法以及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631767A (zh) | 数据处理方法、系统、装置、电子设备及可读存储介质 | |
US20200167366A1 (en) | Data processing method and device | |
US10454864B2 (en) | Delivering messages from message sources to subscribing recipients | |
Di Pietro et al. | Boosting efficiency and security in proof of ownership for deduplication | |
US20220083374A1 (en) | Method for processing data, task processing system and electronic equipment | |
US20100095374A1 (en) | Graph based bot-user detection | |
CN109033404B (zh) | 日志数据处理方法、装置和系统 | |
US11422994B2 (en) | Adaptive query processor for query systems with limited capabilities | |
Lopes et al. | Processing OLAP queries over an encrypted data warehouse stored in the cloud | |
WO2024027328A1 (zh) | 基于零信任数据访问控制系统的数据处理方法 | |
CN112632569A (zh) | 数据处理方法、系统、装置、电子设备及可读存储介质 | |
CN114598597B (zh) | 多源日志解析方法、装置、计算机设备及介质 | |
CN112764794A (zh) | 一种开源软件信息管理系统和方法 | |
US9135300B1 (en) | Efficient sampling with replacement | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN112862495A (zh) | 交易数据风险控制方法、装置、计算机设备和存储介质 | |
CN113590322A (zh) | 一种数据处理方法和装置 | |
CN112764935A (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
KR101638048B1 (ko) | 맵리듀스를 이용한 sql 질의처리방법 | |
Zhao et al. | Drexel at TREC 2014 Federated Web Search Track. | |
WO2017028553A1 (zh) | 一种消息安全管控方法、装置和系统 | |
CN113326683A (zh) | 一种报表生成方法及装置 | |
Li et al. | PIMRS: achieving privacy and integrity‐preserving multi‐owner ranked‐keyword search over encrypted cloud data | |
Asthana et al. | Retrieval of highly dynamic information in an unstructured peer-to-peer network | |
JP2022009381A5 (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 |