数据处理方法、系统、装置、电子设备及可读存储介质与流程

文档序号:24617875发布日期:2021-04-09 20:21阅读:45来源:国知局
数据处理方法、系统、装置、电子设备及可读存储介质与流程

本公开要求在2019年10月09日提交至中华人民共和国知识产权局、申请号为2019109557117、发明名称为“数据处理方法、系统、装置、电子设备及可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。

本申请实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、系统、装置、电子设备及可读存储介质。



背景技术:

随着数据处理技术和互联网大数据业务的发展,以及用户生活方式和企业经营方式的逐渐变化,用户/企业的习惯、状态、信息等逐渐数据化。其中的部分数据属于用户/企业的私有数据,例如个人身份信息、个人消费信息、个人考试成绩、银行信用等级、客户统计信息等等。一方面,用户/企业通常不希望其他用户或其他企业能随意获得这些私有数据。另一方面,在某些情况下,用户/企业又希望利用其他用户或其他企业的私有数据进行数据处理。

为了在不泄露私有数据的前提下,安全地实现数据处理,相关技术中通常基于多方安全计算协议执行私有数据与私有数据之间的计算,或者执行私有数据与公共数据之间的计算。这期间,私有数据持有方的私有数据不会被泄露给参与数据处理的其他方。在数据处理完成后,仅最终结果会被发送给参与数据处理的各方,因此能达到保护私有数据安全的目的。

然而上述数据处理方式的处理效率较低,在计算量较大的情况下,通常需要消耗很长的计算时间。



技术实现要素:

本申请实施例提供一种数据处理方法、系统、装置、电子设备及可读存储介质,旨在提高基于多方安全计算协议处理数据的处理效率。

本申请实施例第一方面提供了数据处理方法,应用于计算节点,所述方法包括:

获得第一配置文件和待处理的数据分段的密文分片,所述待处理的数据分段是将目标数据文件按照预设拆分规则拆分后获得,所述第一配置文件包含:针对所述数据分段的计算任务;

针对所述数据分段,与参与所述计算任务的其他计算节点进行基于多方安全计算协议的密文计算,得到所述数据分段对应的中间结果,其中,所述中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

可选地,在得到所述数据分段对应的中间结果后,所述方法还包括:

获得第二配置文件,所述第二配置文件包含:针对中间结果进行数据汇总的汇总任务;

根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,所述第一配置文件中还包含:用于缓存所述中间结果的目标缓存节点的信息;所述方法还包括:

根据所述目标缓存节点的信息,将所述中间结果缓存至对应的目标缓存节点。

可选地,所述方法还包括:

接收至少一个缓存节点发送的待汇总的中间结果;

获得第三配置文件,所述第三配置文件包含:针对中间结果进行数据汇总的汇总任务;

根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果;所述根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,包括:

针对所述目标数据文件所包含的每个数据分段,接收所述中间结果集中的一个中间结果,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对所述中间结果进行数据汇总计算。

可选地,在得到所述数据分段对应的中间结果集之后,所述方法还包括:

发送提示信息,所述提示信息用于表征该数据分段已获得中间结果集。

可选地,在得到汇总结果后,所述方法还包括:

将所述汇总结果发送给结果需求方。

可选地,所述第一配置文件中还包括:针对中间结果进行汇总的汇总任务;在得到所述数据分段对应的中间结果后,所述方法还包括:

根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,所述第一配置文件中还包括:针对中间结果进行汇总的汇总任务;在得到所述数据分段对应的中间结果后,所述方法还包括:

将所述中间结果发送给一组汇总节点,使得所述汇总节点在获得所述第一配置文件和该中间结果后,根据所述第一配置文件中包括的汇总任务,与参与所述汇总任务的其他汇总节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,所述第一配置文件中还包括汇总节点信息;所述将所述中间结果发送给一组汇总节点,包括:

根据所述第一配置文件中包括的所述汇总节点信息,将所述中间结果发送给对应的汇总节点。

可选地,所述计算节点中预存有汇总节点信息;所述将所述中间结果发送给一组汇总节点,包括:

根据预存的所述汇总节点信息,将所述中间结果发送给对应的汇总节点。

可选地,所述第一配置文件还包括位置信息;所述计算节点所获得的密文分片来源于数据节点获得的多个密文分片中的部分密文分片,所述数据节点在获得所述第一配置文件后,根据所述位置信息,从自身存储的目标数据文件中获得所述位置信息对应的数据分段,并对数据分段进行处理后得到的多个密文分片。

可选地,所述待处理的数据分段的密文分片是将所述数据分段进行随机分散处理后所获得的。

可选地,针对一个数据分段,参与所述计算任务的计算节点至少为2个。

可选地,并行执行所述目标数据文件拆分后的多个数据分段各自对应的计算任务。

本申请实施例第二方面提供一种数据处理系统,所述系统包括多个计算节点,所述多个计算节点用于执行以下步骤:

所述多个计算节点分别接收第一配置文件和待处理的数据分段的密文分片,所述待处理的数据分段是将目标数据文件按照预设拆分规则拆分成多个数据分段中的一个;所述第一配置文件包含:针对所述数据分段的计算任务;所述多个计算节点中的每个计算节点接收的为所述待处理数据分段的不同密文分片;

所述多个计算节点针对所述待处理的数据分段,进行基于多方安全计算协议的密文计算,得到该数据分段对应的中间结果;其中,所述中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

可选地,所述预设拆分规则包括但不限于以下任一种:

针对一个目标数据文件,将所述目标数据文件所包含的段数/行数进行平均拆分,每个数据分段中包含平均拆分后的段/行;

针对一个目标数据文件,将所述目标数据文件按段/行划分,每个数据分段包含预设段数/行数。

可选地,所述目标数据文件为多个,所述预设拆分规则包括以下任一种:

将所述目标数据文件数量进行平均拆分,每个数据分段包含平均拆分后的目标数据文件;

将所述多个目标数据文件按数量划分,每个数据分段包含预设数量个目标数据文件。

可选地,所述系统还包括数据节点,所述数据节点存储有所述目标数据文件,所述数据节点用于接收所述第一配置文件,所述第一配置文件中包含:数据分段在所述目标数据文件中的位置信息;或所述数据分段所包含的多个目标数据文件的标识信息,所述数据节点还用于:

根据所述数据分段在所述目标数据文件中的位置信息;或所述数据分段所包含的多个目标数据文件的标识信息,在所述目标数据文件中获取数据分段;

对所述数据分段进行随机分散处理,得到所述数据分段的密文分片。

可选地,所述第一配置文件中包含参与所述数据分段的计算任务的计算节点信息;所述数据节点还用于执行以下步骤:

根据所述计算节点信息,将所述数据分段的密文分片随机分发给对应的计算节点。

可选地,所述系统还包括多个缓存节点,所述第一配置文件还包含:所述数据分段对应的中间结果的目标缓存节点信息;所述计算节点还用于执行以下步骤:

