CN115357606A - 数据源查询方法、系统、计算机设备和存储介质 - Google Patents
数据源查询方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115357606A CN115357606A CN202210917973.6A CN202210917973A CN115357606A CN 115357606 A CN115357606 A CN 115357606A CN 202210917973 A CN202210917973 A CN 202210917973A CN 115357606 A CN115357606 A CN 115357606A
- Authority
- CN
- China
- Prior art keywords
- data source
- target data
- operation statement
- driving
- statement
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000001514 detection method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 19
- 238000012800 visualization Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据源查询方法、系统、计算机设备和存储介质,其中,该数据源查询方法包括:接收用户输入的第一操作指令,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句;调用驱动抽象层提供的执行方法,根据执行方法将第一操作语句转换成对应于目标数据源的类型的第二操作语句;确定对应于目标数据源的类型的驱动对象,并加载目标驱动对象,以创建本地和目标数据源的连接,根据第二操作语句访问目标数据源。通过本申请,解决了多种类数据源查询方法复杂的问题,实现了多种类数据源查询方法的统一和简化。
Description
技术领域
本申请涉及数据库领域,特别是涉及一种数据源查询方法、系统、计算机设备和存储介质。
背景技术
随着产品的业务不断扩展,对业务数据的存储需求也在不断提高,为满足大数据的存储和分析要求,存储介质从原来的单一关系型数据库逐渐扩展到高效列式存储和基于搜索引擎的文档存储。
目前市面上的多数据源管理方法,大多分为两种:第一种管理方法支持在同一种类的数据源中存储多个实例,例如多个MySql数据源的管理方法、多个Oracle数据源的管理方法;第二种管理方法采用Jdbc驱动来支持多个数据源的存储,例如采用Jdbc驱动同时支持MySql和Oracle的多个数据源实例管理。然而,当现有产品或项目引入基于搜索引擎的文档存储,比如,引入基于搜索引擎Elasticsearch存储的数据后,用户不能直接通过Sql查询得到基于搜索引擎Elasticsearch存储的数据,这使得数据源的管理变得复杂。随着数据存储介质的扩展,上述两种方法已无法满足现有产品和项目所需。
针对相关技术中多种类数据源查询方法复杂的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种数据源查询方法、系统、计算机设备和存储介质,以解决相关技术中多种类数据源查询方法复杂的问题。
第一个方面,在本实施例中提供了一种数据源查询方法,接收用户输入的第一操作指令,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句;调用驱动抽象层提供的执行方法,根据执行方法将第一操作语句转换成对应于目标数据源的类型的第二操作语句;确定对应于目标数据源的类型的驱动对象,并加载目标驱动对象,以创建本地和目标数据源的连接,根据第二操作语句访问目标数据源。
在其中的一些实施例中,建立对外的驱动抽象层接口;通过驱动抽象层接口连接驱动抽象层;基于目标数据源的语言特性构,将第一操作语句转换为第二操作语句。
在其中的一些实施例中,检测第一操作语句是否符合预设规则;在检测到第一操作语句不符合预设规则的情况下,输出对应于第一操作语句的错误提示信息。
在其中的一些实施例中,根据第二操作语句访问目标数据源,得到访问结果,并将访问结果进行可视化显示。
在其中的一些实施例中,关联第二操作语句到对应的应用程序接口,通过应用程序接口调用第二操作语句的访问结果。
第二个方面,在本实施例中提供了一种数据源查询系统,数据源存储系统包括:依次耦接的操作管理层、数据驱动层和数据源层,数据驱动层包括驱动抽象层和多个驱动对象,数据源层包括多个数据源;其中,操作管理层用于接收用户输入的第一操作指令,调用驱动抽象层提供的执行方法,确定对应于目标数据源的类型的驱动对象,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句;数据驱动层用于加载目标驱动对象,以创建本地和目标数据源的连接,以及将第一操作语句转换成对应于目标数据源的类型的第二操作语句,根据第二操作语句访问目标数据源,其中,驱动抽象层通过对多个驱动对象进行封装得到。
在其中的一些实施例中,操作管理层包括:配置模块、检测模块和预览模块;其中,配置模块用于提供操作语句关键字库和操作语句编辑模式;检测模块用于检测第一操作语句是否符合预设规则;预览模块用于根据第二操作语句访问目标数据源,得到访问结果,并将访问结果进行可视化显示。
在其中的一些实施例中,数据服务层,数据服务层与操作管理层耦接,数据服务层用于提供应用程序接口以及缓存本地访问目标数据源得到的访问结果。
第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一个方面的数据源查询方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面的数据源查询方法。
与相关技术相比,在本实施例中提供的数据源查询方法,接收用户输入的第一操作指令,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句;调用驱动抽象层提供的执行方法,根据执行方法将第一操作语句转换成对应于目标数据源的类型的第二操作语句;确定对应于目标数据源的类型的驱动对象,并加载目标驱动对象,以创建本地和目标数据源的连接,根据第二操作语句访问目标数据源,解决了相关技术中多种类数据源查询方法复杂的问题,实现了多种类数据源查询方法的统一和简化。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例的数据源查询方法的终端的硬件结构框图;
图2是本申请一实施例的数据源查询方法的流程图;
图3是本申请一实施例的多种类数据源查询方法的流程图;
图4是本申请一实施例的多种类数据源查询方法的优选流程图;
图5是本申请一实施例的数据源查询系统的结构框图;
图6是本申请一实施例的数据源查询系统的优选结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
本申请中数据源即数据来源(Data Source),数据来源指的是数据库应用程序所使用的数据库或者数据库服务器。
关系型数据库又称作行数据存储数据库,是由二维表结构来逻辑表达和实现的数据,严格的遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。常见结构化数据库有Mysql、Oracle、Sqlserver等;列式数据库又称为面向列存储,其中数据存储方式为列存储,,常见的列式存储有Clickhouse等。
Api全称应用程序接口(Application Program Interface),定义为应用程序可用以与计算机操作系统交换信息和命令的标准集;Sql全称结构化查询语言(StructuredQuery Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;Jdbc(Java Database Connectivity)全称Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法Mysql、Oracle、Sqlserver、Clickhouse都可称作Jdbc驱动的数据库。
Mysql为MySqlAB公司开发的一个关系型数据库管理系统,Oracle为Oracle公司旗下的一个高性能存储的关系型数据库,也是关系型数据存储设备。Sqlserver是由微软开发和推广的关系型数据库;Elasticsearch是一个使用Java语言开发的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎。Clickhouse是一个用于在线分析处理查询的列式存储数据库,能够使用Sql查询实时生成分析数据报告。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本申请一实施例的数据源查询方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的数据源查询方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在一个实施例中,参考图5,终端部署有数据源查询系统,数据源存储系统包括:依次耦接的操作管理层、数据驱动层和数据源层,数据驱动层包括驱动抽象层和多个驱动对象,数据源层包括多个数据源。在本实施例中提供了一种数据源查询方法,图2是本实施例的数据源查询方法的流程图,以该方法应用于该数据源查询系统为例进行说明,该流程包括如下步骤:
步骤S201,接收用户输入的第一操作指令,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句。
操作管理层设置用户界面,用于接收用户输入的第一操作指令,且用户界面可以提供编写或者拖拽语法标签的功能,接收用户输入的第一操作指令,其中,第一操作语句包括标准Sql语句。
步骤S202,调用驱动抽象层提供的执行方法,根据执行方法将第一操作语句转换成对应于目标数据源的类型的第二操作语句。
在接收到第一操作指令之后,操作管理层把目标数据源的类型和第一操作语句发送至驱动抽象层,调用驱动抽象层提供的执行方法,获取目标数据源的语言特性,根据目标数据源的语言特性将第一操作语句转换为第二操作语句,以使得第二操作语句符合目标数据源的语言特性。其中,目标数据源的语言特性指的是不同种类的数据源在遵循Sql标准规范的前提下,所体现的扩展特性,包括对应于目标数据源操作语句的语法、关键字,不同种类的数据源包括但不限于Mysql、Oracle、Sql server数据库。
驱动抽象层通过对多个驱动对象进行封装得到,基于多个驱动对象建立了一个抽象标准,根据该抽象标准可以实现对多种类数据源的统一调度,从而创建本地和目标数据源的连接。其次,驱动抽象层根据不同种类数据源的语言特性,创建驱动抽象层的执行方法,将第一操作语句转换为可访问目标数据源的第二操作语句。
步骤S203,确定对应于目标数据源的类型的驱动对象,并加载目标驱动对象,以创建本地和目标数据源的连接,根据第二操作语句访问目标数据源。
数据源以分布式方式储存在多个设备中,本实施例可以基于第一操作指令中携带的目标数据源类型,驱动抽象层自动加载目标驱动对象,调用目标驱动对象以创建本地和其他设备中目标数据源之间的连接,执行第二操作语句在目标数据源中查询用户所需信息。
在上述步骤中,通过对多种类数据源的驱动对象的抽象封装,为用户提供了一个泛化的、标准的驱动抽象层,以对外提供统一的Sql查询入口。驱动抽象层根据多种类数据源的语言特性,转换用户输入的标准Sql语句为对应于目标数据源的语句,并调用与目标数据源对应的目标驱动对象,实现本地和目标数据源的连接,降低数据查询技术门槛,提升数据查询效率和友好性。该数据源查询方法同时支持对于列式存储和基于搜索引擎的文档存储的查询,可以根据用户输入的标准Sql语句和数据库类型访问目标数据源,从而帮助用户实现多种类数据源的标准化、统一化管理,解决多种类数据源查询方法复杂的问题。此外,当有新类型数据源接入系统时,只需单独实现驱动层的代码,就能够兼容该新接入的数据源。
在其中的一些实施例中,在接收用户输入的第一操作指令之后,方法还包括:检测第一操作语句是否符合预设规则;在检测到第一操作语句不符合预设规则的情况下,输出对应于第一操作语句的错误提示信息。
用户在Sql可视化窗口,通过编写或者拖拽语法标签的方式输入第一操作语句。在输入第一操作语句的过程中,Sql可视化窗口基于关键字库,获取目标数据源中的存储信息,并根据目标数据源中的存储信息,在用户输入第一操作语句时为用户实时提供相关提示,使用户输入的Sql标准语句中的操作范围不超过目标数据源中数据的存储范围,提升用户编写第一操作语句的准确性。
其中,关键字库包括数据源类型(getDatabaseType)、数据源连接的配置信息(getConfig)、数据源对应的探测库信息(probeSchemas)、基于某个探测库探测得到的所有表信息(probeTables)、基于某个表和分页条件探测表数据信息(probeDatas)。
用户完成第一操作语句的输入后,检测第一操作语句是否符合预设规则,预设规则包括第一操作语句语法,以及第一操作语句中的参数类型和数量。若第一操作语句的语法或参数有错误,则给予用户正确的提示。
在其中的一些实施例中,接收用户输入的第一操作指令方法包括根据第二操作语句访问目标数据源,得到访问结果,并将访问结果进行可视化显示。
接收用户输入的第一操作指令,根据目标数据源类型转换得到第二操作语句,调用目标驱动对象,访问目标数据源,执行第二操作语句得到数据查询结果,将查询结果返回到Sql可视化窗口中,其中,查询结果的展示可以在表格模式和json结构模式之间自由转换。
在其中的一些实施例中,根据第二操作语句访问数据源之后,方法还包括:关联第二操作语句到对应的应用程序接口,通过应用程序接口调用第二操作语句的访问结果。
创建应用程序接口,设置应用程序接口的访问权限和连接路径,根据连接路径将第二操作语句关联到对应的应用程序接口中,并通过应用程序接口调用第二操作语句的访问结果,将访问结果提供给BI(商业智能)、大屏或其他业务系统调用。下面通过优选实施例对本实施例进行描述和说明。
图3是本申请一个实施例的多种类数据源查询方法的流程图。
步骤S301,配置数据源:从现有支持的数据源类型(Mysql、Oracle、Sqlserver、Clickhouse、Elasticsearch)中选择要接入的数据源类别,根据不同的数据源类别加载不同的数据源配置信息。
步骤S302,可视化配置Sql语句:在Sql可视化窗口通过编写和拖拽语法标签的方法输入标准Sql语句,进行Sql测试。Sql测试中,通过统一驱动接口连接到驱动抽象层,按照数据源的类别自动加载对应的数据驱动,创建本地与数据源之间的连接,并将标准Sql语句转换成目标数据源的语言特性,得到查询结果。其中,语言特性指的是Mysql、Oracle、Sqlserver数据库在遵循Sql标准规范的前提下,都有各自的扩展特性,该扩展特性被称为语言特性。将查询结果返回给Sql可视化窗口,在Sql可视化窗口进行展示,展示结果可以自由切换为表格模式和json结构模式。
步骤S303,配置Api接口,包括创建Api接口,根据调用数据源的业务系统类型,设置Api参数并对Api进行分组,为Api接口分配访问权限和数据隔离权限,关联Api接口和所要执行的Sql语句,使BI系统、大屏、业务系统可以通过Api接口调用步骤S302中数据源查询结果。
图4是本申请一个优选实施例的多种类数据源查询方法的优选流程图,如图4所示,该多种类数据源查询方法包括如下步骤:
步骤S401,进入Sql可视化窗口,配置Sql,根据用户输入指令从现有支持的数据源类型(Mysql、Oracle、Sqlserver、Clickhouse、Elasticsearch)中选择要接入的数据源类别。若现有的数据源支持类型不满足用户需求,则需用户单独实现驱动层的代码,配置接入新数据源。
步骤S402,在Sql可视化窗口,接收用户通过编写和拖拽语法标签的方法所输入标准Sql语句。在用户编写过程中,根据标准Sql关键字库实时向用户提供有关数据源存储信息的友好提示,以提升用户编写Sql语句的准确性。其中,标准Sql关键字库内包括多种类数据源类型(getDatabaseType)、数据源连接的配置信息(getConfig)、数据源对应的探测库信息(probeSchemas)、基于某个探测库探测得到的所有表信息(probeTables)、基于某个表和分页条件探测表数据信息(probeDatas)。
步骤S403,根据标准Sql规范自动检测用户输入的标准Sql语句的语法是否有错误,若标准Sql语句存在语法错误,将向用户提示标准Sql语句中的错误信息。
步骤S404,接收到执行分析Sql语句的指令,则预执行用户输入的标准Sql语句,得到标准Sql语句的预处理状态,方便用户查看输入的标准Sql语句的参数是否正确。
步骤S405,接收到测试Sql语句的指令则执行预览功能。在预览功能中,接收用户输入模拟参数的值,并运行用户输入的标准Sql语句。抽象驱动层按照数据源的类别自动加载对应的数据驱动,创建本地与数据源之间的连接,并将标准Sql语句转换成目标数据源的语言特性,执行转换后的Sql语句得到查询结果,缓存上述的查询结果到本地。将查询结果返回给Sql可视化窗口,在Sql可视化窗口进行展示,展示结果可以自由切换为表格模式和json结构模式。
步骤S406,设置缓存,在初始缓存设置中缓存时间为30秒内,若30秒内用户以同一标准Sql语句访问同一目标数据源,则直接从缓存中提取数据并返回给用户,减少连接数据库的时间开销、硬件资源开销以及网络开销。如果下一次访问与上一次访问的时间间隔超过了30秒,则第二次访问时,将重新创建本地与目标数据源的连接,并运行用户第二次输入的标准Sql语句。接收用户输入的缓存时间并相应地更改初始缓存设置,若无缓存时间的输入,则维持初始缓存设置。
步骤S407,创建Api接口,根据调用数据源的业务系统类型设置Api参数并对Api进行分组。
步骤S408,为Api接口分配访问权限和数据隔离权限,并关联Api接口和所要执行的Sql语句。
步骤S409,若接收到用户需要调用测试结果的指令,则通过抽象驱动层加载目标数据源的驱动对象,创建本地与数据源之间的连接,并将标准Sql语句转换成目标数据源的语言特性,执行转换后的Sql语句得到测试结果,通过Api接口将测试结果在BI系统、大屏或其他业务系统中展示。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种数据源查询系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本实施例的数据源查询系统的结构框图,如图5所示,该系统包括:操作管理层、数据驱动层和数据层,依次耦接的操作管理层、数据驱动层和数据源层,数据驱动层。
操作管理层用于接收用户输入的第一操作指令,调用驱动抽象层提供的执行方法,确定对应于目标数据源的类型的驱动对象,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句;
数据驱动层包括驱动抽象层和多个驱动对象,驱动抽象层用于加载目标驱动对象,以创建本地和目标数据源的连接,以及将第一操作语句转换成对应于目标数据源的类型的第二操作语句,根据第二操作语句访问目标数据源,其中,驱动抽象层通过对多个驱动对象进行封装得到。
数据源层包括多个数据源。
图6是本申请一个实施例的数据源查询系统的优选结构框图,如图6所示,该系统中数据服务层、操作管理层、数据驱动层和数据源层依次耦接。
数据服务层用于提供Api接口的分组管理功能、权限管理功能、Api暴露功能、Api测试功能以及缓存管理功能,其中缓存管理功能用于缓存用户访问目标数据源所得到的数据查询结果到本地。
操作管理层包括配置模块、检测模块和预览模块。
配置模块包括Sql可视化配置功能,提供Sql标准语句编辑的可视化用户界面,以及分析用户输入的Sql标准语句的关键字库。配置模块用于接收用户输入的第一操作指令,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句。
检测模块包括Sql检测功能,Sql分析功能,Sql预执行功能,用于检测所述第一操作语句是否符合预设规则。具体的,Sql检测功能用于检测第一操作语句的语法是否符合预设规则;Sql分析功能用于分析第一操作语句中输入的参数数量和类型是否正确;Sql预执行功能用于调用驱动抽象层提供的执行方法,将第一操作语句转换为目标数据源的第二操作语句。
预览模块包括Sql测试功能,用于根据第二操作语句访问目标数据源,得到访问结果,并将访问结果进行可视化显示。
数据驱动层包括驱动抽象和与多种类数据源对应的驱动对象。驱动抽象通过对多个驱动对象进行封装得到,用于加载目标驱动对象以创建本地和目标数据源的连接,以及将第一操作语句转换成对应于目标数据源的类型的第二操作语句,根据第二操作语句访问目标数据源。驱动对象包括Mysql驱动、Oracle驱动、Sqlserver驱动、Clickhouse驱动、Elasticsearch驱动。
数据源层包括多个数据源,其中,数据源包括Mysql、Oracle、Sqlserver、Clickhouse、Elasticsearch。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收用户输入的第一操作指令,其中,第一操作指令携带有目标数据源的类型和用于访问目标数据源的第一操作语句。
S2,检测第一操作语句是否符合预设规则;在检测到第一操作语句不符合预设规则的情况下,输出对应于第一操作语句的错误提示信息。
S3,根据第二操作语句访问目标数据源,得到访问结果,并将访问结果进行可视化显示。
S4,调用驱动抽象层提供的执行方法,根据执行方法将第一操作语句转换成对应于目标数据源的类型的第二操作语句。
S5,确定对应于目标数据源的类型的驱动对象,并加载目标驱动对象,以创建本地和目标数据源的连接,根据第二操作语句访问目标数据源。
S6,关联第二操作语句到对应的应用程序接口,通过应用程序接口调用第二操作语句的访问结果。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的数据源查询方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据源查询方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据源查询方法,其特征在于,包括:
接收用户输入的第一操作指令,其中,所述第一操作指令携带有目标数据源的类型和用于访问所述目标数据源的第一操作语句;
调用驱动抽象层提供的执行方法,根据所述执行方法将所述第一操作语句转换成对应于所述目标数据源的类型的第二操作语句;
确定对应于所述目标数据源的类型的驱动对象,并加载目标驱动对象,以创建本地和所述目标数据源的连接,根据所述第二操作语句访问所述目标数据源。
2.根据权利要求1所述的数据源查询方法,其特征在于,调用驱动抽象层提供的执行方法包括:
建立对外的驱动抽象层接口;
通过所述驱动抽象层接口连接所述驱动抽象层;
基于所述目标数据源的语言特性,将所述第一操作语句转换为所述第二操作语句。
3.根据权利要求1所述的数据源查询方法,其特征在于,在接收用户输入的第一操作指令之后,所述方法还包括:
检测所述第一操作语句是否符合预设规则;
在检测到所述第一操作语句不符合所述预设规则的情况下,输出对应于所述第一操作语句的错误提示信息。
4.根据权利要求1所述的数据源查询方法,其特征在于,在接收用户输入的操作指令之后,所述方法还包括:
根据所述第二操作语句访问所述目标数据源,得到访问结果,并将所述访问结果进行可视化显示。
5.根据权利要求1所述的数据源查询方法,其特征在于,根据所述第二操作语句访问所述数据源之后,所述方法还包括:
关联所述第二操作语句到对应的应用程序接口,通过所述应用程序接口调用所述第二操作语句的访问结果。
6.一种数据源查询系统,其特征在于,所述数据源存储系统包括:依次耦接的操作管理层、数据驱动层和数据源层,所述数据驱动层包括驱动抽象层和多个驱动对象,所述数据源层包括多个数据源;其中,
所述操作管理层用于接收用户输入的第一操作指令,调用驱动抽象层提供的执行方法,确定对应于目标数据源的类型的驱动对象,其中,所述第一操作指令携带有所述目标数据源的类型和用于访问所述目标数据源的第一操作语句;
所述数据驱动层用于加载目标驱动对象,以创建本地和所述目标数据源的连接,以及将所述第一操作语句转换成对应于所述目标数据源的类型的第二操作语句,根据所述第二操作语句访问所述目标数据源,其中,所述驱动抽象层通过对多个驱动对象进行封装得到。
7.根据权利要求6所述的数据源查询系统,其特征在于,所述操作管理层包括:配置模块、检测模块和预览模块;其中,
所述配置模块用于提供操作语句关键字库和操作语句编辑模式;
所述检测模块用于检测所述第一操作语句是否符合预设规则;
所述预览模块用于根据所述第二操作语句访问所述目标数据源,得到访问结果,并将所述访问结果进行可视化显示。
8.根据权利要求7所述的数据源查询系统,其特征在于,还包括:数据服务层,所述数据服务层与所述操作管理层耦接,所述数据服务层用于提供应用程序接口以及缓存本地访问所述目标数据源得到的访问结果。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至5中任一项所述的数据源查询方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的数据源查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210917973.6A CN115357606A (zh) | 2022-08-01 | 2022-08-01 | 数据源查询方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210917973.6A CN115357606A (zh) | 2022-08-01 | 2022-08-01 | 数据源查询方法、系统、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357606A true CN115357606A (zh) | 2022-11-18 |
Family
ID=84032118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210917973.6A Pending CN115357606A (zh) | 2022-08-01 | 2022-08-01 | 数据源查询方法、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357606A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809102A (zh) * | 2022-12-22 | 2023-03-17 | 北京航星永志科技有限公司 | 数据源配置装置、方法及设备 |
-
2022
- 2022-08-01 CN CN202210917973.6A patent/CN115357606A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809102A (zh) * | 2022-12-22 | 2023-03-17 | 北京航星永志科技有限公司 | 数据源配置装置、方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884817B2 (en) | Method and apparatus for parallel execution in terminal database using data partitions | |
CN109710655B (zh) | 数据库查询方法、装置、终端设备及存储介质 | |
CN111666326B (zh) | Etl调度方法及装置 | |
CN106649630A (zh) | 数据查询方法及装置 | |
CN109492053B (zh) | 用于访问数据的方法和装置 | |
US11243921B2 (en) | Database expansion system, equipment, and method of expanding database | |
US10878006B2 (en) | Systems to interleave search results and related methods therefor | |
CN109947770A (zh) | 一种数据库查询方法、终端设备及存储介质 | |
CN111666293A (zh) | 数据库访问方法和装置 | |
US10866960B2 (en) | Dynamic execution of ETL jobs without metadata repository | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN106484826A (zh) | 一种操作数据库的方法及装置 | |
CN115269561A (zh) | 一种混合数据库管理方法、装置、混合数据库及电子设备 | |
CN115357606A (zh) | 数据源查询方法、系统、计算机设备和存储介质 | |
CN109597825B (zh) | 规则引擎调用方法、装置、设备及计算机可读存储介质 | |
CN107729421B (zh) | 存储过程的执行方法、装置及存储介质 | |
CN113377808A (zh) | Sql优化方法和装置 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN110704481A (zh) | 展示数据的方法和装置 | |
CN113760961A (zh) | 数据查询方法和装置 | |
US10262054B2 (en) | Database and service upgrade without downtime | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN112988857A (zh) | 一种业务数据的处理方法和装置 | |
CN115563183B (zh) | 查询方法、装置及程序产品 | |
CN113495747B (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 |