数据查询方法、装置、设备及存储介质制造方法及图纸

技术编号:32580632 阅读:18 留言:0更新日期:2022-03-09 17:11
本申请提供了一种数据查询方法、装置、设备及存储介质,该方法包括:确定用于查询目标数据库的查询条件信息,查询条件信息指示有待查询的目标表、查询条件以及所需输出的输出字段,查询条件包括待匹配的查询字段所需满足的条件;确定查询字段和输出字段中属于数组类型的目标字段;以目标字段为子表且以目标表为主表,生成用于将子表与主表左连接的连接关系;将连接关系表征的连接表作为SQL查询语句中待查询的表,结合查询条件和输出字段,并按照SQL语法构建SQL查询语句;基于SQL查询语句查询目标数据库,以从目标数据库中的目标表中查询出数据。本方案在数据库采用支持嵌套结构的列式存储格式的情况下,可以提升查询数据库中数据的便捷性。的便捷性。的便捷性。

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


[0001]本申请涉及数据处理
,尤其涉及一种数据查询方法、装置、设备及存储介质。

技术介绍

[0002]在大数据时代,在数据库中采用支持嵌套结构的列式存储格式已经日益普遍。如,Parquet就是一种较为常用的支持嵌套结构的列式存储格式。
[0003]在数据库采用Parquet等支持嵌套结构的列式存储格式的情况下,数据库支持采用结构化查询语言(Structured Query Language,SQL)的查询语句。然而,在用户不了解或者不熟悉SQL语言的情况下,则很难实现对采用支持嵌套结构的列式存储格式的数据库的数据查询,因此,如何提高该种数据库的数据查询便捷性是本领域技术人员需要解决的技术问题。

技术实现思路

