一种数据查询方法、设备、系统及存储介质技术方案

技术编号:37332911 阅读:22 留言:0更新日期:2023-04-21 23:10
本申请实施例提供一种数据查询方法、设备、系统及存储介质。可从接收到的查询指令中,获取待连接的多张数据表对应的连接条件;并可根据连接条件,在全同态加密状态下对多张数据表进行连接查询,以生成密态的连接结果表征信息;基于查询指令中聚合列对应的聚合条件和密态的连接结果表征信息,在全同态加密状态下在聚合列上执行聚合查询,以生成密态的查询结果。据此,本申请实施例中,在连接查询阶段和聚合查询阶段中,数据表中的数据,各种中间计算以及中间产生的处理结果等均全程保持在密态,无任何数据泄露,这实现了一种全新的且更高安全级别的数据查询方案,从而可更好地解决数据查询过程中的安全性问题。查询过程中的安全性问题。查询过程中的安全性问题。

【技术实现步骤摘要】
一种数据查询方法、设备、系统及存储介质


[0001]本申请涉及数据库
,尤其涉及一种数据查询方法、设备、系统及存储介质。

技术介绍

[0002]在关系型数据库中,多路连接聚合查询(multi

way join&aggregation query)是一种十分常见的分析型查询任务,其涉及到多张数据表的连接,并通过连接来进行数据筛选,在完成数据表的连接后,可在相应的数据列上进行聚合运算,从而完成查询任务。
[0003]目前,用户的数据通常托管在云端的数据库中,当需要对数据表中的数据进行处理、计算等查询操作时,仍需赋予云端的数据库读取明文数据的能力,从某种程度上对数据造成了一定程度的泄露。尽管云端的数据库中装配的可信硬件TEE等安全计算产品可用于保护数据的安全性,但其信任根基于对底层TEE硬件的信任,进一步归约为对TEE硬件生产商的信任;而且,基于TEE的安全计算产品极易受到侧信道攻击,这使得用户的数据仍存在泄露风险。

技术实现思路

