数据库查询语言适配方法及装置、分布式数据存储系统制造方法及图纸

技术编号:15500085 阅读:92 留言:0更新日期:2017-06-03 22:06
本发明专利技术公开了一种数据库查询语言适配方法及装置、分布式数据存储系统,基于预先设置的数据库操作的预设标签和预设操作规则实现,方法包括:获取客户端按照预设标签和预设操作规则所编辑的数据库操作相关的代码;根据预设操作规则和数据库适配器,对代码进行解析,得到数据库的操作语言;利用数据库的操作语言实现对数据库的操作。实现对客户端屏蔽数据库的差异性,使客户端不需要考虑数据库的类型和数据库的操作语言。同样,对于客户端使用的不同操作系统,仅需要基于预设标签和预设操作规则,而不需要统一客户端使用的语言。保持客户端、数据库之间的相对独立性。在更换数据库时,也无需修改客户端代码,也使得客户端的代码具有极高的复用性。

Database query language adaptation method and device, distributed data storage system

The invention discloses a database query language adaptation method and device, distributed data storage system, including the method of preset label set in advance of database operation and the preset operating rules, based on access to the client according to the preset labels and preset operating rules editing the database related to the operation of the code; according to the preset operation rules and database adapter and analysis of the code, get the database operation language; to realize the operation of the database using the database manipulation language. The difference between the client and the database is blocked so that the client does not need to consider the type of database and the operating language of the database. Similarly, for different operating systems used by clients, only the default tag and default operating rules are required, without the need to unify the language used by the client. Maintain the relative independence between the client and the database. When you change the database, you do not need to modify the client code, which makes the client's code extremely reusable.

