CN111581231A - 一种基于异构数据库的查询方法和装置 - Google Patents

一种基于异构数据库的查询方法和装置 Download PDF

Info

Publication number
CN111581231A
CN111581231A CN202010311277.1A CN202010311277A CN111581231A CN 111581231 A CN111581231 A CN 111581231A CN 202010311277 A CN202010311277 A CN 202010311277A CN 111581231 A CN111581231 A CN 111581231A
Authority
CN
China
Prior art keywords
query
database
condition
result
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202010311277.1A
Other languages
English (en)
Inventor
周广一
李蔚
王俊威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN202010311277.1A priority Critical patent/CN111581231A/zh
Publication of CN111581231A publication Critical patent/CN111581231A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种基于异构数据库的查询方法和装置。所述方法包括:在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;确定所述查询请求中的目标数据库所采用的目标操作语言;将所述查询条件转换为符合所述目标操作语言的查询语句;利用所述查询语句在所述目标数据库进行查询,得到查询结果;输出所述查询结果。

Description

一种基于异构数据库的查询方法和装置
技术领域
本申请实施例涉及信息处理领域,尤指一种基于异构数据库的查询方法和装置。
背景技术
依托于大数据、云计算和人工智能技术的有力保障,互联网和各大组织开始构建数据中台。数据中台被誉为大数据的下一站,核心思想就是数据共享。首先它不是一个平台,也不是一个系统,可以把中台看作是一种中间结构层。在数据开发过程中,核心数据模型的变化是相对缓慢的,同时,对数据的进行维护的工作量也非常大,但业务创新的速度、对数据提出需求变化是非常迅速的,而数据中台的目的就是为了弥补数据开发和应用开发之间由于开发速度不匹配,出现的响应力跟不上的问题。异构数据库的通用查询引擎便是基于此背景产生的,它能够屏蔽底层数据库层面的查询逻辑的书写。让更多的人将主要精力投身与业务逻辑的书写,当想要具体的业务数据时,直接调用通用查询引擎接口,传入相关参数即可获取最终的返回结果。
技术开发人员需要自己去实现与数据库的连接,然后基于业务组装出查询语句SQL语句,然后执行语句获取结果自己解析后并封装到实体类中返回。不光要考虑到业务层实现逻辑的代码书写,还要花费一定的精力自己去实现数据库的代码逻辑。如果需要多个数据库的话,还要对多个数据库的连接进行实现。并且每个数据库返回的数据格式也是不一致,研发人员还需要花费一定的精力去将多个数据库返回来的结果进行合并等操作。如果一个企业有多个项目组的话,每一个项目在进行产品开发的过程中,也会如上述所示。就会造成时间精力的极大浪费。
发明内容
为了解决上述任一技术问题,本申请实施例提供了一种基于异构数据库的查询方法和装置。
为了达到本申请实施例目的,本申请实施例提供了一种基于异构数据库的查询方法,包括:
在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;
确定所述查询请求中的目标数据库所采用的目标操作语言;
将所述查询条件转换为符合所述目标操作语言的查询语句;
利用所述查询语句在所述目标数据库进行查询,得到查询结果;
输出所述查询结果。
一种基于异构数据库的查询装置,包括:
第一获取模块,设置为在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;
确定模块,设置为确定所述查询请求中的目标数据库所采用的目标操作语言;
转换模块,设置为将所述查询条件转换为符合所述目标操作语言的查询语句;
查询模块,设置为利用所述查询语句在所述目标数据库进行查询,得到查询结果;
输出模块,设置为输出所述查询结果。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文所述的方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:
在连接有至少两个异构的数据库时,获取对数据库的查询请求,确定所述查询请求中的目标数据库所采用的目标操作语言,将所述查询条件转换为符合所述目标操作语言的查询语句,利用所述查询语句在所述目标数据库进行查询,得到查询结果,并输出所述查询结果,实现利用通用的操作语言查询不同操作语言的数据库的目的,克服用户因操作语言不通而操作复杂的问题,降低用户查询操作的难度,提高查询操作的效率。
本申请实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。
图1为本申请实施例提供的基于异构数据库的查询方法的流程图;
图2为本申请实施例提供的基于异构数据库的查询装置的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互任意组合。
在实现本申请过程中,发明人对相关技术进行了技术分析,发现相关技术至少存在如下问题,包括:
由于需考虑到数据库层次的代码开发、数据库选择、数据库设计、以及最终的实现等问题,业务开发人员无法集中精力解决业务逻辑开发问题,浪费了时间精力,提高了项目开发的成本。况且一个企业有多个项目组,每个项目组都重复出现以上问题,对企业资源造成极大的浪费。
图1为本申请实施例提供的基于异构数据库的查询方法的流程图。如图1所示,图1所示方法包括:
步骤101、在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;
在一个示例性实施例中,两个数据库的异构是操作语言不同。
在一个示例性实施例中,可以通过预设的查询页面获取该查询请求,其中该查询请求限定使用一种操作语言,从而减少针对不同操作语言的数据的适配,使得用户访问任何操作语言的数据库时只需采用一种操作语言即可。
步骤102、确定所述查询请求中的目标数据库所采用的目标操作语言;
在一个示例性实施例中,针对数据库层次设置查询引擎中间件,通过获取目标数据库的目标操作语言,确定在该数据库进行查询时查询条件所使用的操作语言。
步骤103、将所述查询条件转换为符合所述目标操作语言的查询语句;
在一个示例性实施例中,通过查询引擎中间件将查询条件中所包含的字段,按照目标数据库的语句编写策略,将查询条件中的字段转换为查询语句,从而保证目标数据库所能识别的查询条件中的字段。
步骤104、利用所述查询语句在所述目标数据库进行查询,得到查询结果;
步骤105、输出所述查询结果。
本申请实施例提供的方法,在连接有至少两个异构的数据库时,获取对数据库的查询请求,确定所述查询请求中的目标数据库所采用的目标操作语言,将所述查询条件转换为符合所述目标操作语言的查询语句,利用所述查询语句在所述目标数据库进行查询,得到查询结果,并输出所述查询结果,实现利用通用的操作语言查询不同操作语言的数据库的目的,克服用户因操作语言不通而操作复杂的问题,降低用户查询操作的难度,提高查询操作的效率。
下面对本申请实施例提供的方法进行说明:
本申请实施例提供的方法提供一套通用的基于异构数据库的查询引擎方案,该查询引擎对接多个异构数据库,满足不同项目组对多种数据库数据的查询,同时对外暴露的也是通用的查询接口,通过这个通用的查询接口可以满足不同的字段条件的过滤、排序、聚合操作以及分页操作等。不同的项目组通过这个接口来传入参数,查询引擎会对传入的参数进行判定,比如格式是否正确,元数据类型字段是否在数据库中存在,用户的操作权限等。经过上述判断逻辑通过后,会对条件进行组装,然后针对不同的数据库拼接成查询语句,然后进行数据的查询。最终的返回结果结构也是通用类型,包括返回的字段以及相对应的类型,查询出的真实数据集等。
在一个示例性实施例中,所述获取对数据库的查询请求,包括:
按照预先设置的查询条件的元数据的结构,提取所述查询请求中所携带的查询条件的字段信息,其中所述元数据的结构包括数据表的名称信息和数据表的字段信息以及过滤条件;
根据所述元数据的结构中的数据表的名称信息,确定所查询的目标数据库;以及,根据所述元数据的结构中的数据表的字段信息以及过滤条件,确定所使用的查询条件。
由于项目开发人员将数据库作为工具,无需了解数据库层次的数据的存储架构以及数据的存储位置,因此可以屏蔽项目开发人员对数据库层次的感知。因此,提出元数据服务的概念。数据在存入数据库之前,包括建表语句、表名、表字段和表属性信息都会存放在元数据库中,元数据对外暴露一个web页面,通过这个页面可以知道当前有哪些表,每个表的字段都有哪些,字段对应的数据类型等,但不会记录表数据存放的数据库信息。通过这个元数据对应的web页面,开发人员可以根据该web页面中的信息获取不同的数据集。这样的一种通用结构可以面向整个企业的开发人员,可以使更多项目组将精力集中到业务逻辑的实现上,节省项目的开发成本、时间成本等。
在一个示例性实施例中,所述获取对数据库的查询请求之后,所述方法还包括:
在确定所述目标数据库后,获取所述目标数据库中的数据表的元数据的结构,得到基准信息;
根据所述基准信息,判断所述查询条件中的信息是否满足预设的校验条件,得到判断结果;
如果所述判断结果为满足,再执行确定所述目标数据库所采用的目标操作语言的操作。
可以调用元数据的接口,获取这个表所在的数据库位置、数据库类型、表中的字段以及每个字段对应的数据类型。根据得到这些元数据与查询条件中的字段比较,确定查询条件中的字段是否是数据库里已有字段,如无,报错返回;判断查询条件中的结构是否完整,是否缺少必要的字段或条件值。或者,用户是否有权限对于这个表进行操作等等问题。当检测没有问题后,才会进行下一步操作。否则,返回错误原因。
通过上述方式,可以提高查询操作的成功率和安全性。
在一个示例性实施例中,所述输出所述查询结果包括:
利用预先设置的通用的操作语言的结构体,将所述查询结果转换为符合所述通用的操作语言的结果代码;
输出所述结果代码。
可以通过预设的通用接口,将结果代码输出,达到与查询条件的获取方式的一致性,均通过通用接口进行数据传输,从而降低用户对不同操作语言的查询结果的解析,降低信息的获取的复杂度。
通过以下步骤对技术实现方案进行详细的阐述:
假设已有多个数据库,如mysql、phoenxi等,并且每个数据库都有相应的表及表数据。这些表对应的元数据也会存在相应的数据库中。
1、通用查询接口方法的设计
业务层开发人员专注于业务代码的实现,当需要根据条件查询具体数据时,会调用通用查询接口,并按照相应的格式传入相应的数据。最终得到返回的结果集。关于通用参数格式参考如下:
Figure BDA0002457668580000061
Figure BDA0002457668580000071
Figure BDA0002457668580000081
如上所示,这里会通过几个案例进行详细介绍:
(1)查询普通操作:
普通操作是指要查询某几个字段对应的值,并指定条件进行过滤,最后按照某个字段进行排序,返回前10条数据。
在实现查询普通操作时,代码中各个字段的含义具体包括:
datasetId指定具体要查的表名;
fields指定要查哪些字段,其中fields里对应的是数组结构,可以指定要查的多个字段,也可以指定‘*’代表查询所有的字段;
filter代表过滤条件,其中filter里有多个exprs,exprs之间的关系代表“或”的关系,exprs里指定过滤的条件。比如left指定左边的条件,通常是某个字段。compare里指定条件,分为大于、小于、等于、大于等于、小于等于。right里指定具体的数值。比如查询所有age大于10岁的学生,那么此时left=’age’,compare=’>’,right=’10’这样进行表示。exprs里的大括号代表是“且”的关系。这里的“或”和“且”和数学上的意思一致。比如查询所有age大于10岁的学生,并且这次考试score(分数)大于80分的学生,这里的两个条件就是“且”的关系。如果想表示“或”的关系需要在filter里加一个exprs。这里可以表示多个条件,需要时,直接复制大括号内容新增加即可。
orders指定排序的字段,direction是指定降序或升序。比如想根据分数score进行降序排序,那么field=‘score’,direction=’desc’。也可以指定多个排序字段,根据需要添加即可。
limit和offset指定返回的数据条数,通过offset指定偏移量,limit指定返回条数,可以指定从哪一条记录开始查,并且返回limit条数据记录。
(2)查询聚合操作;
聚合操作是指某一列值的最大值,或者表里数据条数总共有多少条;
在实现查询聚合操作时,代码中各个字段的含义具体包括:
datasetId指定要查询的表名;
fields指定为空;
filter条件和查询普通操作中的内容一致;
aggs指定聚合操作的形式,比如求count(表里总共数据条数),max(某一列值中最大的那个),avg(某一列的平均值)等等。args指定哪一列,alais指定别名。那么此时就可以得到查询分数score的最高值,通过指定name=‘max’,args=’score’,alais=’分数’这样的形式。当然这里也可以指定多个聚合函数,将大括号内的内容再复制一份。
其中,order、limit和offset可以示情况自定义进行添加。
(3)查询分组操作
分组操作可以为根据性别进行分组,统计每组的人数。
在实现查询分组操作时,代码中各个字段的含义具体包括:
datasetId还是指定表名;
fields指定分组的字段,即根据什么来进行分组;
filter条件也是上述步骤一样,示情况进行添加;
aggs指定聚合函数名,比如分组后统计每组人数,那么name=‘count’,分组后统计每组某一个字段里的最大值,那么name=’max,args指定统计字段名,alais指定别名。order等示情况而定,是否需要排序或限制返回的记录条数。
通过上述参数结构的定义,就可以满足大部分查询语句,使用者只需要按照结构定义,查询引擎就能将对应条件的数据获取进行返回,全程不管你使用什么数据库,对应的查询接口就一个。大部分的条件都能囊括在内。通过采用上述方式,可以避免由于查询条件和字段的不可预料性设置N个接口所造成的繁琐和浪费资源的问题。
2、元数据的获取及校验
当拿到datasetId对应的表名时,会调用元数据的接口,获取这个表所在的数据库位置,所对应的数据库类型,表里有哪些字段,每个字段对应的数据类型。根据得到这些元数据和参数传入的内容进行比较。观察传入参数字段是否是数据库里已有字段,如无,报错返回。结构是否完整,是否缺少必要的字段或条件值。用户是否有权限对于这个表进行操作等等问题。当检测没有问题后,才会进行下一步操作。否则,返回错误原因。
3、根据传入参数组装查询语句
因为是支持异构数据库的通用查询引擎。需要根据步骤1传入的参数条件等组装查询语句。将上述参数结果内容翻译成数据库可以识别的语言或条件。
对于支持SQL语句的数据库来说,就可以通过解析循环遍历参数结构体来组装SQL。Select name form Student age>=18and score>90。表示从学生表中找出年龄大于18岁,并且此次考试分数大于90分的学生姓名。翻译成数据库可以识别的语句,实际上将结构体参数所表示的含义用数据库可以识别的语句进行表示出来,然后根据元数据中获取的数据库类型调用相应的驱动去执行获取结果。
4、根据元数据获取的数据库类型及表名调用相应查询驱动
元数据中根据表名可以获取到数据库对应的类型,基于不同的数据库类型可以将结构体参数内容翻译成数据库可以识别的操作语言,这里涉及到操作就是循环,遍历,并且通过条件判断进行相应执行语句的拼接。然后调用设置好的相应数据库的连接,创建连接,执行语句,返回结果集,对结果集进行封装。
5、通用查询结果返回
最后是以通用的结构体将查询结果进行返回。通用返回体内容如下:
Figure BDA0002457668580000111
Figure BDA0002457668580000121
在上述代码中,statusCode代表响应状态码,200代表成功,404代表请求找不到。message代表请求是否成功。totalCount代表数据总条数,struct代表返回的字段名以及对应的字段类型。values代表返回的具体数据值,和struct里的字段相对应。最后,业务方根据获取的结果集进行相应的业务处理,专注于业务上的实现。
本申请实施例提供的方法,提出一套通用的基于异构数据库的查询方案,能够满足不同的项目组对实际产品的开发,通过通用的传入参数接口,可以对接不同的数据库类型,满足对多种数据库的查询。并且对于多条产品线上的产品都能够提供数据库层次上的支持,让更多的业务开发人员将主要精力放在业务逻辑的实现上,通过共用一套查询引擎极大节省了开发成本,避免资源的浪费,节省出更多的时间专注与产品的迭代上。
图2为本申请实施例提供的基于异构数据库的查询装置的结构图。如图2所示,图2所示装置包括:
第一获取模块,设置为在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;
确定模块,设置为确定所述查询请求中的目标数据库所采用的目标操作语言;
转换模块,设置为将所述查询条件转换为符合所述目标操作语言的查询语句;
查询模块,设置为利用所述查询语句在所述目标数据库进行查询,得到查询结果;
输出模块,设置为输出所述查询结果。
在一个示例性实施例中,所述获取模块包括:
提取单元,设置为按照预先设置的查询条件的元数据的结构,提取所述查询请求中所携带的查询条件的字段信息,其中所述元数据的结构包括数据表的名称信息和数据表的字段信息以及过滤条件;
确定单元,设置为根据所述元数据的结构中的数据表的名称信息,确定所查询的目标数据库;以及,根据所述元数据的结构中的数据表的字段信息以及过滤条件,确定所使用的查询条件。
在一个示例性实施例中,所述装置还包括:
第二获取模块,设置为在确定所述目标数据库后,获取所述目标数据库中的数据表的元数据的结构,得到基准信息;
判断模块,设置为根据所述基准信息,判断所述查询条件中的信息是否满足预设的校验条件,得到判断结果;
控制模块,设置为如果所述判断结果为满足,再执行确定所述目标数据库所采用的目标操作语言的操作。
在一个示例性实施例中,所述输出模块包括:
转换单元,设置为利用预先设置的通用的操作语言的结构体,将所述查询结果转换为符合所述通用的操作语言的结果代码;
输出单元,设置为输出所述结果代码。
本申请实施例提供的装置,在连接有至少两个异构的数据库时,获取对数据库的查询请求,确定所述查询请求中的目标数据库所采用的目标操作语言,将所述查询条件转换为符合所述目标操作语言的查询语句,利用所述查询语句在所述目标数据库进行查询,得到查询结果,并输出所述查询结果,实现利用通用的操作语言查询不同操作语言的数据库的目的,克服用户因操作语言不通而操作复杂的问题,降低用户查询操作的难度,提高查询操作的效率。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文任一项中所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文任一项中所述的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种基于异构数据库的查询方法,包括:
在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;
确定所述查询请求中的目标数据库所采用的目标操作语言;
将所述查询条件转换为符合所述目标操作语言的查询语句;
利用所述查询语句在所述目标数据库进行查询,得到查询结果;
输出所述查询结果。
2.根据权利要求1所述的方法,其特征在于,所述获取对数据库的查询请求,包括:
按照预先设置的查询条件的元数据的结构,提取所述查询请求中所携带的查询条件的字段信息,其中所述元数据的结构包括数据表的名称信息和数据表的字段信息以及过滤条件;
根据所述元数据的结构中的数据表的名称信息,确定所查询的目标数据库;以及,根据所述元数据的结构中的数据表的字段信息以及过滤条件,确定所使用的查询条件。
3.根据权利要求1或2所述的方法,其特征在于,所述获取对数据库的查询请求之后,所述方法还包括:
在确定所述目标数据库后,获取所述目标数据库中的数据表的元数据的结构,得到基准信息;
根据所述基准信息,判断所述查询条件中的信息是否满足预设的校验条件,得到判断结果;
如果所述判断结果为满足,再执行确定所述目标数据库所采用的目标操作语言的操作。
4.根据权利要求1所述的方法,其特征在于,所述输出所述查询结果包括:
利用预先设置的通用的操作语言的结构体,将所述查询结果转换为符合所述通用的操作语言的结果代码;
输出所述结果代码。
5.一种基于异构数据库的查询装置,包括:
第一获取模块,设置为在连接有至少两个异构的数据库时,获取对数据库的查询请求,其中所述查询请求包括查询条件和目标数据库,其中所述查询条件是采用预设的通用的操作语言编写的;
确定模块,设置为确定所述查询请求中的目标数据库所采用的目标操作语言;
转换模块,设置为将所述查询条件转换为符合所述目标操作语言的查询语句;
查询模块,设置为利用所述查询语句在所述目标数据库进行查询,得到查询结果;
输出模块,设置为输出所述查询结果。
6.根据权利要求5所述的装置,其特征在于,所述获取模块包括:
提取单元,设置为按照预先设置的查询条件的元数据的结构,提取所述查询请求中所携带的查询条件的字段信息,其中所述元数据的结构包括数据表的名称信息和数据表的字段信息以及过滤条件;
确定单元,设置为根据所述元数据的结构中的数据表的名称信息,确定所查询的目标数据库;以及,根据所述元数据的结构中的数据表的字段信息以及过滤条件,确定所使用的查询条件。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
第二获取模块,设置为在确定所述目标数据库后,获取所述目标数据库中的数据表的元数据的结构,得到基准信息;
判断模块,设置为根据所述基准信息,判断所述查询条件中的信息是否满足预设的校验条件,得到判断结果;
控制模块,设置为如果所述判断结果为满足,再执行确定所述目标数据库所采用的目标操作语言的操作。
8.根据权利要求5所述的装置,其特征在于,所述输出模块包括:
转换单元,设置为利用预先设置的通用的操作语言的结构体,将所述查询结果转换为符合所述通用的操作语言的结果代码;
输出单元,设置为输出所述结果代码。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至4任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至4任一项中所述的方法。
CN202010311277.1A 2020-04-20 2020-04-20 一种基于异构数据库的查询方法和装置 Withdrawn CN111581231A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010311277.1A CN111581231A (zh) 2020-04-20 2020-04-20 一种基于异构数据库的查询方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010311277.1A CN111581231A (zh) 2020-04-20 2020-04-20 一种基于异构数据库的查询方法和装置