根据所述目标缓存节点信息,将得到的所述数据分段对应的中间结果缓存至所述目标缓存节点。

可选地,所述目标缓存节点用于执行以下步骤:

接收清除缓存指令;

响应于所述清除缓存指令,将缓存的中间结果清除。

可选地,所述多个计算节点还用于执行以下操作:

分别获得所述目标数据文件拆分后的多个数据分段对应的部分中间结果;

获得第二配置文件,所述第二配置文件包含:针对中间结果进行数据汇总的汇总任务;

根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果;所述分别获得所述目标数据文件拆分后的多个数据分段对应的部分中间结果,包括:

针对所述目标数据文件所包含的每个数据分段,每个计算节点接收所述中间结果集中的一个中间结果。

可选地,得到汇总结果之后,所述计算节点还用于执行以下步骤:

将所述汇总结果返回给结果需求方。

可选地,得到所述数据分段对应的中间结果后,所述计算节点还用于:

发送提示信息,所述提示信息用于表征所述数据分段已获得中间结果集。

可选地,所述多个缓存节点中的一个或多个缓存节点部署在所述数据节点上。

可选地,所述第一配置文件还包括:针对中间结果进行汇总的汇总任务;所述系统还包括多个汇总节点,所述多个汇总节点用于:获得计算节点所得到的中间结果,基于多方安全计算协议,执行所述第一配置文件中包括的汇总任务,得到所述目标数据文件对应的汇总结果。

可选地,所述多个汇总节点中的部分或全部与多个计算节点是同一组设备;或者,所述多个汇总节点和所述多个计算节点是两组不同的设备。

可选地,在汇总节点与计算节点不是同一设备的情况下,所述汇总节点在执行所述第一配置文件中包括的汇总任务之前,还用于从计算节点获取中间结果,或者还用于接收计算节点发送的中间结果。

可选地,所述多个计算节点针对所述目标数据文件拆分后的多个数据分段并行执行基于多方安全计算协议的密文计算。

可选地,针对一个数据分段的计算任务,参与计算的计算节点数量至少为2个。

本申请实施例第三方面提供一种数据处理装置,所述装置包括:

获得模块,用于获得第一配置文件和待处理的数据分段的密文分片,所述待处理的数据分段是将目标数据文件按照预设拆分规则拆分后获得,所述第一配置文件包含:针对所述数据分段的计算任务;

计算模块,用于针对所述数据分段,与参与所述计算任务的其他计算节点进行基于多方安全计算协议的密文计算,得到所述数据分段对应的中间结果,其中,所述中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。

本申请实施例第五方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。

采用本申请实施例提供的数据处理方法,在目标数据文件被拆分成多个待处理的数据分段后,一个计算节点获得其中的部分数据分段的密文分片,并获得针对该数据分段的计算任务。该计算节点与参与该计算任务的其他计算节点基于多方安全计算协议,对该数据分段的多个密文分片进行密文计算,以获得该数据分段对应的中间结果。

与此同时,另一些计算节点针对目标数据文件的其他数据分段并行执行同样的操作,以获得其他数据分段各自对应的中间结果。如此,本申请将针对目标数据文件的计算任务转换为针对多个数据分段并行执行的计算任务,可以快速获得多个数据分段各自对应的中间结果。这些中间结果再经基于多方安全计算协议的数据汇总计算后,得到目标数据文件对应的汇总结果。如此,在保证目标数据文件的数据安全、防止目标数据文件泄露的条件下,提高了对目标数据文件的处理效率,因此该数据处理方法更具实用性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提出的数据交互系统示意图;

图2是本申请一实施例提出的数据处理方法的流程图;

图3是本申请一实施例提出的数据节点ds分发密文分片的示意图;

图4是本申请另一实施例提出的数据处理方法的流程图;

图5是本申请另一实施例提出的数据处理方法的流程图;

图6是本申请另一实施例提出的数据交互系统示意图;

图7是是本申请一实施例提出的数据处理系统示意图;

图8是本申请另一实施例提出的数据处理系统的示意图;

图9是本申请另一实施例提出的数据处理系统的示意图;

图10是本申请一实施例提供的数据处理装置的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,均应属于本申请保护的范围。

相关技术中,用户/企业的习惯、状态、信息等逐渐被数据化。其中的部分数据属于用户/企业的私有数据,例如个人身份信息、个人消费信息、个人考试成绩,例如企业的银行信用等级、客户统计信息等等。一方面,用户/企业通常不希望其他用户或其他企业能随意获得这些私有数据。另一方面,在某些情况下,用户/企业又希望利用其他用户或其他企业的私有数据进行数据处理。

为了在不泄露私有数据的前提下,安全地实现数据处理,相关技术中通常基于多方安全计算协议执行私有数据与私有数据之间的计算,或者执行私有数据与普通数据之间的计算。这期间,私有数据持有方的私有数据不会被泄露给参与数据处理的其他方。在数据处理完成后,仅最终结果会被发送给参与数据处理的各方,因此能达到保护私有数据安全的目的。

然而上述数据处理方式的处理效率较低,在计算量较大的情况下,通常需要消耗很长的计算时间。例如针对用户输入的一个结构化查询语句sql(structuredquerylanguage),以基于多方安全计算协议的方式执行该sql语句的速度,远远低于以基于明文的计算方式执行该sql语句的速度,可见上述数据处理方式的实用性较低。

有鉴于此,本申请实施例提出一种数据处理方法,旨在提高基于多方安全计算协议处理私有数据的处理效率。参考图1,图1是本申请一实施例提出的数据交互系统示意图。如图1所示,数据交互系统主要包括客户端、数据库引擎、任务管理服务器、数据节点ds以及计算节点es。其中,数据节点ds和计算节点es的数量可以是多个,为了简化附图,图1中仅示出了一个数据节点ds和两个计算节点es。本申请实施例提供的数据处理方法应用于计算节点es。

本申请实施例提供的数据处理方法的一种可能的应用场景可以是:针对持有大量私有数据、并可以基于这些私有数据向用户提供数据处理服务的企业。例如,银行持有多个用户各自的信用分数,多个用户各自的信用分数属于用户的私有数据。某科创企业在仅知道其自身信用分数的情况下,希望知道所有同类企业中,信用分数高于该科创企业的其他科创企业的总数。此种场景下,可利用本发明的数据交互系统,在不获知其他用户具体信用分数的情况下,获得信用分数高于该科创企业的其他科创企业的总数。具体地,该科创企业可以通过其控制的客户端输入用于查询其他科创企业信用分数的sql语句,该sql语句中包括比较指令和统计指令,银行根据该sql语句读取出其余各科创企业的信用分数,再根据该sql语句中的比较指令,将该科创企业的信用分数分别与其余各科创企业的信用分数进行对比,并根据该sql语句中的统计指令,统计出信用分数大于该科创企业信用分数的所有科创企业的总数。为了达到提高基于多方安全计算协议处理私有数据的处理效率的目的,银行可基于本申请实施例在下文所提供的数据处理方法执行该sql语句,从而更快速地为该科创企业输出统计结果。

