本发明专利技术涉及计算机技术领域,为了解决非关系型数据库查询能力弱的问题,本发明专利技术公开了一种非关系型数据库查询系统及方法,其中非关系型数据库查询系统包括:业务应用单元,其用于接收查询请求,根据所述查询请求生成第一查询语句;处理单元,其用于对所述第一查询语句进行处理,生成第二查询语句,所述处理单元发送第二查询语句至非关系型数据库进行查询,所述第二查询语句为非关系型数据库原生查询语句。本发明专利技术极大改善了非关系型数据库查询能力弱的问题。
【技术实现步骤摘要】
非关系型数据库查询系统及方法
本专利技术涉及计算机
,特别涉及一种非关系型数据库查询系统及方法。
技术介绍
本专利技术对于
技术介绍
的描述属于与本专利技术相关的相关技术,仅仅是用于说明和便于理解本专利技术的
技术实现思路
,不应理解为申请人明确认为或推定申请人认为是本专利技术在首次提出申请的申请日的现有技术。数据库是软件产品中应用广泛的中间件,查询语句则是使用数据库的重要工具。在各种数据库产品中,关系数据库(SQL,StructuredQueryLanguage)的结构化查询语言是功能强大,能力广泛的查询语句,在联机事务处理(OLTP,on-linetransactionprocessing)编程场景中一直发挥着核心作用。随着大数据时代的到来,非结构化数据的比重越来越大,所以出现了越来越多的非关系型数据库(no-sql),例如mongodb,elasticsearch等。这些非关系型数据库可以方便快速的查询大数据。但由于非关系型数据库不使用复杂的SQL查询语句,它的查询能力与SQL比起来较弱。为了提高非关系型数据库的查询能力,一般采用数据库插件的方式或业务代码分解查询条件的方式。对于数据库插件的方式,要求非关系型数据库必须支持扩展。而业务代码分解查询条件的方式复杂性高,通用性差,并且查询代码和业务代码容易强耦合在一起。
技术实现思路
有鉴于此,本专利技术实施例提供一种非关系型数据库查询系统,主要目的是改善非关系型数据库查询能力弱的问题。为达到上述目的,本专利技术主要提供如下技术方案:第一方面,本专利技术实施例提供了一种非关系型数据库查询系统,包括:业务应用单元,其用于接收查询请求,根据所述查询请求生成第一查询语句;处理单元,其用于对所述第一查询语句进行处理,生成第二查询语句,所述处理单元发送第二查询语句至非关系型数据库进行查询,所述第二查询语句为非关系型数据库原生查询语句。第二方面,本专利技术实施例提供了一种非关系型数据库查询方法,包括如下步骤:接收查询请求,根据所述查询请求生成第一查询语句;对所述第一查询语句进行处理,生成第二查询语句,所述第二查询语句为非关系型数据库原生查询语句。第三方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法的步骤。第四方面,本专利技术实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的方法的步骤。与现有技术相比,本专利技术实施例的有益效果在于:本专利技术实施例提供的非关系型数据库查询系统增加了处理单元,该处理单元对业务应用单元生成的第一查询语句进行处理,得到非关系型数据库原生查询语句,以便于非关系型数据库进行查询,扩展了查询语句,提高了非关系型数据库的查询能力。附图说明图1示出了本专利技术非关系型数据库查询系统的一实施例的示意图。图2示出了本专利技术非关系型数据库查询方法的一实施例的示意图。具体实施方式下面结合具体实施例对本专利技术作进一步详细描述,但不作为对本专利技术的限定。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。本专利技术实施例提供了一种非关系型数据库查询系统,图1示出了本专利技术非关系型数据库查询系统的一实施例的示意图。参见图1,本专利技术实施例的非关系型数据库查询系统包括:业务应用单元10,其用于接收查询请求,根据查询请求生成第一查询语句;处理单元20,其用于对第一查询语句进行处理,生成第二查询语句,处理单元10发送第二查询语句至非关系型数据库进行查询,第二查询语句为非关系型数据库原生查询语句。本专利技术实施例提供的非关系型数据库查询系统增加了处理单元,该处理单元对业务应用单元生成的第一查询语句进行处理,得到非关系型数据库原生查询语句,以便于非关系型数据库进行查询,扩展了查询语句,提高了非关系型数据库的查询能力。上述处理单元降低了业务代码与查询代码的耦合度。本专利技术实施例中,业务应用单元10接收查询请求,分析查询请求所需的数据,根据所需的数据生成第一查询语句。本专利技术一个实施例中,处理单元20提供查询语句的结构给业务应用单元10,业务应用单元10根据处理单元20提供的查询语句的结构生成第一查询语句。本实施例中,业务应用单元10生成的第一查询语句的结构由处理单元20提供,处理单元20可以根据其规则对第一查询语句进行处理,从而得到非关系型数据库原生查询语句,非关系型数据库可以进行查询。本专利技术一个实施例中,第一查询语句包括替换关键字和计算表达式。处理单元对第一查询语句处理时,对替换关键字和计算表达式进行转换,由第一查询语句得到第二查询语句,该第二查询语句为非关系型数据库原生查询语句。本实施例进一步提供了通用性,易于实现。本专利技术一个实施例中,第一查询语句中的替换关键字不包含在非关系型数据库原生查询语句中。本实施例中,非关系型数据库原生查询语句中没有与替换关键字相同的内容,容易识别,可以轻易区分出替换关键字,不会应误替换等额外问题。本专利技术一个实施例中,第一查询语句的主体结构为json(JSON,JavaScriptObjectNotation)格式。本实施例中,采用Json格式作为第一查询语句的主体结构,查询语句分析简单,处理速度快。本专利技术一个可选实施例中,第一查询语句采用正则表达式处理得到第二查询语句。本实施例中,第一查询语句可以被正则表达式处理,无需复杂的编译机制,易于实现。本专利技术一个可选实施例,处理单元封装有业务应用单元的业务知识和业务规则,处理单元直接理解业务应用单元发送的第一查询语句,以使生成的第二查询语句为通用查询语句。本实施例中,处理单元封装了业务应用单元特定业务领域的业务知识和业务规则,所以处理单元可以直接理解业务应用单元发送的专业术语,并把专业术语转译成业务无关的通用查询语句交给通用数据库执行。因此,上层的业务应用单元可以直接使用专业术语查询数据,不必费心把简洁的专业术语翻译成冗长的通用动作;同时下层的数据库则不必专门业务知识和术语,保持自己的通用性。本专利技术的一个可选实施例,处理单元根据业务规则判断查询请求是否在允许范围内,若查询请求超出允许范围,处理单元拒绝将第一查询语句转换为第二查询语句给非关系型数据库进行查询。本实施例中,由于处理单元了解业务规则,所以处理单元知道哪些用户可以查询哪些业务数据。因此处理单元可以根据当前查询用户的权限等信息判断这次查询是否在允许范围内。如果处理单元判定本次查询请求涉及的数据的范围超出了用户的权限,处理单元可以拒绝把用户的查询业务动作转译给数据库,阻止用户的越权查询,保障数据的安全。第二方面,本专利技术实施例提供了一种非关系型数据库查询方法,图2示出了本专利技术非关系型数据库查询方法的一实施例的示意图。参见图2,该方法包括如下步骤:接收查询请求,根据查询请求生成第一查询语句;对第一查询语句进行处理,生成第二查询语句,第二查询语句为非关系型数据库原生查询语句。本专利技术实施例提供的非关系型数据库查询方法中,根据查询请求生成的第一查询语句,对第一查询语句处理,得到非关系型数据库原生查询语句,以便于非关系型数据库进行查询,扩展了查询语句,提高了非关系型数据库的查询能力。上述处理单元降低了业务代码本文档来自技高网...
【技术保护点】
1.一种非关系型数据库查询系统,包括:业务应用单元,其用于接收查询请求,根据所述查询请求生成第一查询语句;处理单元,其用于对所述第一查询语句进行处理,生成第二查询语句,所述处理单元发送第二查询语句至非关系型数据库进行查询,所述第二查询语句为非关系型数据库原生查询语句。
【技术特征摘要】
1.一种非关系型数据库查询系统,包括:业务应用单元,其用于接收查询请求,根据所述查询请求生成第一查询语句;处理单元,其用于对所述第一查询语句进行处理,生成第二查询语句,所述处理单元发送第二查询语句至非关系型数据库进行查询,所述第二查询语句为非关系型数据库原生查询语句。2.根据权利要求1所述的系统,其特征在于,所述处理单元提供查询语句的结构给所述业务应用单元,所述业务应用单元根据所述处理单元提供的所述查询语句的结构生成所述第一查询语句。3.根据权利要求1所述的系统,其特征在于,所述第一查询语句包括替换关键字和计算表达式;所述第一查询语句中的替换关键字不包含在所述非关系型数据库原生查询语句中。4.根据权利要求1所述的系统,其特征在于,所述第一查询语句采用正则表达式处理得到第二查询语句。5.根据权利要求1所述的系统,其特征在于,所述处理单元封装有所述业务应用单元的业务知识和业务规则,所述处理单元直接理解所述业务应用单元发送的第一查询语句,以使生成的第二查询语句为通用查询语句。6.根据权利要求5所述的系统,其特征在于,所述处理单元根据所述业务规则判断查询请求是否在允许范围内,若所述查询请求超出允许范围,所述处理单元拒绝将所述第一查询语句转换为所述第二查询语...
【专利技术属性】
技术研发人员:王韬,
申请(专利权)人:北京大米未来科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。