【技术实现步骤摘要】
数据库查询语言适配方法及装置、分布式数据存储系统
本专利技术涉及计算机软件领域,具体涉及一种数据库查询语言适配方法及装置。
技术介绍
数据库可以存储和管理数据,还提供给用户所需要的各种数据管理的方式。如支持用户对数据库中存储的数据进行如查询、修改、插入、删除等操作。目前使用的数据库多种多样,有关系型数据库,如Oracle,Mysql,SqlServer等,也有非关系型数据库如MongoDB,CouchDB,DynamoDB,Cassandra等。不同类型数据库使用的数据库语言也各不同。关系型数据库在进行数据查询时使用标准的结构化查询语言(StructuredQueryLanguage),而非关系型数据库则主要基于各自定义的领域专用语言(DSL,domainspecificlanguage)。由于不同数据库使用的语言不一致,这样可能导致在数据库发生更换时,往往需要将之前使用的数据库语言相关的代码、逻辑进行修改,重新测试等,需要花费很多的时间和人力,其工作量巨大。例如,数据库由Mysql迁移到MongoDB,原客户端的所有与数据库相关的如查询、修改、插入、删除等操作相关的代码、逻辑都需要进行修改,从而带来庞大的工作量。且在修改后还需要在进行测试等工作,耗费巨大的人力、物力和时间。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据库查询语言适配方法及装置。根据本专利技术的一个方面,提供了一种数据库查询语言适配方法,方法基于预先设置的数据库操作的预设标签和预设操作规则实现,方法包括:获取客户端按照预设标签和预设操作规则所编辑的数据库操作相关的代码;根据预设操作规则和数据库适配器,对代码进行解析,得到数据库的操作语言;利用数据库的操作语言实现对数据库的操作。根据本专利技术的另一方面,提供了一种数据库查询语言适配装置,装置基于预先设置的数据库操作的预设标签和预设操作规则实现,装置包括:获取模块,适于获取客户端按照预设标签和预设操作规则所编辑的数据库操作相关的代码;解析模块,适于根据预设操作规则和数据库适配器,对代码进行解析,得到数据库的操作语言;执行模块,适于利用数据库的操作语言实现对数据库的操作。根据本专利技术的又一方面,提供了一种分布式数据存储系统,包括:客户端、分布式组件和数据库;其中,分布式组件包括上述的数据库查询语言适配装置。根据本专利技术提供的数据库查询语言适配方法及装置、分布式数据存储系统,基于预先设置的数据库操作的预设标签和预设操作规则实现。获取客户端按照预设标签和预设操作规则所编辑的数据库操作相关的代码;根据预设操作规则和数据库适配器,对代码进行解析,得到数据库的操作语言;利用数据库的操作语言实现对数据库的操作。利用本专利技术可以对客户端屏蔽数据库的差异性,使客户端不需要考虑数据库的类型和数据库使用的操作语言。同样,对于客户端使用的不同操作系统,仅需要基于预设标签和预设操作规则实现,而不需要统一客户端使用的语言。保持了客户端、数据库之间的相对独立性。对客户端而言,无论何种数据库都可以统一使用同一套数据操作的代码。对于数据库,涉及数据库更换时,也无需修改所有客户端的代码,极大的节省了人力、物力和时间,也使得客户端的代码具有极高的复用性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的数据库查询语言适配方法的流程图;图2示出了根据本专利技术分布式数据存储系统框架示意图;图3示出了根据本专利技术另一个实施例的数据库查询语言适配方法的流程图;图4示出了根据本专利技术一个实施例的数据库查询语言适配装置的功能框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的数据库操作方法的流程图。如图1所示,数据库查询语言适配方法具体包括如下步骤:步骤S101,获取客户端按照预设标签和预设操作规则所编辑的数据库操作相关的代码。在本步骤之前,本实施例还可以包括了预先设置数据库操作的预设标签和预设操作规则的步骤。由于不同的数据库适用不同的数据库操作语言,因此,在客户端需要根据具体使用的数据库编辑合适的代码,以便于对使数据库执行相应操作。即客户端在使用不同的数据库时,需要编辑不同的代码。针对此种情况,通过预先设置数据库操作的预设标签和预设操作规则,使客户端按照预设标签和预设操作规则编辑的数据库操作相关的代码。即客户端可以根据预设标签和预设操作规则编辑一套代码,可以适用于不同的数据库。本实施例可以适用于如分布式数据存储系统,系统具体包括:客户端、Linux虚拟服务器集群(LVS)、分布式组件(HustDBHA,简称HA)和数据库。本实施例基于分布式组件侧进行实施。如图2中所示。客户端可以采用不同的操作系统,如IOS系统、android系统、Windows系统、macOS系统等等,不同的系统采用的语言也可以不同。数据库可以包括关系型数据库和/或非关系型数据库。关系型数据库,如Oracle,Mysql,SqlServer等,非关系型数据库如MongoDB,CouchDB,DynamoDB,Cassandra等。其中,图2中仅示出了客户端、数据库及服务器端。服务器端可以包括Linux虚拟服务器集群和分布式组件。需要说明的是,本实施例可以基于多种系统架构进行实施,而不仅限于上述的分布式数据存储系统的架构。预先设置预设标签和预设操作规则可以由分布式组件完成。在预先设置数据库的预设标签时,根据各种数据库操作语言进行分析,从中提取出其中包含的要素,将其设置为数据库的预设标签。如预设标签包括数据库名称、数据表名称、操作类型、查询参数集合、数据值集合等。通过数据库名称和数据表名称可以确定要操作的具体对象。操作类型具体包括了如查询select、更新update、插入insert、删除delete、自定义操作customize等操作类型,其中。查询select、更新update、插入insert、删除delete等是数据库常用的实现对数据库中数据操作的数据操纵语言。自定义操作customize为数据库自定义的对数据库的操作。操作类型中可以包括对数据库中数据的不同类型的操作,还可以包括对数据库中数据表、权限的不同类型的操作,根据实施情况进行设置,此处不做限定。数据值集合中可以以key:value的形式,将数据库中数据字段与对应的数据值进行记录。查询参数集合包括了各种查询条件可能出现的情况。其以查询query预设标签进行总体设置。由于查询时可以涉及多个方面,因此,查询参数集合具体可以包括如各本文档来自技高网...
数据库查询语言适配方法及装置、分布式数据存储系统

【技术保护点】
一种数据库查询语言适配方法,所述方法基于预先设置的数据库操作的预设标签和预设操作规则实现,所述方法包括:获取客户端按照所述预设标签和所述预设操作规则所编辑的数据库操作相关的代码;根据所述预设操作规则和数据库适配器,对所述代码进行解析,得到数据库的操作语言;利用所述数据库的操作语言实现对数据库的操作。

【技术特征摘要】
1.一种数据库查询语言适配方法,所述方法基于预先设置的数据库操作的预设标签和预设操作规则实现,所述方法包括:获取客户端按照所述预设标签和所述预设操作规则所编辑的数据库操作相关的代码;根据所述预设操作规则和数据库适配器,对所述代码进行解析,得到数据库的操作语言;利用所述数据库的操作语言实现对数据库的操作。2.根据权利要求1所述的方法,其中,所述数据库操作的预设标签包括数据库名称、数据表名称、操作类型、查询参数集合和/或数据值集合。3.根据权利要求2所述的方法,其中,所述操作类型包括查询、更新、插入、删除和/或自定义操作。4.根据权利要求2所述的方法,其中,所述查询参数集合包括函数集合、分页、排序、分组和/或条件集合。5.根据权利要求1所述的方法,其中,所述数据库包括关系型数据库和/或非关系型数据库。6.根据权利要求1所述的方法,其中,所述代码基于json语言实现。7.根据权利要求1-6任一项所述的方法,其中,所述根据所述预...

【专利技术属性】
技术研发人员:徐锐波程卓
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

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

1