本申请实施例提供的数据处理方法的另一种可能的应用场景可以是:应用于专门向用户提供基于密文的查询、计算等数据处理服务的平台。

应当理解的,上述两种应用场景仅作为示例,不应理解为是对本申请的限定。本申请对具体的应用场景不做限定。

参考图2,图2是本申请一实施例提出的数据处理方法的流程图,该数据处理方法应用于一个计算节点es。如图2所示,该方法包括以下步骤:

步骤s21:获得第一配置文件和待处理的数据分段的密文分片,所述待处理的数据分段是将目标数据文件按照预设拆分规则拆分后获得,所述第一配置文件包含:针对所述数据分段的计算任务。

本实施例中,计算节点es在获得待处理的数据分段的密文分片之前,数据交互系统中一种可能的实施方式是:

如图1所示,个人用户/企业用户通过客户端向数据库引擎发送用于从多个数据文件中指定目标数据文件的指定信息,以及针对该目标数据文件的计算任务。具体地,在某些实施例中,所述指定信息可以是用户编辑的sql语句中的部分信息。例如,用户编辑的sql语句用于查询和读取数据文件a,则通常情况下,该sql语句中携带有数据文件a的标识,因此数据文件a的标识可视为所述指定信息。所述计算任务可以是用户编辑的sql语句中的部分语句,例如前述比较指令和统计指令。

数据库引擎在接收到所述指定信息和所述计算任务后,根据预设拆分规则,确定每个数据分段在目标数据文件中的位置信息,旨在使存储有目标数据文件的数据节点ds可以根据这些位置信息,从目标数据文件读取出对应的数据分段。或者旨在使存储有目标数据文件的数据节点ds可以根据这些位置信息,将目标数据文件拆分成多个数据分段。数据库引擎针对每个即将读取出/拆分出的数据分段,根据计算任务和该数据分段在目标数据文件中的位置信息,生成针对该数据分段的第一配置文件。数据库引擎将多个数据分段各自对应的第一配置文件发送给任务管理服务器。其中,一个第一配置文件相当于一个针对其对应数据分段的数据处理子请求。

如图1所示,在某些实施例中,第一配置文件中还可以包括目标数据节点的信息。所述目标数据节点是指存储有目标数据文件的数据节点ds。任务管理服务器在接收到多个第一配置文件后,针对每个第一配置文件,根据其中的目标数据节点的信息,将该第一配置文件发送给对应的数据节点ds。数据节点ds针对接收到的多个第一配置文件中的每个第一配置文件,根据该第一配置文件中携带的数据分段的位置信息,从目标数据文件中读取出数据分段,并针对该数据分段做随机分散处理,得到该数据分段的至少两个密文分片。或者,数据节点ds针对接收到的多个第一配置文件,根据各第一配置文件中包括的位置信息,将目标数据文件拆分成多个数据分段,并针对每个数据分段做随机分散处理,得到各数据分段的至少两个密文分片。

在另一些实施例中,第一配置文件中可以不包括目标数据节点的信息。任务管理服务器在接收到多个第一配置文件后,将每个第一配置文件广播给所有的数据节点ds。每个数据节点ds针对接收到的每个第一配置文件,根据其中携带的数据分段的位置信息,确定其自身是否存储有目标数据文件。在其自身存储有目标数据文件的情况下,从目标数据文件中读取出数据分段,并针对该数据分段做随机分散处理,得到该数据分段的至少两个密文分片。此外,如图1所示,在某些实施例中,第一配置文件中还可以包括一组目标计算节点的信息。任务管理服务器在接收到多个第一配置文件后,针对每个第一配置文件,根据其中的所述一组目标计算节点的信息,将该第一配置文件发送给对应的一组计算节点。如此,在步骤s21中,计算节点es获得了第一配置文件。

同样地,数据节点ds在根据一个第一配置文件中的位置信息,从目标数据文件中读取出数据分段,并在将数据分段分散处理得到密文分片后,数据节点ds可以根据该第一配置文件中的所述一组目标计算节点的信息,将这些密文分片分发给该组计算节点中包括的多个计算节点es。如此,在步骤s21中,计算节点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进行对比”,如上所述,在某些实施例中,该第一配置文件中还包括目标数据节点的信息以及一组目标计算节点的信息。数据库引擎将该第一配置文件发送给任务管理服务器。应当理解的,本申请在实施期间,上述位置信息、计算任务、目标数据节点的信息以及一组目标计算节点的信息通常以计算机程序语言的形式表示。上述数字仅为介绍方案方便,实际操作中数值会不同,更大或更小。

任务管理服务器将该第一配置文件发送给对应的数据节点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′}。

步骤s22:针对所述数据分段,与参与所述计算任务的其他计算节点进行基于多方安全计算协议的密文计算,得到所述数据分段对应的中间结果,其中,所述中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

本实施例中,计算节点es基于多方安全计算协议,对第一配置文件中的计算任务进行处理,得到多方安全计算指令。在实现时,对于所述计算任务被处理成的多方安全计算指令的具体内容,通常取决于各计算节点es所搭载的多方安全计算算法的具体算法类型。基于不同的算法类型处理计算任务,通常获得不同的多方安全计算指令。

本实施例中,计算节点es中可预先存储有多条针对不同类型的计算任务的翻译逻辑。每条翻译逻辑用于指导计算节点es将计算任务翻译成合适的多方安全计算指令。其中不同类型的计算任务是指:计算任务中加、减、乘、除、与、或、非等计算类型不同,和/或,参与计算的两方数据中是否存在公开数据的不同。

如图1所示,在上述步骤s22中,一组计算节点中的计算节点es基于多方安全计算协议,将计算任务翻译成多方安全计算指令后,与该多方安全计算指令中的其他计算节点(即该组计算节点中的其他计算节点),共同响应该多方安全计算指令,得到数据分段对应的两个或多个中间结果。通常情况下,一个数据分段对应两个中间结果,称为一个中间结果集。该数据分段的中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

通过执行包括上述步骤s21和步骤s22的数据处理方法,在目标数据文件按照预设拆分规则拆分成多个待处理的数据分段后,针对一个数据分段可以由一组计算节点完成该计算任务,则针对多个数据分段可以由多组计算节点分布式并行完成计算任务。其中一组计算节点至少包括2个计算节点,例如可以包括4个计算节点。换言之,针对一个数据分段,参与该数据分段对应的计算任务的计算节点至少为2个,例如可以为4个或更多。一组计算节点中每个计算节点的操作如上述步骤s21和步骤s22中所述。由于计算过程是基于数据分段密文分片执行的,未暴露数据分段的明文,因此本发明实现了在保证目标数据文件的数据安全、防止目标数据文件泄露的条件下,提高对目标数据文件的处理效率的目的,因此该数据处理方法更具实用性。