Publications (1)

Publication Number Publication Date
CN111581231A true CN111581231A (zh) 2020-08-25

Family

ID=72111730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010311277.1A Withdrawn CN111581231A (zh) 2020-04-20 2020-04-20 一种基于异构数据库的查询方法和装置

Country Status (1)

Country Link
CN (1) CN111581231A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347108A (zh) * 2020-11-26 2021-02-09 上海天旦网络科技发展有限公司 适用于混合后端的数据查询方法和系统
CN112434057A (zh) * 2020-10-12 2021-03-02 南京江北新区生物医药公共服务平台有限公司 一种数据查询方法及装置
CN112667716A (zh) * 2020-12-30 2021-04-16 京东数字科技控股股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN112818051A (zh) * 2021-02-02 2021-05-18 上海达梦数据库有限公司 一种异构库通信方法、终端设备及存储介质
CN112860713A (zh) * 2021-04-23 2021-05-28 脉策(上海)智能科技有限公司 用于获取图层数据的方法、电子设备和存储介质
CN112905567A (zh) * 2021-03-23 2021-06-04 杭州沃趣科技股份有限公司 基于网络协议转换的数据库更换方法、装置、系统及介质
CN113111239A (zh) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 一种通用数据库操作方法、装置及其存储介质
CN113254519A (zh) * 2021-05-28 2021-08-13 北京奇岱松科技有限公司 多源异构数据库的访问方法、装置、设备和存储介质
CN113377800A (zh) * 2021-06-08 2021-09-10 国网电子商务有限公司 一种数据安全共享方法及装置
CN114490842A (zh) * 2021-12-28 2022-05-13 航天科工智慧产业发展有限公司 一种多源数据的接口数据查询方法和数据查询引擎
CN115062051A (zh) * 2022-06-08 2022-09-16 广州鲁邦通智能科技有限公司 一种通用组装跨数据库语言查询方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009422A (en) * 1997-11-26 1999-12-28 International Business Machines Corporation System and method for query translation/semantic translation using generalized query language
CN106682147A (zh) * 2016-12-22 2017-05-17 北京锐安科技有限公司 一种基于海量数据的查询方法及装置
CN110032575A (zh) * 2019-04-15 2019-07-19 网易(杭州)网络有限公司 数据查询方法、装置、设备和存储介质
CN110162544A (zh) * 2019-05-30 2019-08-23 口碑(上海)信息技术有限公司 异构数据源数据获取方法及装置
CN110597844A (zh) * 2019-08-14 2019-12-20 中国平安财产保险股份有限公司 异构数据库数据统一访问方法及相关设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009422A (en) * 1997-11-26 1999-12-28 International Business Machines Corporation System and method for query translation/semantic translation using generalized query language
CN106682147A (zh) * 2016-12-22 2017-05-17 北京锐安科技有限公司 一种基于海量数据的查询方法及装置
CN110032575A (zh) * 2019-04-15 2019-07-19 网易(杭州)网络有限公司 数据查询方法、装置、设备和存储介质
CN110162544A (zh) * 2019-05-30 2019-08-23 口碑(上海)信息技术有限公司 异构数据源数据获取方法及装置
CN110597844A (zh) * 2019-08-14 2019-12-20 中国平安财产保险股份有限公司 异构数据库数据统一访问方法及相关设备

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112434057A (zh) * 2020-10-12 2021-03-02 南京江北新区生物医药公共服务平台有限公司 一种数据查询方法及装置
CN112347108A (zh) * 2020-11-26 2021-02-09 上海天旦网络科技发展有限公司 适用于混合后端的数据查询方法和系统
CN112667716A (zh) * 2020-12-30 2021-04-16 京东数字科技控股股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN112818051A (zh) * 2021-02-02 2021-05-18 上海达梦数据库有限公司 一种异构库通信方法、终端设备及存储介质
CN112905567A (zh) * 2021-03-23 2021-06-04 杭州沃趣科技股份有限公司 基于网络协议转换的数据库更换方法、装置、系统及介质
CN113111239A (zh) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 一种通用数据库操作方法、装置及其存储介质
CN113111239B (zh) * 2021-04-08 2024-03-29 北京联创新天科技有限公司 一种通用数据库操作方法、装置及其存储介质
CN112860713A (zh) * 2021-04-23 2021-05-28 脉策(上海)智能科技有限公司 用于获取图层数据的方法、电子设备和存储介质
CN113254519A (zh) * 2021-05-28 2021-08-13 北京奇岱松科技有限公司 多源异构数据库的访问方法、装置、设备和存储介质
CN113254519B (zh) * 2021-05-28 2021-10-08 北京奇岱松科技有限公司 多源异构数据库的访问方法、装置、设备和存储介质
CN113377800A (zh) * 2021-06-08 2021-09-10 国网电子商务有限公司 一种数据安全共享方法及装置
CN114490842A (zh) * 2021-12-28 2022-05-13 航天科工智慧产业发展有限公司 一种多源数据的接口数据查询方法和数据查询引擎
CN114490842B (zh) * 2021-12-28 2022-11-11 航天科工智慧产业发展有限公司 一种多源数据的接口数据查询方法和数据查询引擎
CN115062051A (zh) * 2022-06-08 2022-09-16 广州鲁邦通智能科技有限公司 一种通用组装跨数据库语言查询方法和系统

