CN113505143A - 语句类型的转换方法、装置、存储介质及电子装置 - Google Patents

语句类型的转换方法、装置、存储介质及电子装置 Download PDF

Info

Publication number
CN113505143A
CN113505143A CN202110833259.4A CN202110833259A CN113505143A CN 113505143 A CN113505143 A CN 113505143A CN 202110833259 A CN202110833259 A CN 202110833259A CN 113505143 A CN113505143 A CN 113505143A
Authority
CN
China
Prior art keywords
statement
target
type
converted
database
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
Application number
CN202110833259.4A
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202110833259.4A priority Critical patent/CN113505143A/zh
Publication of CN113505143A publication Critical patent/CN113505143A/zh
Pending 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/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/242Query formulation
    • G06F16/2433Query languages
    • 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/2455Query execution

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

本发明提供了一种语句类型的转换方法、装置、存储介质及电子装置,包括:获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;根据目标索引确定第二语句类型;在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。通过本发明,解决了操作各类数据库时需要使用不同SQL语句导致的效率低下的问题,进而达到了可以使用通用SQL语句对不同种类的数据库进行操作的效果。

Description

语句类型的转换方法、装置、存储介质及电子装置
技术领域
本发明涉及通信领域,具体而言,涉及一种语句类型的转换方法、装置、存储介质及电子装置。
背景技术
在目前的大数据时代,市面上出现了很多实用的数据库组件,例如大规模并行分析数据库(Analytical Massively Parallel Processing Databases,简称MPP)、ElasticSearch数据库(简称ES)、甲骨文数据库(Oracle Database,简称Oracle)、阿里关系型数据库(Relational Database Service,简称Ads)等。但是各个数据库之间的语法差异很大,开发人员需要根据各个数据库的语法,编写多种不同语法的代码对不同类型数据库执行操作。然而,了解各种数据库的语法对于开发人员来说难度较大,并且针对不同语法类型的数据库需要编写多种语法的代码,耗时较多,降低了数据库的操作效率。
针对上述问题,目前尚未存在有效的解决方案。
发明内容
本发明实施例提供了一种语句类型的转换方法、装置、存储介质及电子装置,以至少解决相关技术中数据库的操作效率较低的问题。
根据本发明的一个实施例,提供了一种语句类型的转换方法,包括:获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;根据目标索引确定第二语句类型;在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。
可选地,所述目标索引包括用户名和表名中的至少一个子索引信息,根据目标索引确定第二语句类型,包括:在待转换语句中解析出所述至少一个子索引信息;根据所述至少一个子索引信息确定第二语句类型。
可选地,所述根据所述至少一个子索引信息确定所述第二语句类型,包括:根据所述至少一个子索引信息,确定存储目标数据的目标数据库,其中,待转换语句用于请求获取目标数据;确定与目标数据库对应的第二语句类型,其中,目标数据库被设置为使用第二语句类型的语句。
可选地,在将待转换语句转换为第二语句类型的目标语句之后,方法包括:通过目标语句在目标数据库中获取目标数据;将目标数据发送至目标软件平台;在目标软件平台的操作页面显示目标数据。
可选地,根据目标映射关系,将待转换语句转换为第二语句类型的目标语句,包括:对待转换语句进行解析,得到语句对象集合,其中,语句对象集合中包括多个语句对象;在目标映射关系中查找每个语句对象对应的转换方式;按照转换方式对每个语句对象进行处理,得到第二语句类型的目标语句。
可选地,获取第一语句类型的待转换语句,包括:接收第一语句类型的SQL语句;将SQL语句中的预设字段转换为目标字段,得到待转换语句,其中,目标字段中的字符为大写字符。
根据本发明的另一个实施例,提供了一种语句类型的转换装置,其特征在于,包括:获取模块,用于获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;第一确定模块,用于根据目标索引确定第二语句类型;第二确定模块,用于在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;转换模块,用于根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。
根据本发明的又一个实施例,还提供了一种存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过待转换语句中携带的目标索引,确定待转换语句需要转换的语句类型(第二语句类型),根据预设映射关系对待转换语句的语句类型进行转换,将第一语句类型的待转换语句转换为第二语句类型的目标语句。达到了由计算机自动对待转换语句的语句类型进行转换的目的,根据预设映射关系可以将一种语句类型的待转换语句转换为多种语句类型的目标语句,通过转换后的目标语句可以对多种数据库执行操作。可以解决数据库的操作效率较低的问题,达到了通过一种语句类型的待转换语句,对多种不同的数据库执行操作,提高数据库的操作效率的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种语句类型的转换方法的移动终端的硬件结构框图;
图2是根据本发明实施例的语句类型的转换方法的流程图;
图3是根据本发明实施例的整体架构框图;
图4是根据本发明实施例的一种可选的应用软件平台界面图;
图5是根据本发明可选实施例的语句转换的解析流程图;
图6是根据本发明可选实施例的语句类型的转换装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种语句类型的转换方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的语句类型的转换方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的语句类型的转换方法,图2是根据本发明实施例的语句类型的转换方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;
其中,第一语句类型可以是通用SQL语句类型,待转换语句可以是使用SQL语句类型编写的语句,即待转换语句为SQL语句。待转换语句携带有目标索引,上述目标索引可以是数据库表名,也可以是用户名。
步骤S204,根据目标索引确定第二语句类型;
其中,上述第二语句类型与上述第一语句类型可以是不同的语法类型,例如,上述第一语句类型是SQL语句类型,上述第二语句类型ElasticSearch数据库对应的语法类型。
步骤S206,在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;
其中,预设映射关系中可以包括第一语句类型与多种语句类型的映射关系,多种语句类型包括可以操作多种数据库的语句类型,例如,MPP数据库对应的语句类型1,Oracle对应的语句类型2,Ads对应的语句类型3等,预设映射关系中记录了通用SQL语句类型,与上述语句类型1、语句类型2、语句类型3之间的映射关系。假设上述第二语句类型为Oracle对应的语句类型2,目标映射关系为通用SQL语句类型与语句类型2之间的映射关系。
步骤S208,根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。
其中,以上述第一语句类型为通用SQL语句类型,第二语句类型为Oracle对应的语句类型2为例,根据SQL语句类型与语句类型2之间的映射关系,可以将SQL语句转换为可以操作Oracle数据库的目标语句。由于预设映射关系中还记录了通用SQL语句类型与其他语句类型之间的映射关系,可以将通用SQL语句类型转换成其他语句类型,通过其他语句类型可以对相应的数据库执行操作,以此达到提高数据库的操作效率的效果。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
应用软件平台发送请求至软件服务器,请求中包含可以拼接待转换语句的数据信息,软件服务器完成待转换语句的拼接后,向数据库上层软件服务器发送SQL语句类型转换请求,请求信息中包括待转换语句。数据库上层软件服务器对软件服务器发送的SQL语句类型转换请求信息进行解析,获取请求中携带的待转换语句,并通过待转换语句获取数据库表名,该数据库表名可以为目标索引。
云数据库在创建数据表时,会在参数配置数据库MySql中,存储数据库表名与数据库名的对应关系,数据库上层软件服务器可以在参数配置数据库MySql中,根据待转换语句中的数据库表名,查询到数据库表所存储的数据库名,通过数据库名确定该存储数据库表的数据库,其中,数据库表可以存储的数据库包括但不限于大规模并行分析数据库(Analytical Massively Parallel Processing Databases,简称MPP),ElasticSearch数据库,甲骨文数据库(Oracle Database,简称Oracle),阿里关系型数据库(RelationalDatabase Service,简称Ads)数据库。在确定数据库表存储的数据库之后,可以确定能够操作该数据库的第二语句类型。
作为一个可选的实施方式,如图3所示是根据为根据本发明实施例的整体架构框图,该整体架构图中包括应用软件平台、软件服务器、数据库上层软件服务器和数据库,上述数据库包括但不限于MPP、ES、Oracle等。
其中,上述应用软件平台包括软件操作页面,在该软件操作界面上可以获取请求参数。如图4所示为根据本发明实施例的一种可选的应用软件平台界面图,软件操作页面包括结构化搜档功能操作界面,用户可以在结构化搜档功能操作界面输入查询信息,上述查询信息包括用户所要请求的目标数据。应用软件平台可以将输入的查询信息封装为JSON格式数据请求,并将该请求发送至软件服务器。应用软件平台可以是计算机端应用软件、平板电脑应用软件,或者是手机端应用软件,此处对应用软件平台不作限制。在本实施例中,应用软件平台为计算机端应用软件。
其中,上述软件服务器接收到JSON格式数据请求,将该数据请求转换为sql格式的语句类型,得到sql语句(对应于第一语句类型的待转换语句),该sql语句中携带了目标索引。软件服务器将sql语句发送至数据库上层软件服务器。
数据库上层软件服务器接收到sql语句,根据sql语句携带的目标索引确定出第二语句类型,第二语句类型是与数据库对应的语句类型,通过第二语句类型可以对相应的数据库执行操作,以Oracle数据库为例,上述第二语句类型可以是Oracle数据库对应的语句类型,通过第二语句类型可以对Oracle数据库执行操作。数据库上层软件服务器可以在预设映射关系中查找sql语句类型与Oracle数据库对应的第二语句类型之间的目标映射关系,根据该映射关系,将sql语句转换成Oracle数据库对应的语句类型的目标语句,通过该目标语句可以对Oracle数据库执行操作。上述Oracle数据库仅为了说明本实施例,并不以此造成限定,还可以是其他类型的数据库,例如,ES、Ads等。
作为一个可选的实施方式,上述通过该目标语句可以对Oracle数据库执行操作包括但不限于读取Oracle数据库中的目标数据,数据库上层软件服务器可以通过目标语句在Oracle数据库中获取到目标数据,数据库上层软件服务器将获取到的目标数据返回至软件服务器,并由软件服务器将目标数据返回至应用软件平台,在应用软件平台的软件操作界面可以显示上述目标数据。
作为一个可选的实施方式,在上述图3所示的应用软件平台中,应用软件平台中向软件服务器发送的可以是http请求,请求参数可以是:
{"condition":{"personInfo":"","repositoryIds":[],"gender":"","ageGroup":"","dossierType":""},"page":1,"pageSize":40}
应用软件平台将上述数据通过HTTP协议发送至软件服务器,软件服务器接收应用软件平台发送的JSON格式数据请求,并提取请求中的条件信息,拼接为第一语句类型的待转换语句:
SELECT*FROM P_FACE_DOSSIER WHERE STATUS=0AND DOSSIER_ID IS NOT NULLorder by create_time desc LIMIT 40OFFSET 0
应用软件平台在接收到上述请求之后,向数据库上层软件服务器发送SQL语句转换请求,请求中包括待转换语句的信息:
{"sql":"SELECT*FROM P_FACE_DOSSIER WHERE STATUS=0AND DOSSIER_ID ISNOT NULL order by create_time desc LIMIT 40 OFFSET 0"}
数据库上层软件服务器对请求信息进行处理,提取出待转换语句中的数据库表名P_FACE_DOSSIER,该表名即为目标索引,根据表名在云数据库的参数配置数据库中,查找存储P_FACE_DOSSIER表的数据库名,在本实施例中,数据库名为ElasticSearch,可以确定第二语句类型即为可以操作ElasticSearch数据库的语句类型。在数据库上层软件服务器中,将第一语句类型与多种语句类型转换的信息存储在预设映射关系中,预设映射关系可以根据待转换的第二语句类型,确定进行转换需要使用的目标映射关系,在本实施例中,可以确定需要转换为ElasticSearch数据中的SQL语句,找到与ElasticSearch数据对应的目标映射关系,该目标映射关系中设置了多个转换方法,转换方法包括,将待转换语句查询条件中的status=0转换为query中term,将查询条件中的dossier_id is not null转换成query中的exists,将查询语句中的order by转换成sort,将查询语句中的desc转成order desc,将查询条件中的Limit offset转换成from 0size 40。
数据库上层软件服务器根据目标映射关系中的转换方法将待转换语句转换为可以操作ElasticSearch数据库的语句,转换结果如下:
{"from":0,"size":40,"query":{"bool":{"filter":[{"bool":{"filter":[{"bool":{"filter":[{"term":{"STATUS":{"value":0,"boost":1.0}}},{"bool":{"must_not":[{"bool":{"must_not":[{"exists":{"field":"DOSSIER_ID","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"sort":[{"CREATE_TIME":{"order":"desc"}}]}
数据库上层软件服务器将以上语句发送至ElasticSearch服务接口中,请求的ElasticSearch数据库地址为http://domain.com/b5aheaj_facedossier-static/P_FACE_DOSSIER/_search,其中,P_FACE_DOSSIER表对应的ElasticSearch数据库type为P_FACE_DOSSIER。
作为一个可选的实施方式,在应用软件平台页面上展示的封面图片查询则是使用的MPP数据库,在该场景下,操作页面未提交接口请求,由软件服务器内部构造请求,请求信息如下:
{"sql":"select DOSSIER_ID,RECOMMEND_CENTRO_ID,FACE_IMG_URL,CAP_TIME,CREATE_TIME,CHANNEL_ID from P_FACE_CENTRO_RELATION WHERE(DOSSIER_ID,CAP_TIME)IN(select DOSSIER_ID,MAX(CAP_TIME)as CAP_TIME from P_FACE_CENTRO_RELATIONWHERE DOSSIER_ID IN('1386574419899322368','1386326923063066624','1386370519900229632','1386293199709667328','1386292696732798976','1386329498051289088','1386329656868343808','1386288875356950528')group byDOSSIER_ID)"}
数据库上层软件服务器对待转换语句进行解析,将待转换语句转换为可以在MPP数据库中执行的SQL语句,语句信息如下:SELECT DOSSIER_ID,RECOMMEND_CENTRO_ID,FACE_IMG_URL,CAP_TIME,CREATE_TIME,CHANNEL_ID FROM P_FACE_CENTRO_RELATIONWHERE(DOSSIER_ID,CAP_TIME)IN(SELECT DOSSIER_ID,MAX(CAP_TIME)AS CAP_TIME FROMP_FACE_CENTRO_RELATION WHERE DOSSIER_ID IN('1386574419899322368','1386326923063066624','1386370519900229632','1386293199709667328','1386292696732798976','1386329498051289088','1386329656868343808','1386288875356950528')GROUP BY DOSSIER_ID)
可选地,所述目标索引包括用户名和表名中的至少一个子索引信息,所述根据目标索引确定第二语句类型,包括:在待转换语句中解析出所述至少一个子索引信息;根据所述至少一个子索引信息确定第二语句类型。
作为一个可选的实施方式,可以使用云数据库平台对多个数据库进行管理,也就是说,云数据库平台中包含多种类型的数据库,例如,云数据库平台可以对ES、Ads、MPP等多种类型的数据库进行管理。云数据库中可以创建多个用户,每个用户在云数据库平台中可以创建多个数据库,多个数据库可以是相同类型的数据库,也可以是不同类型的数据库。例如,同一个用户可以在云数据库中创建ES、Ads、MPP等多种类型的数据库。
作为一个可选的实施方式,以在云数据库中创建多个用户,每个用户在云数据库中建立一个数据库为例。在云数据库中创建三个用户,分别为user1,user2和user3,每个用户创建一个数据库,数据库类型分别对应为MySQL,ElasticSearch和MPP。可以在MySQL、ElasticSearch、MPP中的任意一个数据库中存储云数据库相关的配置信息。以MySQL数据库存储云数据库相关的配置信息为例,在创建数据库表时,在Mysql的table_info表中记录该表的存储信息mode_name。根据用户名和表名可以获取表的tableinfo信息。例如,在云数据库中的ElasticSearch中创建了一张表名为table1,云数据库会将table1、user2以及ElasticSearch的对应关系存储至table_info表中,表中的字段mode_name值即为ElasticSearch。数据库上层软件服务器对待转换语句进行解析,获取到待转换语句中携带的用户名user2和表名table1,并将user2和表名table1作为目标索引在table_info表中查询对应的数据库名为ElasticSearch,可以确定第二语句类型为可以操作ElasticSearch数据库的语句类型。目标索引可以为用户名和数据库表名,也可以根据实际业务需求选择其中的一个,此处对目标索引不作限制。
作为一个可选的实施方式,数据库上层软件服务器在待转换语句中获取目标索引信息,目标索引可以为云数据库的用户名和数据库表名,也可以根据实际业务需求选择其中的一个,此处对目标索引不作限制。目标索引为用户名和数据库表名,数据库上层软件服务器在待转换语句中解析出目标索引后,可以通过用户名和数据库表名在云数据库的配置信息表table_info中进行查询,获取需要转换的第二语句类型。
可选地,根据所述至少一个子索引信息确定所述第二语句类型,包括:根据所述至少一个子索引信息,确定存储目标数据的目标数据库,其中,待转换语句用于请求获取目标数据;确定与目标数据库对应的第二语句类型,其中,目标数据库被设置为使用第二语句类型的语句。
作为一个可选的实施方式,在云数据库中创建多个用户,在每个用户下建立一个数据库,例如,在云数据库中创建三个用户,分别为user1,user2和user3,在每个用户下创建一个数据库,数据库类型分别对应为MySQL,ElasticSearch和MPP,其中MySQL数据库用于存储云数据库相关的配置信息。在创建数据库表时,在Mysql的table_info表中记录该表的存储信息mode_name。根据用户名和表名可以获取表的tableinfo信息。例如,在云数据库中的ElasticSearch中创建了一张表名为table1,云数据库会将table1、user2以及ElasticSearch的对应关系存储至table_info表中,表中的字段mode_name值即为ElasticSearch。数据库上层软件服务器对待转换语句进行解析,获取到待转换语句中携带的用户名user2和表名table1,并将user2和表名table1作为目标索引在table_info表中查询对应的数据库名为ElasticSearch,可以确定第二语句类型为可以操作ElasticSearch数据库的语句类型。目标索引可以为用户名和数据库表名,也可以根据实际业务需求选择其中的一个,此处对目标索引不作限制。
可选地,在将待转换语句转换为第二语句类型的目标语句之后,方法包括:通过目标语句在目标数据库中获取目标数据;将目标数据发送至目标软件平台;在目标软件平台的操作页面显示目标数据。
作为一个可选的实施方式,数据库上层软件服务器对软件服务器发送的待转换语句进行处理,如图3所示为根据本发明实施例的整体架构框图,在本实施例中,待转换语句被数据库上层软件服务器解析为可以在ElasticSearch数据库中执行的目标语句,并将目标语句指令发送至目标数据库,目标数据库即为ElasticSearch数据库,ElasticSearch数据库将目标指令的执行结果返回至数据库上层软件服务器,该执行结果即为目标数据,数据库上层软件服务器将目标数据通过软件服务器,返回至应用软件平台,本实施例中,应用软件平台为目标软件平台,并在目标软件平台的结构化搜档功能操作页面中显示返回的目标数据。在本实施例中,通过在table_info表中存储了目标索引与数据库的对应关系,通过目标索引可以在table_info表中查找到与该目标索引对应的数据库类型,进而可以确定出该数据库类型对应的语句类型,由此可以确定出待转换语句需要转换的第二语句类型,通过将待转换语句转换为第二语句类型的目标语句,可以达到通过计算机自动对不同数据库类型的语句进行转换的目的,提高了数据库的操作效率。
可选地,根据目标映射关系,将待转换语句转换为第二语句类型的目标语句,包括:对待转换语句进行解析,得到语句对象集合,其中,语句对象集合中包括多个语句对象;在目标映射关系中查找每个语句对象对应的转换方式;按照转换方式对每个语句对象进行处理,得到第二语句类型的目标语句。
作为一个可选的实施方式,可以使用jsqlparser解析出SQL语句类型与语句对象,jsqlparser为用于对SQL语句进行解析和组装的插件,语句对象是根据SQL语句解析出来的SQL的各部分的组成对象,例如,SQL语句中的别名、where条件、select、update、delete、alter以及insert操作等。根据SQL语句的类型,数据库上层软件服务器会对待转换语句进一步解析,获取待转换语句的语句对象集合,可以解析的语句对象包括但不限于表名、where条件等,在目标映射关系中定义了查找每个语句对象对应的转换方式,通过对象的转换方式对每个语句对象进行处理,得到第二语句类型的目标语句,该目标语句可以在特定的存储数据库中执行。
作为一个可选的实施方式,在对待转换语句进行解析时,针对select、update、delete、alter以及insert操作,对应5种不同的语句对象转换方式,例如,假设待转换语句为select查询语句,针对ElaticSearch数据库,则需要使用请求/index/type/_search服务的方式实现select查询语句,并且需要将待转换语句中where语句对象后面的条件语句对象转化成query语句。但对于MPP数据库、ORACLE数据库、ADs数据库,则还是使用SQL语句的方式实现查询,对于以上三种数据库,需要针对不同数据库将部分条件进行适配,例如distinct语句对象、case语句对象、when语句对象、子查询语句对象及时间函数语句对象等。
作为一个可选的实施方式,假设待转换语句为update语句,在对ElaticSearch数据库进行update更新操作时,需要使用updateByQuery的方式,通过生成与更新操作对应的script语句,并将请求数据通过post请求发送至ElaticSearch数据库。在进行语句对象转换时,需要对语句对象进行的操作包括:(1)单引号语句对象的转义,SQL语句中的单引号,使用单引号转义单引号语句对象;(2)插入及更新中的单引号对象,需要将字符串中的两个单引号对象变成一个;(3)字符串值原本是单引号包裹,ElaticSearch数据库更新时统一改为用双引号包裹;(4)字符串值中包含双引号语句对象时,将双引号改为\"+'\"'+\"。在对MPP数据库,ORACLE数据库以及ADs数据进行update更新操作时,则是使用SQL语言中的update语句。需要说明的是,MPP数据库在更新分布键时,需要开启优化器。假设待转换语句为delete语句,若delete语句中包含in语句对象,则将in语句对象后的“()”小括号语句对象去掉,若delete语句中包含any values语句对象,则需要将该语句对象转换为in语句。此外,针对特殊字符语句对象,有特殊的转换规则,如表1所示:
表1
Figure BDA0003176282270000141
可选地,获取第一语句类型的待转换语句,包括:接收第一语句类型的SQL语句;将SQL语句中的预设字段转换为目标字段,得到待转换语句,其中,目标字段中的字符为大写字符。
作为一个可选的实施方式,在数据库上层软件服务器中接收第一语句类型的待处理语句后,获取第一语句类型的SQL语句,在对SQL语句转换之前,需要做SQL解析的预处理操作,在本实施例中,由于云库中ElasticSearch数据库中的表名统一为大写,ElasticSearch数据库中的表名、字段名区分大小写,而MPP数据库、Oracle数据库不区分大小写。因此,为了适应多种数据库,需要将待处理的SQL语句处理为对大小写不敏感,即需要对SQL语句进行预处理。预设字段为SQL语句中除了字段值中包含字符串值以及字段别名以外的字段,目标字段为统一转换为大写的SQL语句字段。
作为一个可选的实施方式,数据上层软件服务器的查询操作接口地址可以设置为POST/clouddb/dbs/sql/query,查询接口接收的请求信息为{'sql':”select*from P_PICRECODE LIMIT 10OFFSET 0;”},接口的参数信息包括:(1)esAnalyzer,es分词器,针对alter添加字段语句的可选参数;(2)esIndex,字段是否为es的索引字段,针对alter添加字段语句的可选参数。默认为true索引字段。如果为false,表示添加的字段为非索引字段,不能作为搜索条件;(3)sql,发送的SQL语句;(4)synchronize,是否为同步接口,针对update、delete、alter、create index语句的可选参数。默认值为true,等待接口返回。上述的四个参数中,参数(1)和参数(2)适用于ElaticSearch数据库,参数(4)可以根据实际的业务需求进行选择,设置为同步接口,或异步接口。
作为一个可选的实施方式,语句转换操作的流程,如图5所示根据本发明可选实施例的语句转换的解析流程图,数据库上层软件服务器接收软件服务器发送的包含sql参数的post请求,数据库上层软件服务器提取出post请求中的sql信息,进行SQL语句的常规语法校验,校验通过后,对SQL语句进行预处理,将语句中除了字段值中包含的字符串值以及字段别名以外的SQL语句,全部转换为大写,对已经转换为大写的SQL语句进行语句解析,确定需要进行语句转换对应的转换方法,将待转换语句解析为第二语句类型,并生成可以操作特定数据库的第二语句类型的目标语句,特定数据库包括但不限于大规模并行分析数据库(Analytical Massively Parallel Processing Databases,简称MPP),ElasticSearch数据库,甲骨文数据库(Oracle Database,简称Oracle),阿里关系型数据库(RelationalDatabase Service,简称Ads)。数据库上层软件服务器将目标语句发送至特定的数据库,执行转换后的语句,实现对目标数据的操作。针对不同的数据库,在对语句对象进行转换时,包括但不限于以下描述的转换方式:
对于ElasticSearch数据库的语句对象转换方式,包括但不限于以下表2中方法:
表2
Figure BDA0003176282270000161
对于MPP数据库的语句对象转换方式,包括但不限于以下表3中的方法:
表3
FuzzyMatchingRule 模糊匹配方法转换
ConvertTimeRule 时间tz格式转换
TimeDifferRule 时间差TIMESTAMPDIFF函数转换
DateFormatRule DATE_FORMAT函数转换
FuncDHCloudTimeGroupRule 非标准函数,协议上不支持
ReplaceDataTypeRule 字段类型转换方法
ConcatRule 字符串拼接函数CONCAT、CONCAT_WS
DropIndexRule drop index语句转换
对于ORACLE数据库的语句对象转换方式,包括但不限于以下表4中的方法:
表4
Figure BDA0003176282270000162
Figure BDA0003176282270000171
在上述实施例中,通过将通用SQL语句进行转换的方式避免了技术人员在操作不同种类的数据库难度大,效率低的问题,通过将通用的SQL语句转换为可操作不同种类数据库的执行语句,并对指定的数据库进行操作,能够有效提高技术人员操作不同种类数据库的效率,降低了开发的成本和难度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种语句类型的转换装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的语句类型的转换装置的结构框图,如图6所示,该装置包括:获取模块62,用于获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;第一确定模块64,用于根据目标索引确定第二语句类型;第二确定模块66,用于在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;转换模块68,用于根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。
可选地,上述装置还用于根据目标索引确定第二语句类型,包括:在待转换语句中解析出至少一个子索引信息;根据所述至少一个子索引信息确定第二语句类型,其中,目标索引包括上述用户名和表名中的至少一个子索引信息。
可选地,上述装置还用于根据所述至少一个子索引信息,确定存储目标数据的目标数据库,其中,待转换语句用于请求获取目标数据;确定与目标数据库对应的第二语句类型,其中,目标数据库被设置为使用第二语句类型的语句。
可选地,上述装置还用于通过目标语句在目标数据库中获取目标数据;将目标数据发送至目标软件平台;在目标软件平台的操作页面显示目标数据。
可选地,上述装置还用于对待转换语句进行解析,得到语句对象集合,其中,语句对象集合中包括多个语句对象;在目标映射关系中查找每个语句对象对应的转换方式;按照转换方式对每个语句对象进行处理,得到第二语句类型的目标语句。
可选地,上述装置还用于接收第一语句类型的SQL语句;将SQL语句中的预设字段转换为目标字段,得到待转换语句,其中,目标字段中的字符为大写字符。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;
S2,根据目标索引确定第二语句类型;
S3,在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;
S4根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;
S2,根据目标索引确定第二语句类型;
S3,在预设映射关系中确定第一语句类型与第二语句类型之间的目标映射关系;
S4根据目标映射关系,将待转换语句转换为第二语句类型的目标语句。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种语句类型的转换方法,其特征在于,包括:
获取第一语句类型的待转换语句,其中,所述待转换语句中携带有目标索引;
根据所述目标索引确定第二语句类型;
在预设映射关系中确定所述第一语句类型与所述第二语句类型之间的目标映射关系;
根据所述目标映射关系,将所述待转换语句转换为所述第二语句类型的目标语句。
2.根据权利要求1所述的方法,其特征在于,所述目标索引包括用户名和表名中的至少一个子索引信息,所述根据所述目标索引确定所述第二语句类型,包括:
在所述待转换语句中解析出所述至少一个子索引信息;
根据所述至少一个子索引信息确定所述第二语句类型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述至少一个子索引信息确定所述第二语句类型,包括:
根据所述至少一个子索引信息,确定存储目标数据的目标数据库,其中,所述待转换语句用于请求获取所述目标数据;
确定与所述目标数据库对应的所述第二语句类型,其中,所述目标数据库被设置为使用所述第二语句类型的语句。
4.根据权利要求3中任一项所述的方法,其特征在于,在所述将所述待转换语句转换为所述第二语句类型的所述目标语句之后,所述方法包括:
通过所述目标语句在所述目标数据库中获取所述目标数据;
将所述目标数据发送至目标软件平台;
在所述目标软件平台的操作页面显示所述目标数据。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述目标映射关系,将所述待转换语句转换为所述第二语句类型的所述目标语句,包括:
对所述待转换语句进行解析,得到语句对象集合,其中,所述语句对象集合中包括多个语句对象;
在所述目标映射关系中查找每个所述语句对象对应的转换方式;
按照所述转换方式对每个所述语句对象进行处理,得到所述第二语句类型的所述目标语句。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取所述第一语句类型的所述待转换语句,包括:
接收所述第一语句类型的SQL语句;
将所述SQL语句中的预设字段转换为目标字段,得到所述待转换语句,其中,所述目标字段中的字符为大写字符。
7.一种语句类型的转换装置,其特征在于,包括:
获取模块,用于获取第一语句类型的待转换语句,其中,待转换语句中携带有目标索引;
第一确定模块,用于根据所述目标索引确定第二语句类型;
第二确定模块,用于在预设映射关系中确定所述第一语句类型与所述第二语句类型之间的目标映射关系;
转换模块,用于根据所述目标映射关系,将所述待转换语句转换为所述第二语句类型的目标语句。
8.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述程序可被终端设备或计算机运行时执行所述权利要求1至6任一项中所述的方法。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
CN202110833259.4A 2021-07-22 2021-07-22 语句类型的转换方法、装置、存储介质及电子装置 Pending CN113505143A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110833259.4A CN113505143A (zh) 2021-07-22 2021-07-22 语句类型的转换方法、装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110833259.4A CN113505143A (zh) 2021-07-22 2021-07-22 语句类型的转换方法、装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN113505143A true CN113505143A (zh) 2021-10-15

Family

ID=78013534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110833259.4A Pending CN113505143A (zh) 2021-07-22 2021-07-22 语句类型的转换方法、装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN113505143A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114322A (zh) * 2022-07-14 2022-09-27 重庆软江图灵人工智能科技有限公司 基于深度学习的人工智能sql脚本数据处理方法装置及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110024074A (ko) * 2009-09-01 2011-03-09 한국전자통신연구원 데이터베이스 정제 장치 및 그 방법, 이를 이용한 음성 이해 장치 및 그 방법
CN108121709A (zh) * 2016-11-28 2018-06-05 中兴通讯股份有限公司 一种搜索处理方法及装置
CN112231351A (zh) * 2020-10-14 2021-01-15 广东亿迅科技有限公司 一种pb级海量数据的实时查询方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110024074A (ko) * 2009-09-01 2011-03-09 한국전자통신연구원 데이터베이스 정제 장치 및 그 방법, 이를 이용한 음성 이해 장치 및 그 방법
CN108121709A (zh) * 2016-11-28 2018-06-05 中兴通讯股份有限公司 一种搜索处理方法及装置
CN112231351A (zh) * 2020-10-14 2021-01-15 广东亿迅科技有限公司 一种pb级海量数据的实时查询方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114322A (zh) * 2022-07-14 2022-09-27 重庆软江图灵人工智能科技有限公司 基于深度学习的人工智能sql脚本数据处理方法装置及介质

Similar Documents

Publication Publication Date Title
CN109299110B (zh) 数据查询方法、装置、存储介质和电子设备
US11899681B2 (en) Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium
CN112860727B (zh) 基于大数据查询引擎的数据查询方法、装置、设备及介质
CN109522341B (zh) 实现基于sql的流式数据处理引擎的方法、装置、设备
CN111309760A (zh) 数据检索方法、系统、设备及存储介质
CN113360519B (zh) 数据处理方法、装置、设备和存储介质
CN111143403B (zh) Sql转换方法及装置、存储介质
CN112416962A (zh) 数据查询方法、装置以及存储介质
CN115016793A (zh) 基于语法树的代码生成方法和装置、电子设备、存储介质
CN113760948A (zh) 一种数据查询的方法及装置
CN110795697A (zh) 逻辑表达式的获取方法、装置、存储介质以及电子装置
CN111897836A (zh) 一种搜索系统、方法及存储介质
CN108664546B (zh) Xml数据结构转换方法和装置
CN113505143A (zh) 语句类型的转换方法、装置、存储介质及电子装置
CN108694172B (zh) 信息输出方法和装置
CN110188106B (zh) 一种数据管理方法和装置
CN116737760A (zh) 数据的查询方法及装置、非易失性存储介质、电子设备
CN112667632B (zh) 一种元数据处理方法及装置
CN115905239A (zh) 一种高度复用的性能指标数据检索实现方法及装置
CN114064601B (zh) 存储过程转换方法、装置、设备和存储介质
CN117009430A (zh) 数据管理方法、装置和存储介质及电子设备
CN110471708B (zh) 基于可重用组件的配置项获取的方法及装置
CN112835901A (zh) 文件存储方法及装置、计算机设备、计算机可读存储介质
CN111078727A (zh) 一种简要描述生成方法、装置及计算机可读存储介质
CN111221846B (zh) 一种sql语句的自动翻译方法及装置

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