本申请在通过步骤s21和步骤s22获得数据分段各自对应的中间结果后。参考图4,图4是本申请另一实施例提出的数据处理方法的流程图。如图4所示,该方法除了包括步骤s21和步骤s22,还包括以下步骤:

步骤s23:获得第二配置文件,所述第二配置文件包含:针对中间结果进行数据汇总的汇总任务。

本实施例中,汇总任务用于针对多个数据分段各自对应的两个或多个中间结果进行汇总,得到该目标数据文件的汇总结果。

如图1所示,在某些实施例中,数据库引擎在针对目标数据文件的各个数据分段生成各自对应的第一配置文件的同时,生成所述汇总任务。然后数据库引擎将该汇总任务封装为第二配置文件发送给任务管理服务器,并通过任务管理服务器将该第二配置文件发送给计算节点es。如此,计算节点es获得第二配置文件。

沿用上述示例,可以将数据节点ds存储的多个科创企业的信用分数作为一个目标数据文件,数据库引擎根据预设规则,确定该目标数据文件的多个数据分段各自的位置信息。其中,每个数据分段中包括部分科创企业各自的信用分数,例如每个数据分段中包括50个科创企业各自的信用分数。一方面,对于上述科创企业通过其控制的客户端输入的sql语句中包括的比较指令和统计指令,数据库引擎可以将该比较指令和统计指令作为所述计算任务,该计算任务用于统计一个数据分段中,信用分数大于1350分的科创企业的总数。

另一方面,数据库引擎在确定多个数据分段各自的位置信息的同时,可以生成汇总任务,该汇总任务用于对各个数据分段对应的统计数据进行累加。数据库引擎将生成的汇总任务封装成第二配置文件,并通过任务管理服务器将该第二配置文件发送给计算节点es。然后一组用于汇总中间结果的计算节点中的各计算节点获得所述第二配置文件,该第二配置文件中包括汇总任务。如此,在下述步骤s24中,该组计算节点可基于该汇总任务,针对多个中间结果各自的统计数据进行累加。

步骤s24:根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

如上所述,本实施例中,计算节点es可根据其预先存储的多条翻译逻辑,将汇总任务翻译处理成对应的多方安全计算指令。然后针对每条多方安全计算指令,与该多方安全计算指令中的其他计算节点es共同响应该多方安全计算指令,得到数据分段对应的汇总结果。

在某些实施例中,对中间结果进行数据汇总的是一组计算节点,该组计算节点中至少包括2个计算节点,例如可以包括4个计算节点。其中每个计算节点获得至少两个中间结果,并且每个计算节点不能获得某一个数据分段的全部中间结果。如此,该组计算节点中的每个计算节点在将汇总任务翻译处理成对应的多方安全计算指令后,然后针对每条多方安全计算指令,与该组计算节点中的其他计算节点共同响应该多方安全计算指令,得到汇总结果。

考虑到本申请中,各计算节点es获得中间结果的时间存在先后差别,为了应对这一问题。本申请在步骤s21中,计算节点es所获得的第一配置文件中还可以包含:用于缓存所述中间结果的目标缓存节点的信息。在通过上述步骤s21和步骤s22获得数据分段各自对应的中间结果后。还可以参考图5,图5是本申请另一实施例提出的数据处理方法的流程图。如图5所示,该方法除了包括步骤s21和步骤s22,还包括以下步骤:

步骤s25:根据所述目标缓存节点的信息,将所述中间结果缓存至对应的目标缓存节点。

示例地,参考图6,图6是本申请另一实施例提出的数据交互系统示意图。如图6所示,数据交互系统还包括至少一个缓存节点。所述至少一个缓存节点中的部分缓存节点可以是独立的实体设备,部分缓存节点可以是部署在数据节点ds中的虚拟设备,还有部分缓存节点可以是部署在计算节点es中的虚拟设备。为简化附图,图6中仅示出一个缓存节点,并且图6中省略了客户端。

本实施例中,第一配置文件中包含的缓存节点信息表征了计算节点es与目标缓存节点之间的对应关系。例如缓存节点信息具体可以是:计算节点es1对应缓存节点1,计算节点es2对应缓存节点2,计算节点es3对应缓存节点3,计算节点es4对应缓存节点4。如此,在步骤s25中,接收到第一配置文件的计算节点es在获得密文分片的中间结果后,从缓存节点信息中查询与其对应的目标缓存节点的信息,从而将其获得的中间结果缓存至其对应的目标缓存节点。

在某些实施例中,为了降低数据的碎片化存储,可以将一个数据分段对应的多个中间结果缓存至同一缓存节点。并且,为了确保数据安全,该缓存节点最好是部署在存储有该数据分段的数据节点ds中。

示例地,参考图7,图7是本申请一实施例提出的数据处理系统示意图,该数据处理系统可作为图1或图6所示的数据交互系统中的一部分。如图7所示,数据库引擎针对目标数据文件的数据分段f生成的第一配置文件中,携带的一组目标计算节点的信息所指示的计算节点如图7中的es1、es2、es3以及es4。该第一配置文件中携带的目标数据节点的信息所指示的数据节点如图7中的ds3。此外,该第一配置文件中携带的缓存节点信息是:es1、es2、es3以及es4均对应缓存节点3。并且如图7所示,缓存节点3设置在数据节点ds3中。

如图7所示,任务管理服务器在接收到该第一配置文件后,将该第一配置文件发送给ds3、es1、es2、es3以及es4。为了简化附图,图7中仅示出了任务管理服务器向ds3发送第一配置文件的过程。其中,ds3根据数据分段f的位置信息,从目标数据文件中读取出数据分段f,并对其进行随机分散处理,获得四个密文分片,分别为f1、f2、f3以及f4。ds3根据第一配置文件中的所述一组目标计算节点的信息,将这四个密文分片分发给es1、es2、es3以及es4。如图7中各计算节点es之间的双向箭头(所示双向箭头表示计算节点间执行的密文计算),四个计算节点es中的每个计算节点es在接收到第一配置文件和密文分片后,基于多方安全计算协议,与参与计算任务(即第一配置文件中所携带的计算任务)的其他计算节点,对密文分片进行处理,获得数据分段f对应的中间结果。

如图7中的虚线箭头所示,四个计算节点中的每个计算节点在获得中间结果后,根据第一配置文件中携带的缓存节点信息,将其获得的中间结果缓存至缓存节点3中。由于缓存节点3位于存储有目标数据文件的数据节点ds3中,因此即使缓存节点3获得了数据分段f对应的全部中间结果,也不会存在数据分段f被泄露给其他节点的问题,因此在保证数据安全的情况下,有效降低了数据的碎片化存储。应当理解的,图7中的计算节点es5、es6、es7以及es8作为另一组计算节点,可以用于针对目标数据文件的另一个数据分段的密文分片并行进行密文处理。为了简化附图,图7中详细未示出该组计算节点的处理过程。

如图5所示,该方法还包括以下步骤:

步骤s26:接收至少一个缓存节点发送的待汇总的中间结果。

如图6所示,在某些实施例中,执行所述步骤s26以及下文所述步骤s27和步骤s28的计算节点es,可以是参与执行上述步骤s21、步骤s22以及步骤s25的多个计算节点中的部分计算节点。

在另一些实施例中,执行所述步骤s26以及下文所述步骤s27和步骤s28的计算节点es,可以是另一组计算节点。该组计算节点未参与执行上述步骤s21、步骤s22以及步骤s25。

针对执行所述步骤s26的多个计算节点中的一个计算节点,该计算节点es接收的两个或多个中间结果可以分别是不同数据分段的中间结果。具体地,一个数据分段对应一个中间结果集,该中间结果集中包含两个中间结果。计算节点es针对所述目标数据文件的每个数据分段,接收该数据分段的中间结果集中的一个中间结果。通过限制一个计算节点es仅能接收数据分段的中间结果集中的一个中间结果,防止一个计算节点接收到某一数据分段的全部中间结果,避免计算节点可根据全部中间结果反推出该数据分段。

沿用上述示例,处于数据节点ds3中的缓存节点3存储有数据分段f对应的全部中间结果。假设处于数据节点ds3中的缓存节点4存储有数据分段g对应的全部中间结果。如此,执行所述步骤s26的计算节点es可以接收缓存节点3发送的一个中间结果,并接收缓存节点4发送的一个中间结果。在某些实施例中,在计算节点es接收缓存节点发送的中间结果之前,数据库引擎可以向任务管理服务器发送汇总指令,该汇总指令中包括:用于指导目标缓存节点将中间结果发送给相应计算节点es的指导信息。任务管理服务器将汇总指令转发给相应的目标缓存节点后,目标缓存节点根据汇总指令中的所述指导信息,将其存储的中间结果发送给对应的计算节点es。

其中,数据库引擎向任务管理服务器发送汇总指令的前提是:目标数据文件的所有数据分段均获得对应的中间结果。为了使数据库引擎能掌握各组计算节点es对数据分段的密文分片的执行进度,在某些实施例中,计算节点es在得到数据分段对应的中间结果集之后,还可以发送提示信息,所述提示信息用于表征该数据分段已获得中间结果集。

具体地,计算节点es可以将提示信息发送给任务管理服务器,经任务管理服务器将提示信息转发给数据库引擎。由于数据库引擎在早期根据预设拆分规则,确定每个数据分段在目标数据文件中的位置信息时,已知了数据分段的数量。因此数据库引擎可根据接收到的提示信息的数量和数据分段的数量,确定是否所有数据分段均获得对应的中间结果。为简化附图,图6中未示出计算节点es发送提示信息的过程。

步骤s27:获得第三配置文件,所述第三配置文件包含:针对中间结果进行数据汇总的汇总任务。

步骤s28:根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

针对上述步骤s27和步骤s28的具体实施方式,可参考上述步骤s23和步骤s24的相应说明,和/或,图6所示内容,本申请在此不做赘述。其中,所述第三配置文件等同于上述第二配置文件。

本申请中,在通过上述步骤s24或步骤s28后,计算节点es获得了数据分段的汇总结果。计算节点es可以将汇总结果发送给结果需求方。在一些实施例中,所述结果需求方可以是存储有目标数据文件的数据节点。

前述部分实施例中,计算任务被包含在第一配置文件中,计算节点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也可以理解为针对中间结果的汇总任务。

如此,计算节点在通过执行步骤s21和步骤s22得到数据分段对应的中间结果后,还可以执行以下步骤:

步骤s22-a:根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

其中,根据第一配置文件中的计算任务获得中间结果的计算节点,又用于根据第一配置文件中的汇总任务,对中间结果进行汇总,得到汇总结果。

或者,在另一些实施例中,针对中间结果进行汇总的汇总任务可以直接包括在第一配置文件中。如此,计算节点在通过执行步骤s21和步骤s22得到数据分段对应的中间结果后,还可以执行以下步骤:

步骤s22-b:将所述中间结果发送给一组汇总节点,使得所述汇总节点在获得所述第一配置文件和该中间结果后,根据所述第一配置文件中包括的汇总任务,与参与所述汇总任务的其他汇总节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

其中,执行汇总任务的汇总节点和执行计算任务的计算节点是不同的两组设备。任务管理服务器将第一配置文件发送给用于执行计算任务的计算节点时,还将第一配置文件发送给用于执行汇总任务的汇总节点,使汇总节点能从第一配置文件中提取出汇总任务。

其中,对于哪些设备被作为汇总节点,可以管理员预先指定的。具体地,管理员可以预先编辑一份汇总节点信息,其中包括被指定成汇总节点的设备的设备标识。该份汇总节点信息可以预存在计算节点中,从而使得计算节点在通过执行步骤s21和步骤s22得到数据分段对应的中间结果后,可以根据预存的所述汇总节点信息,将所述中间结果发送给对应的汇总节点。

此外,该份汇总节点信息还可以预存在任务管理服务器中,任务管理服务器在接收到数据库引擎发送的第一配置文件后,可以根据预存的所述汇总节点信息,将所述第一配置文件发送给对应的汇总节点,从而使汇总节点可以从其中提取出汇总任务。

或者,对于哪些设备被作为汇总节点,还可以是数据库引擎指定的,数据库引擎生成的第一配置文件中包括汇总节点信息。如此,计算节点在通过执行步骤s21和步骤s22得到数据分段对应的中间结果后,可以根据所述第一配置文件中包括的所述汇总节点信息,将所述中间结果发送给对应的汇总节点。

此外,任务管理服务器在接收到数据库引擎发送的第一配置文件后,可以根据所述第一配置文件中包括的所述汇总节点信息,将所述第一配置文件发送给对应的汇总节点。

如前各实施例所提及的,第一配置文件还包括位置信息;所述计算节点所获得的密文分片来源于数据节点获得的多个密文分片中的部分密文分片,所述数据节点在获得所述第一配置文件后,根据所述位置信息,从自身存储的目标数据文件中获得所述位置信息对应的数据分段,并对数据分段进行处理后得到的多个密文分片。

其中,如前所述,每个第一配置文件中可以仅包括一个数据分段的位置信息。如此,存储有完整目标数据文件的数据节点会获得多个第一配置文件,并根据每个第一配置文件中包括的位置信息,从其存储的目标数据文件中获得对应的数据分段。

或者,第一配置文件可以包括所有数据分段的位置信息。如此,存储有完整目标数据文件的数据节点可以仅获得一份第一配置文件,并根据该份第一配置文件中包括的位置信息,从其存储的目标数据文件中获得对应的多个数据分段。

基于同一发明构思,本申请一实施例提供一种数据处理系统。参考图8,图8是本申请一实施例提出的数据处理系统的示意图。如图8所示,该数据处理系统主要包括多个计算节点。多个计算节点用于:

分别接收第一配置文件和待处理的数据分段的密文分片,所述待处理的数据分段是将目标数据文件按照预设拆分规则拆分成多个数据分段中的一个;所述第一配置文件包含:针对所述数据分段的计算任务;所述多个计算节点中的每个计算节点接收的为所述待处理数据分段的不同密文分片;

针对所述待处理的数据分段,进行基于多方安全计算协议的密文计算,得到该数据分段对应的中间结果;其中,所述中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

本实施例中,各计算节点es可以为一实体计算设备,或者可以为实体计算设备承载的虚拟设备。本申请对此不做限定。

如图8所示,数据处理系统包括多组计算节点,每组计算节点用于处理目标数据文件的一个或部分数据分段。以每组计算节点用于处理目标数据文件的一个数据分段为例,目标数据文件的一个数据分段被随机分散为多个密文分片后,这些密文分片被分发给一组计算节点中的多个计算节点es,进行基于多方安全计算协议的处理。如此,图8中示出的多组计算节点并行地对目标数据文件的多个数据分段进行处理,因此有效提高了目标数据文件的处理效率。

如前所述,各计算节点es在分别接收第一配置文件之前,客户端、数据库引擎、任务管理服务器、数据节点ds以及计算节点es之间的交互过程可参考上文针对步骤s21的解释说明,和/或,参考图1所示内容,本申请在此不做赘述。

其中,数据库引擎在根据预设拆分规则,确定每个数据分段在目标数据文件中的位置信息时,所依据的预设拆分规则可以包括但不限于以下任一种:

第一种,针对一个目标数据文件,将所述目标数据文件所包含的段数/行数进行平均拆分,每个数据分段中包含平均拆分后的段/行。

示例地,以所述第一种预设拆分规则为例,假设某一目标数据文件的总行数为360行,数据库引擎需要生成四个分别针对不同数据分段的第一配置文件。如此,数据库引擎根据目标数据文件的总行数,平均地划分出每个数据分段在目标数据文件中的位置。其中,第一个数据分段的位置信息是“第1至第90行”,第二个数据分段的位置信息是“第91至第180行”,第三个数据分段的位置信息是“第181至第270行”,第四个数据分段的位置信息是“第271至第360行”。

第二种,针对一个目标数据文件,将所述目标数据文件按段/行划分,每个数据分段包含预设段数/行数。

示例地,以所述第二预设拆分规则为例,假设某一目标数据文件的总行数为360行,数据库引擎需要生成四个分别针对不同数据分段的第一配置文件。如此,数据库引擎以100行为断点,确定出每个数据分段在目标数据文件中的位置。其中,第一个数据分段的位置信息是“第1至第100行”,第二个数据分段的位置信息是“第101至第200行”,第三个数据分段的位置信息是“第201至第300行”,第四个数据分段的位置信息是“第301至第360行”。

此外,用户通过客户端指定的目标数据文件的数量可能有多个。换言之,用户输入的sql语句中涉及多个目标数据文件。对此,数据库引擎在根据预设拆分规则,确定每个数据分段在目标数据文件中的位置信息时,所依据的预设拆分规则可以包括但不限于以下任一种:

第三种,将所述目标数据文件数量进行平均拆分,每个数据分段包含平均拆分后的目标数据文件。

示例地,以所述第三种预设拆分规则为例,假设用户通过客户端指定的目标数据文件的数量为6个,例如客户端输入的sql语言中携带有6个目标数据文件各自的标识。数据库引擎生成三个分别针对不同目标数据文件的第一配置文件。如此,数据库引擎根据目标数据文件的总数量,平均地划分出三组目标数据文件,并生成相应的三个第一配置文件。其中,第一个第一配置文件中携带的位置信息是“第1和第2个目标数据文件的标识”,第二个第一配置文件中携带的位置信息是“第3和第4个目标数据文件的标识”,第三个第一配置文件中携带的位置信息是“第5和第6个目标数据文件的标识”。

第四种,将所述多个目标数据文件按数量划分,每个数据分段包含预设数量个目标数据文件。

示例地,以所述第四种预设拆分规则为例,假设用户通过客户端指定的目标数据文件的数量为6个,例如客户端输入的sql语言中携带有6个目标数据文件各自的标识。数据库引擎生成四个第一配置文件,其中,第一个第一配置文件中携带的位置信息是“第1和第5个目标数据文件的标识”,第二个第一配置文件中携带的位置信息是“第2和第6个目标数据文件的标识”,第三个第一配置文件中携带的位置信息是“第3个目标数据文件的标识”,第四个第一配置文件中携带的位置信息是“第4个目标数据文件的标识”。

应当理解的,以上所列举的预设拆分规则仅作为本申请的多种可选拆分规则中的示例,不应理解为对本申请的限定。本申请通过预设拆分规则确定每个数据分段在目标数据文件中的位置信息,使数据节点ds可根据该位置信息从目标数据文件中截取出该数据分段。多组计算节点ds针对多个数据分段各自的密文分片并行处理,从而提高数据处理效率。

本实施例中,如前所述,各计算节点在针对待处理的数据分段,进行基于多方安全计算协议的密文计算时,一种可行的实施方式是:

针对一组计算节点中的一个计算节点es,其基于多方安全计算协议,对第一配置文件中的计算任务进行翻译处理,得到多方安全计算指令。在实现时,对于所述计算任务被处理成的多方安全计算指令的具体内容,通常取决于各计算节点es所搭载的多方安全计算算法的具体算法类型。基于不同的算法类型处理计算任务,通常获得不同的多方安全计算指令。

在该计算节点es基于多方安全计算协议,将计算任务翻译成多方安全计算指令后,与该多方安全计算指令中的其他计算节点(即该组计算节点中的其他计算节点),共同响应该多方安全计算指令,得到数据分段对应的两个或多个中间结果。该数据分段的中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

如图8所示,本实施例中,多组计算节点针对所述目标数据文件拆分后的多个数据分段执行基于多方安全计算协议的并行处理,从而有效提高了目标数据文件的处理效率。其中,每组计算节点在针对一个数据分段进行处理时,具体是针对该数据分段的多个密文分片进行基于多方安全计算协议的密文计算,并且针对多个密文分片的计算过程也可以采用并行计算的方式。如图8中各计算节点es之间的双向箭头,这些双向箭头即表示计算节点es之间执行的密文计算。

如图8所示,数据处理系统中还可以包括一个或多个数据节点ds,数据节点ds可以为一实体存储设备,或者可以为实体存储设备承载的虚拟设备。本申请对此不做限定。

数据节点ds上存储有私有数据。其中,所述私有数据是指以数字化形式存储并且具有不希望被泄露属性的数据,其包括但不限于:个人/企业身份信息、个人/企业账户信息、个人体貌特征信息、个人/企业消费信息(如账单)、个人/企业因使用软件的行为而产生的信息(如移动路线、浏览时长等)、企业收集到的具有商业价值的评价信息、以及企业根据至少上述各信息进行分析后得到的信息等。一个或多个数据节点ds中至少存在一个数据节点ds存储有用户输入的sql语句中所指定的目标数据文件。