[0004]有鉴于此,本申请提供了一种数据查询方法、装置、设备及存储介质,在数据库采用支持嵌套结构的列式存储格式的情况下,提升查询数据库中数据的便捷性。
[0005]为实现上述目的,本申请提供了一种数据查询方法,包括:
[0006]确定用于查询目标数据库的查询条件信息,所述查询条件信息指示有待查询的目标表、查询条件以及所需输出的输出字段,所述查询条件包括待匹配的查询字段所需满足的条件,所述目标数据库采用支持嵌套结构的列式存储格式存储数据;
[0007]确定所述查询字段和所述输出字段中属于数组类型的目标字段;
[0008]以所述目标字段为子表且以所述目标表为主表,生成用于将所述子表与所述主表左连接的连接关系;/>[0009]将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述查询条件和输出字段,并按照SQL语法构建SQL查询语句;
[0010]基于所述SQL查询语句查询所述目标数据库,以从所述目标数据库中的所述目标表中查询出与所述SQL查询语句匹配的数据。
[0011]在一种可能的实现方式中,所述查询条件信息中包括所述所需输出的输出字段的名称,所述查询条件指示有待查询的查询字段的名称以及所述查询字段所需满足的条件;
[0012]所述以所述目标字段为子表且以所述目标表为主表,生成用于将所述子表与所述主表连接的连接关系,包括:
[0013]确定用于替换所述目标字段的名称的第一替换名称;
[0014]以所述目标字段的第一替换名称为子表的名称,且以所述目标表为主表,生成用于将所述第一替换名称的子表与所述主表左连接的连接关系;
[0015]所述将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述查询条件和输出字段,并按照SQL语法构建SQL查询语句,包括:
[0016]将所述查询条件和所述输出字段中所述目标字段的名称替换为所述第一替换名称,得到替换后的查询条件和替换后的输出字段;
[0017]将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述替换后的查询条件和替换后的输出字段,并按照SQL语法构建SQL查询语句。
[0018]在又一种可能的实现方式中,所述查询条件信息中包括待查询的目标表的表名;
[0019]在所述生成用于将所述第一替换名称的子表与所述主表左连接的连接关系之前,还包括:
[0020]确定用于替换所述目标表的表名的第二替代名称,所述第二替代名称包含的字符数量少于所述目标表的表名包含的字符数量;
[0021]所述以所述目标字段的第一替换名称为子表的名称,且以所述目标表为主表,生成用于将所述第一替换名称的子表与所述主表连接的连接关系,包括:
[0022]以所述目标字段的第一替换名称为子表的名称,且以所述目标表的第二替代名称为主表的名称,生成用于将所述第一替换名称的子表与所述第二替代表名的主表左连接的连接关系。
[0023]在又一种可能的实现方式中,所述确定所述查询字段和所述输出字段中属于数组类型的目标字段,包括:
[0024]确定所述查询字段和所述输出字段中属于数组类型的至少一个目标字段以及所述至少一个目标字段之间存在的层级关系;
[0025]在所述生成用于将所述子表与所述主表连接的连接关系之前,还包括:
[0026]基于所述至少一个目标字段之间存在的层级关系,确定所述至少一个目标字段的连接顺序,其中,目标字段的层级越靠前,所述目标字段的连接顺序越靠前;
[0027]所述以所述目标字段为子表且以所述目标表为主表,生成用于将所述子表与所述主表左连接的连接关系,包括:
[0028]以所述目标表为主表,按照所述连接顺序,生成用于依次将各目标字段作为子表与所述主表左连接的连接关系。
[0029]在又一种可能的实现方式中,所述查询条件信息中指示有至少一个查询条件组以及所述查询条件组之间的逻辑关系,所述查询条件组中包括至少一个查询条件以及所述至少一个查询条件之间的逻辑关系;
[0030]所述将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述查询条件和输出字段,并按照SQL语法构建SQL查询语句,包括:
[0031]将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合查询条件组之间的逻辑关系,所述查询条件组中至少一个查询条件和至少一个查询条件之间的逻辑关系,以及所述输出字段,并按照SQL语法构建SQL查询语句。
[0032]在又一种可能的实现方式中,所述确定用于查询目标数据库的查询条件信息,包括:
[0033]展现条件配置界面;
[0034]基于用户在所述条件配置界面中的配置操作,获得用户针对目标数据库配置的待查询条件信息。
[0035]在又一种可能的实现方式中,在所述确定用于查询目标数据库的查询条件信息之
前,还包括:
[0036]确定待转换的HBase数据库表;
[0037]按照数据结构描述语言protobuf的数据结构描述规范,将所述Hbase数据库表转换为符合所述数据结构描述语言protobuf对应数据结构的数据集;
[0038]按照所述数据结构描述语言protobuf的数据结构与支持嵌套结构的列式存储格式的数据结构之间的映射规范,将所述数据集转换为采用支持嵌套结构的列式存储格式的数据库表。
[0039]又一方面,本申请还提供了一种数据查询装置,包括:
[0040]信息确定单元,用于确定用于查询目标数据库的查询条件信息,所述查询条件信息指示有待查询的目标表、查询条件以及所需输出的输出字段,所述查询条件包括待匹配的查询字段所需满足的条件,所述目标数据库采用支持嵌套结构的列式存储格式存储数据;
[0041]字段确定单元,用于确定所述查询字段和所述输出字段中属于数组类型的目标字段;
[0042]关系生成单元,用于以所述目标字段为子表且以所述目标表为主表,生成用于将所述子表与所述主表左连接的连接关系;
[0043]语句构建单元,用于本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:确定用于查询目标数据库的查询条件信息,所述查询条件信息指示有待查询的目标表、查询条件以及所需输出的输出字段,所述查询条件包括待匹配的查询字段所需满足的条件,所述目标数据库采用支持嵌套结构的列式存储格式存储数据;确定所述查询字段和所述输出字段中属于数组类型的目标字段;以所述目标字段为子表且以所述目标表为主表,生成用于将所述子表与所述主表左连接的连接关系;将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述查询条件和输出字段,并按照SQL语法构建SQL查询语句;基于所述SQL查询语句查询所述目标数据库,以从所述目标数据库中的所述目标表中查询出与所述SQL查询语句匹配的数据。2.根据权利要求1所述的方法,其特征在于,所述查询条件信息中包括所述所需输出的输出字段的名称,所述查询条件指示有待查询的查询字段的名称以及所述查询字段所需满足的条件;所述以所述目标字段为子表且以所述目标表为主表,生成用于将所述子表与所述主表连接的连接关系,包括:确定用于替换所述目标字段的名称的第一替换名称;以所述目标字段的第一替换名称为子表的名称,且以所述目标表为主表,生成用于将所述第一替换名称的子表与所述主表左连接的连接关系;所述将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述查询条件和输出字段,并按照SQL语法构建SQL查询语句,包括:将所述查询条件和所述输出字段中所述目标字段的名称替换为所述第一替换名称,得到替换后的查询条件和替换后的输出字段;将所述连接关系所表征的连接表作为结构化查询语言SQL查询语句中待查询的表,结合所述替换后的查询条件和替换后的输出字段,并按照SQL语法构建SQL查询语句。3.根据权利要求2所述的方法,其特征在于,所述查询条件信息中包括待查询的目标表的表名;在所述生成用于将所述第一替换名称的子表与所述主表左连接的连接关系之前,还包括:确定用于替换所述目标表的表名的第二替代名称,所述第二替代名称包含的字符数量少于所述目标表的表名包含的字符数量;所述以所述目标字段的第一替换名称为子表的名称,且以所述目标表为主表,生成用于将所述第一替换名称的子表与所述主表连接的连接关系,包括:以所述目标字段的第一替换名称为子表的名称,且以所述目标表的第二替代名称为主表的名称,生成用于将所述第一替换名称的子表与所述第二替代表名的主表左连接的连接关系。4.根据权利要求1所述的方法,其特征在于,所述确定所述查询字段和所述输出字段中属于数组类型的目标字段,包括:确定所述查询字段和所述输出字段中属于数组类型的至少一个目标字段以及所述至
少一个目标字段之间存在的层级关系;在所述生成用于将所述子表与所述主表连接的连接关系之前,还包括:基于所述至少一个目标字段之间存在的层级关系,确定所述至少一个目标字段的连接顺序,其中,目标字段的层级越靠前,所述目标字段的连接顺序...

【专利技术属性】
技术研发人员:赵全超
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:

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

1