1.一种多方数据联合查询方法,其特征在于,由管理方执行,所述方法包括:
解析多方联合查询语句,得到逻辑执行计划;
根据所述逻辑执行计划中各节点所属的提供方进行处理,得到各提供方的物理执行计划;
根据各提供方的物理执行计划,生成各提供方的查询指令,并且向各提供方发送所述查询指令,其中所述查询指令用于指示各提供方协同进行查询。
2.根据权利要求1所述的方法,其特征在于,根据所述逻辑执行计划中各节点所属的提供方进行处理,得到各提供方的物理执行计划,包括:
根据所述逻辑执行计划,分别生成各提供方的物理执行计划;
确定各提供方的物理执行计划中的各算子的标记类型,其中,所述标记类型为单方计算算子,多方非混合算子或多方混合列算子。
3.根据权利要求2所述的方法,其特征在于,根据所述逻辑执行计划,分别生成各提供方的物理执行计划之前,还包括:
若所述逻辑执行计划中任一节点属于唯一提供方,则合并该节点以及该节点的子节点,作为单方计算节点。
4.一种多方数据联合查询方法,其特征在于,由提供方执行,所述方法包括:
接收管理方下发的本地提供方的查询指令,其中所述查询指令由所述管理方通过如下方式确定:解析多方联合查询语句,得到逻辑执行计划;根据所述逻辑执行计划中各节点所属的提供方进行处理,得到各提供方的物理执行计划;根据各提供方的物理执行计划,生成各提供方的查询指令;
执行接收的查询指令,得到查询结果。
5.根据权利要求4所述的方法,其特征在于,执行接收的查询指令,包括:
根据所述查询指令中待执行的当前算子的标记类型和数据提供方,执行所述当前算子。
6.根据权利要求5所述的方法,其特征在于,根据所述查询指令中待执行的当前算子的标记类型和数据提供方,执行所述当前算子,包括:
若当前算子的标记类型是单方计算算子,且当前算子的数据来源于本地提供方,则执行所述单方计算算子;
若当前算子的标记类型是单方计算算子,且当前算子的数据来源于其他提供方,则拒绝执行所述单方计算算子。
7.根据权利要求5所述的方法,其特征在于,根据所述查询指令中待执行的当前算子的标记类型和数据提供方,执行所述当前算子,包括:
若当前算子的标记类型是多方非混合算子,且当前算子是求交算子,则基于隐私求交算法执行求交计算,得到包括原数据表行号信息的求交结果;其中所述求交结果中来源于其他提供方的数据使用占位符表示。
8.根据权利要求5所述的方法,其特征在于,根据所述查询指令中待执行的当前算子的标记类型和数据提供方,执行所述当前算子,包括:
若当前算子的标记类型是多方非混合算子,则对所述当前算子中来源于本地提供方的数据进行计算,得到本地计算结果;
获取其他提供方对所述当前算子中来源于其他提供方的数据进行计算,得到的其他计算结果,其中所述其他计算结果中包括原数据表行号信息。
9.根据权利要求8所述的方法,其特征在于,所述当前算子是表达式计算算子,过滤算子,排序算子和聚合算子中的至少一种。
10.根据权利要求8所述的方法,其特征在于,若当前算子是表达式计算算子,则所述其他计算结果中数据使用占位符表示。
11.根据权利要求8所述的方法,其特征在于,若当前算子是排序算子或聚合算子,则获取其他提供方对所述当前算子中来源于其他提供方的数据进行计算,得到的其他计算结果之后,还包括:
对本地计算结果和其他计算结果进行排序或聚合处理。
12.一种多方数据联合查询装置,其特征在于,配置于管理方,所述装置包括:
逻辑计划确定模块,用于解析多方联合查询语句,得到逻辑执行计划;
物理计划确定模块,用于根据所述逻辑执行计划中各节点所属的提供方进行处理,得到各提供方的物理执行计划;
指令生成发送模块,用于根据各提供方的物理执行计划,生成各提供方的查询指令,并且向各提供方发送所述查询指令,其中所述查询指令用于指示各提供方协同进行查询。
13.一种多方数据联合查询装置,其特征在于,配置于提供方,所述装置包括:
查询指令接收模块,用于接收管理方下发的本地提供方的查询指令,其中所述查询指令由所述管理方通过如下方式确定:解析多方联合查询语句,得到逻辑执行计划;根据所述逻辑执行计划中各节点所属的提供方进行处理,得到各提供方的物理执行计划;根据各提供方的物理执行计划,生成各提供方的查询指令;
查询指令执行模块,用于执行接收的查询指令,得到查询结果。
14.一种服务器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3或权利要求4-11中任一所述的多方数据联合查询方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3或权利要求4-11中任一所述的多方数据联合查询方法。