存储有目标数据文件的该数据节点ds用于接收所述第一配置文件,所述第一配置文件中包含:数据分段在所述目标数据文件中的位置信息;或所述数据分段所包含的多个目标数据文件的标识信息。如前所述,数据分段的位置信息可能是数据分段在目标数据文件中的行数或段数信息。数据分段的标识信息可以是多个目标数据文件中部分目标数据文件的标识信息。

该数据节点ds在接收到第一配置文件后,还用于:根据所述数据分段在所述目标数据文件中的位置信息;或所述数据分段所包含的多个目标数据文件的标识信息,在所述目标数据文件中获取数据分段;对所述数据分段进行随机分散处理,得到所述数据分段的密文分片。

本申请中,一个第一配置文件针对一个数据分段,因此一个第一配置文件中包括一个数据分段的位置信息。如果该数据节点ds中存储的目标数据文件需要被拆分成4个数据分段,则一种可能的情况是:该数据节点ds接收到4个不同的第一配置文件,每个第一配置文件分别包括一个的数据分段的位置信息。另一种可能的情况是:另一数据节点ds也存储有目标数据文件,则两个存储有目标数据文件的数据节点ds分别接收到两个不同的第一配置文件。

数据节点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′}。

此外,如前所述,第一配置文件中还可以包含参与所述数据分段的计算任务的计算节点信息。如此,数据节点ds在获得数据分段的密文分片后,根据所述计算节点信息,将所述数据分段的密文分片随机分发给对应的计算节点。

示例地,假设第一配置文件中包含的一组计算节点信息是:计算节点9、计算节点10、计算节点11以及计算节点12。如此,数据节点ds在根据该第一配置文件中的位置信息获得数据分段,并将该数据分段随机分散成{x1、x1′}、{x2、x2′}、{xa、xa′}、{xb、xb′}等四个密文分片后,数据节点ds将这四个密文分片随机分发给计算节点9、计算节点10、计算节点11以及计算节点12。

如图8所示,数据处理系统中还可以包括一个或多个缓存节点。如果数据处理系统仅包括一个缓存节点,该缓存节点可以是独立的实体设备,该缓存节点也可以是部署在数据节点ds中的虚拟设备,或者还可以是部署在计算节点es中的虚拟设备。如果数据处理系统中包括多个缓存节点,则部分缓存节点可以是独立的实体设备,部分缓存节点可以是部署在数据节点ds中的虚拟设备,还有部分缓存节点可以是部署在计算节点es中的虚拟设备。

本申请中,如前所述,第一配置文件中还可以包含:所述数据分段对应的中间结果的目标缓存节点信息。计算节点es在根据其接收的第一配置文件中的计算任务,对其接收的数据分段的密文分片进行基于多方安全计算协议的密文计算,得到该数据分段对应的中间结果后,还可以根据第一配置文件中的目标缓存节点信息,将得到的中间结果缓存至目标缓存节点。

为了降低数据的碎片化存储,可以将一个数据分段对应的多个中间结果缓存至同一缓存节点。并且,为了确保数据安全,该缓存节点最好是部署在存储有该数据分段的数据节点ds中。具体的缓存方式可参考图7,以及上文针对图7的说明,本申请在此不做赘述。

参考图9,图9是本申请一实施例提出的数据处理系统的示意图。图9所示各部分具有图7所示各部分的全部功能,为简化附图,图9中省略图7中的部分箭头。如图9所示,所述多个计算节点es还用于:分别获得所述目标数据文件拆分后的多个数据分段对应的部分中间结果;获得第二配置文件,所述第二配置文件包含:针对中间结果进行数据汇总的汇总任务;根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。为了简化附图,图9中未示出各计算节点es获得第二配置文件的过程。

需要说明的是,在图9中,获得中间结果、并对中间结果进行数据汇总的一组计算节点,是参与针对密文分片进行密文计算的多组计算节点中的一组。应当理解的,图9仅示出了本申请多种可实施方式中的一种。例如数据处理系统也可以另外设立一组计算节点,专用于对多个数据分段的多个中间结果进行数据汇总。或者,数据处理系统还可以从参与针对密文分片进行密文计算的多组计算节点中的每一组中,选出部分计算节点,多个被选出的计算节点组成一组新的计算节点,专用于对多个数据分段的多个中间结果进行数据汇总。

如前所述,在某些实施例中,所述汇总任务可以是计算节点es在根据翻译逻辑,将计算任务翻译成多方安全计算指令的同时,根据翻译逻辑而生成的。对于所述汇总任务的具体内容,通常取决于各计算节点es所搭载的多方安全计算算法的具体算法类型。基于不同的算法类型处理计算任务,通常获得不同的多方安全计算指令。如此,计算节点es在生成汇总任务后,可以将该汇总任务封装成第二配置文件。在某些实施例中,针对中间结果参与数据汇总的计算节点es,与针对密文分片执行计算任务的计算节点es,是不同的计算节点。在此情况下,针对密文分片执行计算任务的计算节点es将其封装的第二配置文件,发送给针对中间结果参与数据汇总的计算节点es。

如前所述,在某些实施例中,在计算节点es获得部分中间结果之前,数据库引擎可以向任务管理服务器发送汇总指令,该汇总指令中包括:用于指导目标缓存节点将中间结果发送给相应计算节点es的指导信息。任务管理服务器将汇总指令转发给相应的目标缓存节点后,目标缓存节点根据汇总指令中的所述指导信息,将其存储的中间结果发送给对应的计算节点es。如此,计算节点es获得了部分中间结果。

其中,数据库引擎生成并发送汇总指令的时机可以是:在目标数据文件的所有数据分段均获得对应的中间结果后。为了使数据库引擎能掌握计算节点es对数据分段的密文分片的执行进度,本申请中,计算节点es在得到数据分段对应的中间结果之后,计算节点es还用于发送提示信息,所述提示信息用于表征所述数据分段已获得中间结果。

具体地,计算节点es可以将提示信息发送给任务管理服务器,经任务管理服务器将提示信息转发给数据库引擎。由于数据库引擎在早期根据预设拆分规则,确定每个数据分段在目标数据文件中的位置信息时,已知了数据分段的数量。因此数据库引擎可根据接收到的提示信息的数量和数据分段的数量,确定是否所有数据分段均获得对应的中间结果。数据库引擎也可以记录拆分后的数据分段的标识,根据该标识记录是否接收到提示信息。当然上述仅为发明人所列举的两种可实施方案,本发明并不局限于此。

如图9所示,计算节点es在获得中间结果和第二配置文件后,根据第二配置文件中的汇总任务,与组内的其他计算节点对中间结果进行汇总,得到该数据分段对应的汇总结果。图9中所示各计算节点es之间的双向箭头,即表示各计算节点es之间执行的汇总计算。关于多个计算节点es如何对多个数据分段各自对应的两个或多个中间结果进行汇总的具体实施方式,可参考上述步骤s23和步骤s24的相应说明,本申请在此不做赘述。

