【技术实现步骤摘要】
一种多表联合查询方法、装置、电子设备及存储介质
[0001]本说明书一个或多个实施例涉及多方计算
,尤其涉及一种多表联合查询方法、装置、电子设备及存储介质。
技术介绍
[0002]为了打破不同机构之间的数据孤岛,共同发挥数据的更大价值,可以进行跨域跨机构的数据融合使用。在基于多方计算的数据融合场景中,用户可能无法得知参与多方计算的多个物理表中的原始数据内容,而只能得知针对所述多个物理表进行多方计算得到的多方计算结果,也即所述多个物理表之间默认的多表联合查询结果。
[0003]另外,在多表联合查询时,联合操作的操作对象与操作符之间的位置顺序不同,会导致多表联合查询结果不同。所述多个物理表之间默认的多表联合查询结果,也即按照所述多个物理表之间的默认查询顺序,针对所述多个物理表执行联合操作而得到的多表联合查询结果。
[0004]在实际应用中,用户期望获得的可能不是所述多个物理表之间默认的多表联合查询结果,而是需要获得所述多个物理表中的部分物理表之间的多表联合查询结果。
[0005]然而,在相关技术中, ...
【技术保护点】
【技术特征摘要】
1.一种多表联合查询方法,应用于数据仓库;所述数据仓库存储有用于表示参与多方计算的多个物理表之间的联合关系的联合关系树;所述联合关系树被组织为多叉树的形式;其中,所述联合关系树包括:用于表示所述多个物理表中的各个物理表的叶子节点,以及用于表示针对与其连接的多个叶子节点所表示的物理表所执行的联合操作的非叶子节点;所述方法包括:接收针对所述多个物理表中的至少部分物理表的查询需求;其中,所述查询需求用于指示所述至少部分物理表,以及用于指示所述至少部分物理表之间的指定查询顺序;响应于所述查询需求,按照所述指定查询顺序,遍历存储的所述联合关系树中与所述至少部分物理表中的各个物理表对应的各个叶子节点,并针对遍历到的各个叶子节点对应的物理表,执行与遍历到的各个叶子节点连接的非叶子节点对应的联合操作,以得到满足所述查询需求的多表联合查询结果。2.根据权利要求1所述的方法,所述数据仓库维护有用于存储所述联合关系树中的根子树的第一数据结构,用于存储第一映射关系的第二数据结构,以及用于存储第二映射关系的第三数据结构;其中,所述第一映射关系为所述联合关系树中的非根节点与其所在子树之间的映射关系;所述第二映射关系为所述联合关系树中的子树与其根节点对应的联合操作之间的映射关系;在按照所述指定查询顺序,遍历存储的所述联合关系树中与所述至少部分物理表中的各个物理表对应的各个叶子节点之前,所述方法还包括:读取所述第一数据结构所存储的所述联合关系树中的根子树;以及,读取所述第二数据结构所存储的所述联合关系树中的非根节点与其所在子树之间的第一映射关系;以及,读取所述第三数据结构所存储的所述联合关系树中的子树与其根节点对应的联合操作之间的第二映射关系;基于读取到的所述根子树、所述第一映射关系和所述第二映射关系,生成所述联合关系树。3.根据权利要求1所述的方法,所述联合操作包括union操作和/或join操作。4.根据权利要求1所述的方法,所述查询需求为表标识序列;所述表标识序列包括按照所述指定查询顺序排列的所述至少部分物理表的表标识。5.根据权利要求1所述的方法,所述按照所述指定查询顺序,遍历存储的所述联合关系树中与所述至少部分物理表中的各个物理表对应的各个叶子节点,并针对遍历到的各个叶子节点对应的物理表,执行与遍历到的各个叶子节点连接的非叶子节点对应的联合操作,以得到满足所述查询需求的多表联合查询结果,包括:生成与所述查询需求对应的查询队列;其中,所述查询队列中的队列元素,包括按照对应的物理表在所述指定查询顺序中的位置进行排列的,与所述至少部分物理表中的各个物理表对应的各个叶子节点;将位于所述查询队列的队头的队列元素作为初始的第一节点出队列,并按照所述指定查询顺序依次遍历所述查询队列中剩余的队列元素,迭代地针对遍历到的队列元素执行队列元素合并操作,直至所述查询队列为空时结束遍历,并将与所述查询队列对应的队列元素合并结果确定为满足所述查询需求的多表联合查询结果。6.根据权利要求5所述的方法,所述针对遍历到的队列元素执行队列元素合并操作,包
括:将遍历到的队列元素作为第二节点出队列,并确定所述第一节点与所述第二节点是否满足合并条件;如果所述第一节点与所述第二节点满足所述合并条件,则针对所述第一节点与所述第二节点执行与所述第二节点所在子树的根节点对应的联合操作,得到与所述查询队列对应的队列元素合并结果,并将所述第一节点更新为所述队列元素合并...
【专利技术属性】
技术研发人员:翟艳堂,马超,刘丁宁,杨仁慧,孙善禄,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。