Similar Documents

Publication Publication Date Title
CN111581231A (zh) 一种基于异构数据库的查询方法和装置
CN111367976B (zh) 基于java反射机制的excel文件数据的导出方法及装置
CN106897322A (zh) 一种数据库和文件系统的访问方法和装置
CN106611044B (zh) 一种sql优化方法及设备
CN104699706A (zh) 目录树的生成方法、装置及系统
CN108108466A (zh) 一种分布式系统日志查询分析方法及装置
CN112883030A (zh) 数据收集方法、装置、计算机设备和存储介质
CN111628975A (zh) 一种组装xml报文的方法及装置
CN116483850A (zh) 数据处理方法、装置、设备以及介质
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN113535758B (zh) 一种把传统数据库脚本批量转换上云的大数据系统和方法
CN105867886B (zh) 一种写表格的方法及装置
CN116578585B (zh) 数据查询方法、装置、电子设备及存储介质
CN110008448B (zh) 将SQL代码自动转换为Java代码的方法和装置
US20200301922A1 (en) Multiform persistence abstraction
CN110008242A (zh) 一种基于Spark流式程序生成器及程序数据处理方法
CN115757525A (zh) 列算子血缘构建方法、服务器、计算机可读存储介质
CN112799638B (zh) 无侵入式快速开发方法、平台、终端及存储介质
CN114528041A (zh) 一种可配置的自动化解析方法和装置
CN114547083A (zh) 数据处理方法、装置及电子设备
CN113064914A (zh) 数据提取方法及装置
CN106484706B (zh) 用于分布式系统的执行过程化sql语句的方法和设备
Al Mahruqi Migrating web applications from sql to nosql databases
US12086128B2 (en) Mechanisms for serializing triples of a database store
CN116756184B (zh) 数据库实例处理方法、装置、设备、存储介质及程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20200825

WW01 Invention patent application withdrawn after publication