考虑到缓存节点的存储空间有限,为了使缓存节点可以长期保有较大的可用存储空间。本申请中,缓存有中间结果的目标缓存节点可以用于:接收清除缓存指令;并响应于所述清除缓存指令,将缓存的中间结果清除。

其中,清除缓存指令可以是数据库引擎生成,并通过任务管理服务器转发给目标缓存节点的。数据库引擎生成并发送清除缓存指令的时机可以是:在向目标缓存节点发送所述汇总指令后的一段预设时间后。通过在汇总指令和清除缓存指令之间设置一段预设时间,可以使目标缓存节点有充足的时间将缓存的中间结果发送给计算节点。

如上所述,每个数据分段可以对应一个中间结果集,每个中间结果集中包含两个中间结果。计算节点es在获得标数据文件拆分后的多个数据分段对应的部分中间结果时,针对所述目标数据文件所包含的每个数据分段,每个计算节点接收所述中间结果集中的一个中间结果。

换言之,在多个数据分段的多个中间结果所对应的一组用于汇总中间结果的计算节点中,针对一个数据分段的两个中间结果,由该组计算节点中的两个不同的计算节点es分别接收该数据分段的两个中间结果,从而避免一个计算节点es同时获得一个数据分段对应的全部中间结果,防止计算节点es根据一个数据分段对应的全部中间结果反推出该数据分段的内容,从而进一步提高了数据安全。

该组计算节点es在得到汇总结果后,还用于将所述汇总结果返回给结果需求方。如图1所示,在某些实施例中,所述结果需求方可以是存储有所述目标数据文件的数据节点ds,或者其他第三方。

前述各系统实施例中,计算任务被包含在第一配置文件中,计算节点es通过获得第一配置文件,从而从其中提取出计算任务。而汇总任务包含在第二配置文件或第三配置文件中,计算节点es通过获得第二配置文件或第三配置文件,从而从其中提取出汇总任务。

而在另一些系统实施例中,针对中间结果进行汇总的汇总任务也可以直接包括在第一配置文件中。此外,数据处理系统还可以包括多个汇总节点,所述多个汇总节点用于:获得计算节点所得到的中间结果,基于多方安全计算协议,执行所述第一配置文件中包括的汇总任务,得到所述目标数据文件对应的汇总结果。

其中,所述多个汇总节点中的部分或全部与多个计算节点是同一组设备;或者,所述多个汇总节点和所述多个计算节点是两组不同的设备。

在汇总节点与计算节点不是同一设备的情况下,所述汇总节点在执行所述第一配置文件中包括的汇总任务之前,还用于从计算节点获取中间结果,或者还用于接收计算节点发送的中间结果。

基于同一发明构思,本申请一实施例提供一种数据处理装置。参考图10,图10是本申请一实施例提供的数据处理装置的示意图。如图10所示,该装置包括:

获得模块110,用于获得第一配置文件和待处理的数据分段的密文分片,所述待处理的数据分段是将目标数据文件按照预设拆分规则拆分后获得,所述第一配置文件包含:针对所述数据分段的计算任务;

计算模块120,用于针对所述数据分段,与参与所述计算任务的其他计算节点进行基于多方安全计算协议的密文计算,得到所述数据分段对应的中间结果,其中,所述中间结果与所述目标数据文件拆分后的其他数据分段各自对应的中间结果,经基于多方安全计算协议的数据汇总计算后,得到所述目标数据文件对应的汇总结果。

可选地,所述装置还包括:

第二配置文件获得模块,用于在得到所述数据分段对应的中间结果后,获得第二配置文件,所述第二配置文件包含:针对中间结果进行数据汇总的汇总任务;

第一汇总模块,用于根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,所述第一配置文件中还包含:用于缓存所述中间结果的目标缓存节点的信息;所述装置还包括:

中间结果缓存模块,用于根据所述目标缓存节点的信息,将所述中间结果缓存至对应的目标缓存节点。

可选地,所述装置还包括:

中间结果接收模块,用于接收至少一个缓存节点发送的待汇总的中间结果;

第三配置文件获得模块,用于获得第三配置文件,所述第三配置文件包含:针对中间结果进行数据汇总的汇总任务;

第二汇总模块,用于根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,每个数据分段对应一个中间结果集,每个中间结果集中包含两个中间结果;所述第一汇总模块或第二汇总模块包括:

汇总子模块,用于针对所述目标数据文件所包含的每个数据分段,接收所述中间结果集中的一个中间结果,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对所述中间结果进行数据汇总计算。

可选地,所述装置还包括:

提示信息发送模块,用于在在得到所述数据分段对应的中间结果集之后,发送提示信息,所述提示信息用于表征该数据分段已获得中间结果集。

可选地,所述装置还包括:

汇总结果发送模块,用于在得到汇总结果后,将所述汇总结果发送给结果需求方。

可选地,所述第一配置文件中还包括:针对中间结果进行汇总的汇总任务;所述装置还包括:

第三汇总模块:用于在得到所述数据分段对应的中间结果后,根据所述汇总任务,与参与所述汇总任务的其他计算节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,所述第一配置文件中还包括:针对中间结果进行汇总的汇总任务;所述装置还包括:

中间结果发送模块,用于在得到所述数据分段对应的中间结果后,将所述中间结果发送给一组汇总节点,使得所述汇总节点在获得所述第一配置文件和该中间结果后,根据所述第一配置文件中包括的汇总任务,与参与所述汇总任务的其他汇总节点基于多方安全计算协议,对中间结果进行数据汇总计算,得到汇总结果。

可选地,所述第一配置文件中还包括汇总节点信息;所述中间结果发送模块包括:

第一中间结果发送子模块,用于根据所述第一配置文件中包括的所述汇总节点信息,将所述中间结果发送给对应的汇总节点。

或者可选地,所述计算节点中预存有汇总节点信息;所述中间结果发送模块包括:

第一中间结果发送子模块,用于根据预存的所述汇总节点信息,将所述中间结果发送给对应的汇总节点。

可选地,所述第一配置文件还包括位置信息;所述计算节点所获得的密文分片来源于数据节点获得的多个密文分片中的部分密文分片,所述数据节点在获得所述第一配置文件后,根据所述位置信息,从自身存储的目标数据文件中获得所述位置信息对应的数据分段,并对数据分段进行处理后得到的多个密文分片。

可选地,所述待处理的数据分段的密文分片是将所述数据分段进行随机分散处理后所获得的。

可选地,针对一个数据分段,参与所述计算任务的计算节点至少为2个。

可选地,并行执行所述目标数据文件拆分后的多个数据分段各自对应的计算任务。

基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请上述任一实施例所述的方法中的步骤。

基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种数据处理方法、系统、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1