[0004]本申请的多个方面提供一种数据查询方法、设备、系统及存储介质,用以解决数据查询过程中的安全性问题。
[0005]本申请实施例提供一种数据查询方法,包括:从接收到的查询指令中,获取待连接的多张数据表对应的连接条件;根据所述连接条件,在全同态加密状态下对所述多张数据表进行连接查询,以生成密态的连接结果表征信息,所述密态的连接结果表征信息用于表征所述查询指令所指定的聚合列中各密态数据的连接状态;基于所述聚合列对应的聚合条件和所述密态的连接结果表征信息,在全同态加密状态下在所述聚合列上执行聚合查询,以生成密态的查询结果。
[0006]本申请实施例还提供一种计算设备,包括存储器、处理器和通信组件;所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于执行前述的数据查询方法。
[0007]本申请实施例还提供一种数据库系统,包括数据查询节点和存储节点;所述数据查询节点用于存储和执行计算机指令,所述存储节点用于存储执行所述计算机指令所需的数据表,所述计算机指令被所述数据查询节点执行时实现前述的数据查询方法本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的数据查询方法。
[0008]在本申请实施例中,可从接收到的查询指令中,获取待连接的多张数据表对应的
连接条件;并可根据连接条件,在全同态加密状态下对多张数据表进行连接查询,以生成密态的连接结果表征信息;基于查询指令中聚合列对应的聚合条件和密态的连接结果表征信息,在全同态加密状态下在聚合列上执行聚合查询,以生成密态的查询结果。据此,本申请实施例中,在连接查询阶段和聚合查询阶段中,数据表中的数据,各种中间计算以及中间产生的处理结果等均全程保持在密态,无任何数据泄露,这实现了一种全新的且更高安全级别的数据查询方案,从而可更好地解决数据查询过程中的安全性问题。
附图说明
[0009]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请一示例性实施例提供的一种数据查询方法的流程示意图;图2为本申请一示例性实施例提供的一种数据查询方法的逻辑示意图;图3为本申请一实施例提供的一种构建查询计划树的示例性方案的逻辑示意图;图4为本申请一示例性实施例提供的一种优选实现方式的逻辑示意图;图5为本申请一示例性实施例提供的一种维度统一处理的逻辑示意图;图6为本申请一示例性实施例提供的一种统一打包维度的实现方案的逻辑示意图;图7为本申请另一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
[0010]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0011]目前,数据查询过程中,仍存在数据安全性问题。为此,本申请的一些实施例中:可从接收到的查询指令中,获取待连接的多张数据表对应的连接条件;并可根据连接条件,在全同态加密状态下对多张数据表进行连接查询,以生成密态的连接结果表征信息;基于查询指令中聚合列对应的聚合条件和密态的连接结果表征信息,在全同态加密状态下在聚合列上执行聚合查询,以生成密态的查询结果。据此,本申请实施例中,在连接查询阶段和聚合查询阶段中,数据表中的数据,各种中间计算以及中间产生的处理结果等均全程保持在密态,无任何数据泄露,这实现了一种全新的且更高安全级别的数据查询方案,从而可更好地解决数据查询过程中的安全性问题。
[0012]以下结合附图,详细说明本申请各实施例提供的技术方案。
[0013]图1为本申请一示例性实施例提供的一种数据查询方法的流程示意图,图2为本申请一示例性实施例提供的一种数据查询方法的逻辑示意图。该方法可由数据查询装置执行,该数据处理装置可实现为软件、硬件或软件与硬件的结合,该数据处理装置可集成在计算设备中。参考图1,该方法可包括:步骤100、从接收到的查询指令中,获取待连接的多张数据表对应的连接条件;步骤101、根据连接条件,在全同态加密状态下对多张数据表进行连接查询,以生
成密态的连接结果表征信息,密态的连接结果表征信息用于表征查询指令所指定的聚合列中各密态数据的连接状态;步骤102、基于聚合列对应的聚合条件和密态的连接结果表征信息,在全同态加密状态下在聚合列上执行聚合查询,以生成密态的查询结果。
[0014]本申请实施例提供的数据查询方法可应用于在关系型数据库中进行多路连接聚合查询的场景中。本实施例中的关系型数据库可以部署在云端,也可部署在非云端,比如企业的自有机房中等,本实施例对所需数据表的存储位置不做限定。另外,本实施例提供的数据查询方法可通过对现有数据查询引擎进行代码修改或者向现有数据查询引擎提供调用接口等方式进行实施,本实施例对此也不做限定。
[0015]参考图1,在步骤100中,可接收查询指令。其中,查询指令可以是一段SQL(Structured Query Language,结构化查询语言)查询语句。实际应用中,用户可在其使用的客户端中输入待连接的多张数据表的标识信息、指定的聚合列的标识信息、聚合条件以及连接条件等,客户端可对连接条件及聚合条件中涉及到的查询参数进行全同态加密,密态的查询参数将携带在查询指令中。
[0016]本实施例中,采用全同态加密的方式进行各环节中的加密。全同态加密是一种同时满足加同态和乘同态性质,可以进行任意多次加和乘运算的加密函数。其中,对经过全同态加密的数据进行处理(加法计算或乘法计算)得到一个输出,将这一输出进行解密,其结果与用同一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,包括:从接收到的查询指令中,获取待连接的多张数据表对应的连接条件;根据所述连接条件,在全同态加密状态下对所述多张数据表进行连接查询,以生成密态的连接结果表征信息,所述密态的连接结果表征信息用于表征所述查询指令所指定的聚合列中各密态数据的连接状态;基于所述聚合列对应的聚合条件和所述密态的连接结果表征信息,在全同态加密状态下在所述聚合列上执行聚合查询,以生成密态的查询结果。2.根据权利要求1所述的方法,所述根据所述连接条件,在全同态加密状态下对所述多张数据表进行连接查询,以生成密态的连接结果表征信息,包括:在所述多张数据表中,确定各个连接条件各自所指向的数据表对;针对各数据表对,在全同态加密状态下分别根据对应的连接条件执行连接查询,以生成密态的中间结果表征信息,所述中间结果表征信息用于表征两个数据表之间的数据行连接状态;将各数据表对各自所对应的密态的中间结果表征信息传递至所述聚合列,以在所述聚合列上生成所述密态的连接结果表征信息。3.根据权利要求2所述的方法,所述针对各数据表对,在全同态加密状态下分别根据对应的连接条件执行连接查询,以生成密态的中间结果表征信息,包括:基于第一数据表对所对应的目标连接条件所指向的待比较的密文列和/或密态的查询参数,执行同态比较操作,以生成所述第一数据表对所对应的密态的中间结果表征信息;其中,第一数据表对为各数据表对中的任意一个。4.根据权利要求2所述的方法,所述将各数据表对各自对应的密态的中间结果表征信息传递至所述聚合列,以在所述聚合列上生成所述密态的连接结果表征信息,包括:构建所述查询指令对应的查询计划树,所述查询计划树以数据表为节点,其中,所述聚合列所属的数据表作为根节点;针对所述查询计划树中未处理的目标边,根据所述目标边连接的子节点上存储的密态的第一记录信息、所述目标边连接的父节点上存储的密态的第二记录信息以及所述目标边对应的数据表对所对应的中间结果表征信息,计算密态的第三记录信息;将所述父节点上存储的密态的第二记录更新为所述密态的第三记录,并删除所述目标边;其中,任意节点上存储的密态的记录信息为节点自身在其它已处理边中作为父节点时得到的或节点自身存储的密态的初始信息,所述初始信息表征节点对应的数据表中的各个数据行的连接状态均为允许连接。5.根据权利要求4所述的方法,采用张量表征所述第一记录信息、所述第二记录信息、所述第三记录信息和所述中间结果表征信息,所述计算密态的第三记录信息,包括:对所述密态的第一记录信息、所述密态的第二记录信息和所述密态的中间结果表征信息进行维度统一后,执行阿达玛乘法计算,以生成所述密态的第三记录信息;其中,所述中间结果表征信息采用二阶张量,所述二阶张量的两个维度分别代表两个数据表,所述二阶张量中的元素用于表征所述数据行连接状态且取值为0或1;若两个数据行的连接状态为允许连接,则对应的元素取值为1,若连接状态为禁止连接,则对应的元素
取值为0。6.根据权利要求4所述的方法,还包括:针对任意两个待乘张量,计算所述两个张量的维度的并集;若第一张量的维度为所述并集的真子集,则为所述第一张量增加未包含在所述并集中的维度;在新增的维度上复制所述第一张量中的原始元素,以生成维度统一后的第一张量;其中,所述第一张量为两个待乘张量中的任意一个,复制的次数为所述新增的维度对应的数据表中包含的数据行数。7.根据权利要求5所述的方法,还包括:若在完成所述目标边的处理后,确定所述父节点与其各个子节点之间的边已完成处理,则在所述父节点上存储的密态的第三记录信息中确定待收缩的目标维度;沿所述目标维度的方向执行元素的密态累加计算,以生成收缩后的密态的第四记录信息;将所述父节点上存储的密态的第三记录更新为所...

【专利技术属性】
技术研发人员:李飞飞汪晟李亦然苏乐
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1