CN117407411A - 数据库语句的执行方法、装置 - Google Patents

数据库语句的执行方法、装置 Download PDF

Info

Publication number
CN117407411A
CN117407411A CN202311354862.XA CN202311354862A CN117407411A CN 117407411 A CN117407411 A CN 117407411A CN 202311354862 A CN202311354862 A CN 202311354862A CN 117407411 A CN117407411 A CN 117407411A
Authority
CN
China
Prior art keywords
database
statement
target
target database
sql
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
CN202311354862.XA
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.)
Zhongdian Jinxin Software Co Ltd
Original Assignee
Zhongdian Jinxin Software 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 Zhongdian Jinxin Software Co Ltd filed Critical Zhongdian Jinxin Software Co Ltd
Priority to CN202311354862.XA priority Critical patent/CN117407411A/zh
Publication of CN117407411A publication Critical patent/CN117407411A/zh
Pending legal-status Critical Current

Links

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
    • 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执行语句,得到待执行的SQL执行语句列表;按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句,以使目标数据库基于各SQL执行语句进行处理,得到执行结果集并返回执行结果集。采用本方法能够提升大数据平台调用多个数据库的调用效率。

Description

数据库语句的执行方法、装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据库语句的执行方法、装置。
背景技术
随着计算机的不断发展,数据库中的数据量高速增长,大数据平台成为企业处理大数据的重要数据架构,大数据平台后台通过运行大量的任务进行数据的清洗、转换、加载。
相关技术中,大数据平台在执行上述任务时,需要通过外部的多种计算机语言去调用SQL语句,从而调用不同类型的数据库中的数据。由于大数据平台需要调用的数据分别存储在多种数据库中,在此基础上采用多种计算机语言进行各数据库对应的数据调用,会导致企业的技术栈过于复杂,从而降低大数据平台调用数据库的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升大数据平台调用数据库效率的数据库语句的执行方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据库语句的执行方法,包括:
基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,基于所述连接对象,连接所述目标数据库,所述目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,所述标识信息与所述目标数据库一一对应;
基于所述数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,所述控制语句包含所述数据库语句的控制逻辑,所述待执行的SQL执行语句列表的执行顺序是基于各所述控制语句的控制逻辑确定的;
按照所述待执行的SQL执行语句列表的执行顺序,向所述目标数据库发送所述待执行的SQL执行语句列表中的各所述SQL执行语句,以使所述目标数据库基于各所述SQL执行语句进行处理,得到执行结果集并返回所述执行结果集。
在其中一个实施例中,所述基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,包括:
基于预设的字符识别规则,在所述SQL连接语句中进行识别,确定与所述字符识别规则匹配的字符信息,并确定所述字符信息为所述目标数据库的标识信息;
基于预设的连接对象和数据库的标识信息的对应关系,确定所述目标数据库的标识信息对应的连接对象。
在其中一个实施例中,所述基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,包括:
确定所述目标数据库的标识信息对应的驱动路径,并获取所述驱动路径包含的所述目标数据库对应的数据库连接驱动;
通过所述数据库连接驱动创建所述目标数据库对应的连接对象。
在其中一个实施例中,所述通过所述数据库连接驱动创建所述目标数据库对应的连接对象之后,所述方法还包括:
将所述目标数据库的标识信息和所述目标数据库对应的连接对象,添加至所述预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,所述更新后的对应关系用于在连接所述目标数据库时,基于所述更新后的对应关系确定所述目标数据库对应的连接对象。
在其中一个实施例中,所述基于所述数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,包括:
基于所述数据库语句包含的各控制语句的控制逻辑,对所述数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
在其中一个实施例中,所述按照所述待执行的SQL执行语句列表的执行顺序,向所述目标数据库发送所述待执行的SQL执行语句列表中的各所述SQL执行语句之前,所述方法还包括:
根据所述数据库语句对应的目标参数配置文件中的语句更新参数,对所述SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
在其中一个实施例中,所述方法还包括:
获取所述执行结果集中包含的目标更新参数;
在所述目标参数配置文件中,基于所述目标更新参数对所述语句更新参数进行更新,得到更新后的语句更新参数。
在其中一个实施例中,所述基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,包括:
基于所述目标数据库的标识信息,在所述目标参数配置文件中确定所述目标数据库对应的登录信息,所述目标参数配置文件包含加密的登录信息;
基于所述登录信息确定所述目标数据库对应的连接对象。
在其中一个实施例中,所述方法还包括:
在所述目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;
通过所述目标线程执行所述数据库语句。
在其中一个实施例中,所述方法还包括:
在通过所述SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使所述第一目标数据库在所述目标管道文件上执行读取外表操作和写入内表操作,以及所述第二目标数据库在所述目标管道文件上执行读取内表操作和写入外表操作。
第二方面,本申请还提供了一种数据库语句的执行装置,包括:
数据库连接模块,用于基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,基于所述连接对象,连接所述目标数据库,所述目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,所述标识信息与所述目标数据库一一对应;
SQL语句确定模块,用于基于所述数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,所述控制语句包含所述数据库语句的控制逻辑,所述待执行的SQL执行语句列表的执行顺序是基于各所述控制语句的控制逻辑确定的;
SQL语句执行模块,用于按照所述待执行的SQL执行语句列表的执行顺序,向所述目标数据库发送所述待执行的SQL执行语句列表中的各所述SQL执行语句,以使所述目标数据库基于各所述SQL执行语句进行处理,得到执行结果集并返回所述执行结果集。
在其中一个实施例中,所述数据库连接模块,具体用于:基于预设的字符识别规则,在所述SQL连接语句中进行识别,确定与所述字符识别规则匹配的字符信息,并确定所述字符信息为所述目标数据库的标识信息;基于预设的连接对象和数据库的标识信息的对应关系,确定所述目标数据库的标识信息对应的连接对象。
在其中一个实施例中,所述数据库连接模块,具体还用于:确定所述目标数据库的标识信息对应的驱动路径,并获取所述驱动路径包含的所述目标数据库对应的数据库连接驱动;通过所述数据库连接驱动创建所述目标数据库对应的连接对象。
在其中一个实施例中,所述数据库连接模块,具体还用于:将所述目标数据库的标识信息和所述目标数据库对应的连接对象,添加至所述预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,所述更新后的对应关系用于在连接所述目标数据库时,基于所述更新后的对应关系确定所述目标数据库对应的连接对象。
在其中一个实施例中,所述SQL语句确定模块,具体用于:基于所述数据库语句包含的各控制语句的控制逻辑,对所述数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
在其中一个实施例中,所述装置还包括参数更新模块,具体用于:根据所述数据库语句对应的目标参数配置文件中的语句更新参数,对所述SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
在其中一个实施例中,所述参数更新模块,具体还用于:获取所述执行结果集中包含的目标更新参数;在所述目标参数配置文件中,基于所述目标更新参数对所述语句更新参数进行更新,得到更新后的语句更新参数。
在其中一个实施例中,所述数据库连接模块,具体还用于:基于所述目标数据库的标识信息,在所述目标参数配置文件中确定所述目标数据库对应的登录信息,所述目标参数配置文件包含加密的登录信息;基于所述登录信息确定所述目标数据库对应的连接对象。
在其中一个实施例中,所述装置还包括线程执行模块,具体用于:在所述目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;通过所述目标线程执行所述数据库语句。
在其中一个实施例中,所述装置还包括管道文件确定模块,具体用于:在通过所述SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使所述第一目标数据库在所述目标管道文件上执行读取外表操作和写入内表操作,以及所述第二目标数据库在所述目标管道文件上执行读取内表操作和写入外表操作。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述方法的步骤。
上述数据库语句的执行方法、装置、计算机设备、存储介质和计算机程序产品,服务器通过基于目标数据库的标识信息确定出的连接对象,与目标数据库进行连接;服务器还可以基于控制语句的控制逻辑和SQL执行语句,得到待执行的SQL执行语句列表。基于此,服务器在与目标数据库连接后,可以向目标数据库发送待执行的SQL执行语句列表,目标数据库在接收到待执行的SQL执行语句列表之后,可以按照SQL执行语句列表的语句对数据库进行操作,得到执行结果,并返回执行结果。通过采用本方法,可以与各类型的数据库相连接,并使目标数据库执行数据库语句包含的SQL执行语句,并得到执行结果,从而简化服务器与各类型的数据库交互的过程,减少服务器所需使用的技术栈,最终提升服务器与各类型的数据库建立连接并交互的效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据库语句的执行方法的应用环境图;
图2为一个实施例中数据库语句的执行方法的流程示意图;
图3为一个实施例中确定连接对象的步骤的流程示意图;
图4为另一个实施例中确定连接对象的步骤的流程示意图;
图5为一个实施例中更新语句参数的步骤的流程示意图;
图6为再一个实施例中确定连接对象的步骤的流程示意图;
图7为另一个实施例中数据库语句的执行方法的流程示意图;
图8为一个实施例中数据库语句的执行装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据库语句的执行方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信,终端102可以向服务器104发送待执行的数据库语句,并使得服务器104与数据存储系统(数据库)建立通信连接,再将数据库语句发送至数据库,使得数据库执行数据库语句,得到执行结果集。数据存储系统可以存储服务器104需要处理的数据,并在接收到数据库语句后,调用该数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个示例性的实施例中,如图2所示,提供了一种数据库语句的执行方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤S202至步骤S206。其中:
步骤S202,基于目标数据库的标识信息,确定目标数据库对应的连接对象,基于连接对象,连接目标数据库。
其中,目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,SQL连接语句是用于连接目标数据库的语句,标识信息与目标数据库一一对应。连接对象是服务器与数据库建立连接时所需的连接实体,连接实体可以用代码表示,服务器通过连接对象可以使服务器与数据库相连。
具体地,服务器从数据库语句中识别出SQL连接语句,并根据预设的字符识别规则,确定SQL连接语句中包含的标识信息。由于标识信息与目标数据库一一对应,因此,服务器基于标识信息能够确定目标数据库对应的连接对象,服务器再调用包含连接对象的执行语句,从而建立服务器与目标数据库的连接。
可选地,服务器基于预设的字符识别规则识别SQL连接语句,并基于该字符识别规则确定目标数据库的标识信息,从而将服务器中的连接对象替换为目标数据库对应的连接对象。例如,若识别到数据库语句中包含“@Sysid”的格式,则确定该数据库语句为SQL连接语句,基于此,若“@Sysid”中的“id”为“001”,则可以确定SQL连接语句的标识信息为“001”对应的标识信息,基于该标识信息确定“001”对应的连接对象。
步骤S204,基于数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表。
其中,数据库语句包含控制语句和SQL执行语句,控制语句包含数据库语句的控制逻辑,控制逻辑用于确定SQL执行语句的执行次数和执行顺序,以使SQL执行语句能够按照预设次数和预设执行逻辑被目标数据库执行,从而得到执行结果。待执行的SQL执行语句列表的执行顺序是基于各控制语句的控制逻辑确定的。
具体地,服务器遍历数据库语句,针对每一条数据库语句,根据预设的语句识别规则,确定数据库语句的类型,数据库语句的类型可以是控制语句,也可以是SQL执行语句。若数据库语句是控制语句,则服务器基于控制语句的控制逻辑,调整控制逻辑包含的各SQL执行语句的执行顺序,并得到控制语句对应的包含多个SQL执行语句的语句序列。在完成数据库语句的遍历后,将每条控制语句对应的语句序列按照遍历的顺序合并,可以得到待执行的SQL执行语句列表。
可选地,服务器可以通过预设的字符和控制命令的组合代码的来确定数据库语句是否是控制语句,例如,包含“.quit”的数据库语句是控制语句,预设的字符是“.”,控制命令是“quit”,该控制语句表示SQL执行语句列表构建完成,无需再新增待执行的SQL执行语句;服务器可以通过单引号来确定数据库语句是否为执行语句,例如,被两个单引号包括的数据库语句可以为SQL执行语句。
步骤S206,按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句,以使目标数据库基于各SQL执行语句进行处理,得到执行结果集并返回执行结果集。
具体地,服务器遍历待执行的SQL执行语句列表,确定待执行的SQL执行语句列表的执行顺序,并将按照执行顺序向已连接的目标数据库发送多条SQL执行语句。目标数据库在接收到多条SQL执行语句后,按顺序执行SQL执行语句,并根据SQL执行语句中的操作指令,对目标数据库进行增删改查的操作,得到每一条SQL执行语句的执行结果,并合并为执行结果集,最终目标数据库将执行结果集发送至服务器。
在一个示例中,服务器可以按照SQL执行语句列表的执行顺序排列,向目标数据库依次发送各SQL执行语句,以使目标数据库按照发送顺序依次处理各SQL执行语句;服务器可以将SQL执行语句列表中的各SQL执行语句同步发送至目标数据库,以使目标数据库按照SQL执行语句列表的执行顺序,处理各SQL执行语句。
可选地,若服务器同时连接两个或两个以上的目标数据库,则待执行的SQL执行语句列表可以包含单个目标数据库的标识信息,以使服务器能够向目标数据库发送对应的SQL执行语句。
基于上述数据库语句的执行方法,可知,服务器通过基于目标数据库的标识信息确定出的连接对象,与目标数据库进行连接;服务器还可以基于控制语句的控制逻辑和SQL执行语句,得到待执行的SQL执行语句列表。基于此,服务器在与目标数据库连接后,可以向目标数据库发送待执行的SQL执行语句列表,目标数据库在接收到待执行的SQL执行语句列表之后,可以按照SQL执行语句列表的语句对数据库进行操作,得到执行结果,并返回执行结果。通过采用本方法,可以与各类型的数据库相连接,并使目标数据库执行数据库语句包含的SQL执行语句,并得到执行结果,从而简化服务器与各类型的数据库交互的过程,减少服务器所需使用的技术栈,最终提升服务器与各类型的数据库建立连接并交互的效率。
在一个示例性的实施例中,如图3所示,步骤“基于目标数据库的标识信息,确定目标数据库对应的连接对象”的具体实现过程,包括步骤S302至步骤S304。其中:
步骤S302,基于预设的字符识别规则,在SQL连接语句中进行识别,确定与字符识别规则匹配的字符信息,并确定字符信息为目标数据库的标识信息。
其中,字符信息是SQL连接语句中的字符串类型的文本信息。字符信息可以作为目标数据库的标识信息。
具体地,服务器从数据库语句中识别出SQL连接语句之后,服务器可以通过预设的字符识别规则,解析SQL连接语句,确定符合字符识别规则的本文数据,并将文本数据作为与字符识别规则匹配的字符信息,服务器在字符信息与标识信息的映射关系中查找该字符信息,若字符信息与标识信息的映射关系存在该字符信息,则基于该映射关系得到该字符信息对应的标识信息,从而确定目标数据库的标识信息。
可选地,服务器基于预设的字符识别规则识别SQL连接语句,并基于该字符识别规则确定目标数据库的字符信息,服务器可以根据预设的目标数据库和字符信息的映射关系,确定与字符识别规则匹配的字符信息对应的标识信息。并基于从而将服务器中的连接对象替换为目标数据库对应的连接对象。例如,若识别到数据库语句中包含“@Sysid”的文本,则确定该数据库语句为SQL连接语句,基于此,若“@Sysid”中的“id”为“002”,则可以在预设的目标数据库和字符信息的映射关系中,确定SQL连接语句的字符信息为“002”对应的标识信息。
步骤S304,基于预设的连接对象和数据库的标识信息的对应关系,确定目标数据库的标识信息对应的连接对象。
其中,预设的连接对象和数据库的标识信息的对应关系可以包括多个一一对应的连接对象和标识信息。
具体地,服务器可以基于确定出的目标服务器的标识信息,在预设的包含连接对象和数据库的标识信息的对应关系中进行查询,若查询对应关系中包含标识信息,则可以得到标识信息对应的连接对象。由于预设的连接对象和数据库的标识信息的对应关系可以提供多个数据库的标识信息与多个数据库对应的连接对象之间的关联,从而使得服务器可以基于目标数据库的标识信息获取该数据库的连接对象。
本实施例中,通过字符识别规则确定标识信息,并根据连接对象和数据库的标识信息的对应关系,能够达到快速地获取目标数据库的连接对象的效果,以使服务器提升用户与数据库的交互效率。
在一个示例性的实施例中,如图4所示,步骤“基于目标数据库的标识信息,确定目标数据库对应的连接对象”的具体实现过程,包括步骤S402至步骤S404。其中:
步骤S402,确定目标数据库的标识信息对应的驱动路径,并获取驱动路径包含的目标数据库对应的数据库连接驱动。
步骤S404,通过数据库连接驱动创建目标数据库对应的连接对象。
其中,驱动路径是表示服务器存储目标数据库对应的数据库连接驱动的存储位置,数据库连接驱动可以用于创建目标数据库对应的连接对象,数据库连接驱动可以是数据库供应商提供的该数据库对应的驱动文件。
具体地,服务器在获取目标数据库的标识信息之后,可以基于标识信息,将标识信息的文本合并至预设的驱动路径中,从而得到该标识信息对应的驱动路径。服务器调用该标识信息对应的驱动路径,从而确定目标数据库对应的数据库连接驱动。服务器运行数据库连接驱动,从而创建目标数据库对应的连接对象。
可选地,服务器可以将多个数据库连接驱动对应的Java驱动文件存储至预设的目标驱动路径,当服务器获取目标数据库的标识信息之后,可以通过标识信息加载目标驱动路径下对应的Java驱动文件,并执行调用指令,创建目标数据库对应的连接对象。
本实施例中,通过驱动路径定位数据库连接驱动,并基于数据库连接驱动得到目标数据库对应的连接对象,可以保证服务器准确调用目标数据库的数据库连接驱动,并创建目标数据库对应的连接对象,从而提升创建目标数据库对应的连接对象的稳定性。
在一个示例性的实施例中,步骤“通过数据库连接驱动创建目标数据库对应的连接对象”之后,该数据库语句的执行方法还包括:
将目标数据库的标识信息和目标数据库对应的连接对象,添加至预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系。
其中,更新后的对应关系用于在连接目标数据库时,基于更新后的对应关系确定目标数据库对应的连接对象。
具体地,服务器中包含预设的连接对象和数据库的标识信息的对应关系的文件。基于此,服务器在获取到新的目标数据库的标识信息以及目标数据库对应的连接对象之后,将目标数据库的标识信息和目标数据库对应的连接对象添加至该文件中,从而更新该文件中包含的连接对象和标识信息的对应关系。在服务器重新基于标识信息连接目标数据库时,可以优先从包含预设的连接对象和数据库的标识信息的对应关系的文件中确定连接对象。
本实施例中,通过更新连接对象和数据库的标识信息的对应关系,得到更新后的包含该对应关系的文件,能够提升服务器创建目标数据库对应的连接对象的速度,从而提升服务器连接目标数据库的效率。
在一个示例性的实施例中,步骤“基于数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表”的具体实现过程,包括:
基于数据库语句包含的各控制语句的控制逻辑,对数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
具体地,服务器遍历数据库语句,针对每一条数据库语句,根据预设的语句识别规则,确定数据库语句是控制语句或SQL执行语句。若该数据库语句是控制语句,则服务器基于控制语句的控制逻辑,确定控制逻辑包含的各SQL执行语句的执行顺序、循环次数和循环逻辑,并基于循环逻辑合并该控制语句对应的各SQL执行语句的执行顺序和循环次数,从而得到控制语句对应的包含多个SQL执行语句的语句序列。在完成数据库语句的遍历后,将每条控制语句对应的语句序列按照遍历的顺序合并,可以得到待执行的SQL执行语句列表。
本实施例中,通过遍历数据库语句,为多个SQL执行语句添加执行顺序和执行次数,从而得到待执行的SQL执行语句列表,以使目标数据库能够基于SQL执行语句列表确定SQL执行语句列表对应的执行结果,从而提升数据库语句的执行效率。
在一个示例性的实施例中,步骤“按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句”之前,该数据库语句的执行方法,还包括:
根据数据库语句对应的目标参数配置文件中的语句更新参数,对SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
其中,目标参数文件中可以包含数据库语句所需的属性参数,属性参数可以包括用于连接目标数据库的连接配置参数,属性参数还可以包括用于动态调整SQL执行语句中数据对象的语句更新参数,以及包括服务器执行数据库语句的执行方法时的工作变量参数,工作变量参数用于表示服务器执行数据库语句的工作环境。语句更新参数可以是SQL执行语句中所要处理的数据对象对应的参数信息。
具体地,当用户向服务器输入SQL执行语句对应的目标执行对象时,服务器可以将目标执行对象存储至目标参数配置文件中,并解析目标参数配置文件,确定目标执行对象对应的语句更新参数。基于此,服务器将语句更新参数,更新至目标执行对象对应的SQL执行语句,得到更新后的SQL执行语句。更新后的SQL执行语句能够在目标数据库中对上述目标执行对象进行交互,得到目标执行对象对应的交互结果。目标执行对象可以是目标数据库中某个表的字段。例如,用户向服务器输入多个字段参数之后,服务器将字段参数存储至目标配置文件中,基于此,服务器将字段参数替换预计更新参数,得到更新后的SQL执行语句,以使目标数据库执行包含多个字段参数的SQL执行语句,得到多个字段参数对应的执行结果。
在一个示例中,连接配置参数可以包含目标数据库的标识信息、目标数据库的地址、目标数据库的用户名及密码。服务器在确定目标数据库的标识信息时,可以基于标识信息以及连接配置参数创建目标数据库对应的连接对象。
在一个示例中,工作变量参数可以包含服务器的IP地址、端口号、根目录、初始数据库对应的标识信息等。
本实施例中,通过目标参数配置文件中的语句更新参数,更新SQL执行语句的参数,能够在不改变SQL执行语句的情况下,动态地改变SQL执行语句中待执行的参数,从而在仅改变参数的情况下,重复执行相同结构的SQL执行语句,最终达到提升SQL执行语句利用率的效果。
在一个示例性的实施例中,如图5所示,该数据库语句的执行方法,还包括步骤S502至步骤S504。其中:
步骤S502,获取执行结果集中包含的目标更新参数。
步骤S504,在目标参数配置文件中,基于目标更新参数对语句更新参数进行更新,得到更新后的语句更新参数。
其中,执行结果集是目标数据库依据各SQL执行语句执行得到的结果,目标更新参数是执行结果集中各结果包含数据的属性参数,目标数据库在执行了SQL执行语句之后,服务器可以将执行结果集作为输入参数,并将输入参数更新至SQL执行语句得到更新后的SQL执行语句,最终使目标数据库再次执行更新后的SQL执行语句,从而完成目标数据库迭代执行SQL执行语句。基于此,目标更新参数用于更新SQL执行语句中的参数。
具体地,服务器在获取目标数据库返回的执行结果集后,解析执行结果集,确定执行结果集中包含的目标更新参数,并将基于执行结果集中包含的目标更新参数对SQL执行语句中的参数进行更新,得到更新后的语句更新参数,例如可以是替换SQL执行语句中查询的字段,更新前的语句更新参数用于查询动物的信息,而更新后的语句更新参数用于查询动物的信息中包含的人类的信息。
本实施例中,通过执行结果集中的标更新参数,更新目标参数配置文件的目标更新参数。能够基于目标数据库的执行结果,动态改变SQL执行语句中的参数,从而提升SQL执行语句的执行效率。
在一个示例性的实施例中,如图6所示,步骤“基于目标数据库的标识信息,确定目标数据库对应的连接对象”的具体实现过程,包括:
步骤S602,基于目标数据库的标识信息,在目标参数配置文件中确定目标数据库对应的登录信息。
步骤S604,基于登录信息确定目标数据库对应的连接对象。
其中,目标参数配置文件包含加密的登录信息,目标参数配置文件中可以包括目标数据库的登录信息,登录信息可以由目标参数配置文件的连接配置参数组成。目标数据库对应的连接配置参数可以包含目标数据库的标识信息、目标数据库的地址、目标数据库的用户名及密码。
具体地,服务器基于确定出的目标数据库的标识信息,可以在目标参数配置文件包含的连接配置参数中,确定与标识信息匹配的目标数据库对应的登录信息,并根据登录信息中的目标数据库的地址、目标数据库的用户名及密码,创建目标数据库的连接对象。在创建连接对象时,服务器执行数据库连接驱动对应的驱动文件,并将目标数据库的地址、目标数据库的用户名及密码输入该驱动文件,得到目标数据库对应的连接对象。
本实施例中,通过标识信息在目标参数配置文件中确定目标数据库对应的登录信息,并基于登录信息创建连接对象,能够使用户在目标参数配置文件中灵活定义数据库的登录信息,以供服务器创建连接对象,提升服务器连接各目标数据库时创建各目标数据库对应的连接对象的效率。
在一个示例性的实施例中,该数据库语句的执行方法,还包括:在目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;通过目标线程执行数据库语句。
具体地,若目标数据库的标识信息中包含预设的调用字符,则服务器创建新的线程,目标数据库可以基于新的线程执行目标数据库对应SQL执行语句,新的线程对数据库提供执行SQL执行语句的执行环境以及执行算力,以使数据库能够高效的输出执行结果集。
在一个示例中,若目标数据库的标识信息包含“/bg”,则服务器创建新的线程。例如,目标数据库的标识信息为“@sysid[/bg]”时,标识信息中包含“/bg”,此时服务器创建新的线程。
本实施例中,通过创建新的线程能够提升目标数据库执行SQL执行语句的执行效率。
在一个示例性的实施例中,数据库语句的执行方法的具体实现过程,还包括:在通过SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使第一目标数据库在目标管道文件上执行读取外表操作和写入内表操作,以及第二目标数据库在目标管道文件上执行读取内表操作和写入外表操作。其中,目标管道文件可以使得两个不同的数据库同时读取数据和写入数据。
具体地,服务器在连接到第一目标数据库和第二目标数据库时,可以通过第一目标数据库或第二目标数据库创建目标管道文件,基于此,第一目标数据库在目标管道文件上执行读取外表操作和写入内表操作,第二目标数据库在目标管道文件上执行读取内表操作和写入外表操作。由于第一目标数据库在读取数据和写入数据所用的通道与第二目标数据库在读取数据和写入数据所用的通道不同,因此,能够实现第一目标数据库和第二目标数据库的数据同步。
本实施例中,通过创建目标管道文件能够使两个目标数据库并行执行,从而提升服务器调用数据库的效率。
如图7所示,以下结合一个具体实施例,详细描述上述数据库语句的执行方法的具体执行过程,包括以下步骤:
步骤S702,初始化服务器对应的目标参数配置文件。服务器创建得到目标参数配置文件,其格式为XML。目标参数配置文件中包括多个数据库的登录信息,可以包括数据库地址、数据库名称、数据库密码、数据库密码的加密方式等信息,并为其配置初始值。此外,目标参数配置文件中还可以包括服务器的环境信息,包括服务器的IP地址,端口号,根目录信息等。
步骤S704,遍历将数据库语句,确定目标数据库的连接对象,并连接至目标数据库。解析得到“.logon”对应的语句,并基于该SQL连接语句登录目标数据库。其中该SQL连接语句还包括前缀“@sysID”,表示连接“id”对应的数据库。
由于目标参数配置文件中包含数据库地址、数据库名称、数据库密码,基于此,通过默认配置的信息,创建目标数据库的连接对象。由于目标数据库支持JDBC连接,因此服务器中可以存储目标数据库对应的JDBC驱动文件,该文件是jar格式,并基于该JDBC驱动文件对应的数据库驱动路径,创建目标数据库的连接对象。例如,使用 Class.forName语句指定JDBC的实现类,并调用 DriverManager.getConnection语句,得到JDBC数据库的连接对象。基于连接对象可以向目标数据库提交SQL执行语句。
步骤S706,遍历将数据库语句,根据数据库语句中的控制语句和SQL执行语句,确定待执行的SQL执行语句列表。
服务器遍历数据库语句,针对每一条数据库语句,根据预设的语句识别规则,确定该数据库语句是控制语句还是SQL执行语句。若该数据库语句是控制语句,则服务器基于控制语句的控制逻辑,调整控制逻辑对应的SQL执行语句,遍历完成后,可以得到待执行的SQL执行语句列表。
步骤S708,目标数据库基于待执行的SQL执行语句列表,得到执行结果集。
服务器遍历待执行的SQL执行语句列表,确定待执行的SQL执行语句列表的执行顺序。并将按照执行顺序向已连接的目标数据库发送多个SQL执行语句。目标数据库在接收到SQL执行语句后,执行SQL执行语句,并根据SQL执行语句中的操作指令,执行增删改查操作,得到每一条SQL执行语句的执行结果,并合并为执行结果集,最终从目标数据库返回结果集至服务器。
步骤S710,基于执行结果集更新目标参数配置文件中的参数,并替换SQL执行语句中的参数。当用户向服务器输入SQL执行语句对应的目标执行对象时,服务器可以将目标执行对象存储至目标参数配置文件中,并解析目标参数配置文件,确定目标执行对象对应的语句更新参数。基于此,服务器将语句更新参数,更新至目标执行对象对应的SQL执行语句,得到更新后的SQL执行语句,以使更新后的SQL执行语句能够在目标数据库中对上述目标执行对象进行交互,得到目标执行对象对应的交互结果。
此外,为了支持能够在两个目标数据库并行执行特定的SQL执行语句,设置“@sysid”的字符识别规则,若目标数据库的标识信息是“@sysid[/bg]”,由于标识信息后接了“/bg”,服务器可以内部创建一个线程,采用这个线程执行当前的SQL执行语句。
此外,如果两个目标数据库都支持基于文件的外表操作,可以选定一种两个目标数据库都能支持的数据文件格式,比如TSV,一个目标数据库读内部表写外表,另一个目标数据库读外表写内部表,而且两个外表对应的文件是同一个管道文件。基于此,可以通过两个目标数据库写出无中间文件的全量数据同步的文档,采用该方法可以完成一个目标数据库对应的表到另外一个目标数据库对应的表的全量同步。
例如,可以采用“.OS”的控制命令,调用操作系统命令,以使服务器与目标数据库系统对应的的加载或导出工具协同工作。若现在有一个数仓系统DWS(Data WarehouseService)和一个Oracle系统,DWS端创建一个可读的外表参数指向一个管道文件,使用后台提交SQL执行语句的方式执行读外表写内表,然后使用“.OS”控制命令启动Oracle系统的数据抽取工具,基于数据抽取工具导出数据,并将数据写到该管道文件。并且,DWS执行的读外表写内表的动作与Oracle系统执行数据抽取的动作是并行执行的。基于此,可以实现Oracle系统到DWS的数据库表数据同步。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据库语句的执行方法的数据库语句的执行装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库语句的执行装置实施例中的具体限定可以参见上文中对于数据库语句的执行方法的限定,在此不再赘述。
在一个示例性的实施例中,如图8所示,提供了一种数据库语句的执行装置800,包括:数据库连接模块801、SQL语句确定模块802和SQL语句执行模块803,其中:
数据库连接模块801,用于基于目标数据库的标识信息,确定目标数据库对应的连接对象,基于连接对象,连接目标数据库,目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,标识信息与目标数据库一一对应;
SQL语句确定模块802,用于基于数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,控制语句包含数据库语句的控制逻辑,待执行的SQL执行语句列表的执行顺序是基于各控制语句的控制逻辑确定的;
SQL语句执行模块803,用于按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句,以使目标数据库基于各SQL执行语句进行处理,得到执行结果集并返回执行结果集。
进一步地,数据库连接模块801,具体用于:基于预设的字符识别规则,在SQL连接语句中进行识别,确定与字符识别规则匹配的字符信息,并确定字符信息为目标数据库的标识信息;基于预设的连接对象和数据库的标识信息的对应关系,确定目标数据库的标识信息对应的连接对象。
进一步地,数据库连接模块801,具体还用于:确定目标数据库的标识信息对应的驱动路径,并获取驱动路径包含的目标数据库对应的数据库连接驱动;通过数据库连接驱动创建目标数据库对应的连接对象。
进一步地,数据库连接模块801,具体还用于:将目标数据库的标识信息和目标数据库对应的连接对象,添加至预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,更新后的对应关系用于在连接目标数据库时,基于更新后的对应关系确定目标数据库对应的连接对象。
进一步地,SQL语句确定模块802,具体用于:基于数据库语句包含的各控制语句的控制逻辑,对数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
进一步地,装置还包括参数更新模块,具体用于:根据数据库语句对应的目标参数配置文件中的语句更新参数,对SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
进一步地,参数更新模块,具体还用于:获取执行结果集中包含的目标更新参数;在目标参数配置文件中,基于目标更新参数对语句更新参数进行更新,得到更新后的语句更新参数。
进一步地,数据库连接模块801,具体还用于:基于目标数据库的标识信息,在目标参数配置文件中确定目标数据库对应的登录信息,目标参数配置文件包含加密的登录信息;基于登录信息确定目标数据库对应的连接对象。
进一步地,装置还包括线程执行模块,具体用于:在目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;通过目标线程执行数据库语句。
进一步地,装置还包括管道文件确定模块,具体用于:在通过SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使第一目标数据库在目标管道文件上执行读取外表操作和写入内表操作,以及第二目标数据库在目标管道文件上执行读取内表操作和写入外表操作。
上述数据库语句的执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储包含控制语句和SQL执行语句的数据库语句数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库语句的执行方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个示例性的实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
基于目标数据库的标识信息,确定目标数据库对应的连接对象,基于连接对象,连接目标数据库,目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,标识信息与目标数据库一一对应;
基于数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,控制语句包含数据库语句的控制逻辑,待执行的SQL执行语句列表的执行顺序是基于各控制语句的控制逻辑确定的;
按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句,以使目标数据库基于各SQL执行语句进行处理,得到执行结果集并返回执行结果集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于预设的字符识别规则,在SQL连接语句中进行识别,确定与字符识别规则匹配的字符信息,并确定字符信息为目标数据库的标识信息;基于预设的连接对象和数据库的标识信息的对应关系,确定目标数据库的标识信息对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定目标数据库的标识信息对应的驱动路径,并获取驱动路径包含的目标数据库对应的数据库连接驱动;通过数据库连接驱动创建目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将目标数据库的标识信息和目标数据库对应的连接对象,添加至预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,更新后的对应关系用于在连接目标数据库时,基于更新后的对应关系确定目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于数据库语句包含的各控制语句的控制逻辑,对数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据数据库语句对应的目标参数配置文件中的语句更新参数,对SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取执行结果集中包含的目标更新参数;在目标参数配置文件中,基于目标更新参数对语句更新参数进行更新,得到更新后的语句更新参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于目标数据库的标识信息,在目标参数配置文件中确定目标数据库对应的登录信息,目标参数配置文件包含加密的登录信息;基于登录信息确定目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;通过目标线程执行数据库语句。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使第一目标数据库在目标管道文件上执行读取外表操作和写入内表操作,以及第二目标数据库在目标管道文件上执行读取内表操作和写入外表操作。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
基于目标数据库的标识信息,确定目标数据库对应的连接对象,基于连接对象,连接目标数据库,目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,标识信息与目标数据库一一对应;
基于数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,控制语句包含数据库语句的控制逻辑,待执行的SQL执行语句列表的执行顺序是基于各控制语句的控制逻辑确定的;
按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句,以使目标数据库基于各SQL执行语句进行处理,得到执行结果集并返回执行结果集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于预设的字符识别规则,在SQL连接语句中进行识别,确定与字符识别规则匹配的字符信息,并确定字符信息为目标数据库的标识信息;基于预设的连接对象和数据库的标识信息的对应关系,确定目标数据库的标识信息对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定目标数据库的标识信息对应的驱动路径,并获取驱动路径包含的目标数据库对应的数据库连接驱动;通过数据库连接驱动创建目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将目标数据库的标识信息和目标数据库对应的连接对象,添加至预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,更新后的对应关系用于在连接目标数据库时,基于更新后的对应关系确定目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于数据库语句包含的各控制语句的控制逻辑,对数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据数据库语句对应的目标参数配置文件中的语句更新参数,对SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取执行结果集中包含的目标更新参数;在目标参数配置文件中,基于目标更新参数对语句更新参数进行更新,得到更新后的语句更新参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于目标数据库的标识信息,在目标参数配置文件中确定目标数据库对应的登录信息,目标参数配置文件包含加密的登录信息;基于登录信息确定目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;通过目标线程执行数据库语句。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使第一目标数据库在目标管道文件上执行读取外表操作和写入内表操作,以及第二目标数据库在目标管道文件上执行读取内表操作和写入外表操作。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
基于目标数据库的标识信息,确定目标数据库对应的连接对象,基于连接对象,连接目标数据库,目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,标识信息与目标数据库一一对应;
基于数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,控制语句包含数据库语句的控制逻辑,待执行的SQL执行语句列表的执行顺序是基于各控制语句的控制逻辑确定的;
按照待执行的SQL执行语句列表的执行顺序,向目标数据库发送待执行的SQL执行语句列表中的各SQL执行语句,以使目标数据库基于各SQL执行语句进行处理,得到执行结果集并返回执行结果集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于预设的字符识别规则,在SQL连接语句中进行识别,确定与字符识别规则匹配的字符信息,并确定字符信息为目标数据库的标识信息;基于预设的连接对象和数据库的标识信息的对应关系,确定目标数据库的标识信息对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定目标数据库的标识信息对应的驱动路径,并获取驱动路径包含的目标数据库对应的数据库连接驱动;通过数据库连接驱动创建目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将目标数据库的标识信息和目标数据库对应的连接对象,添加至预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,更新后的对应关系用于在连接目标数据库时,基于更新后的对应关系确定目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于数据库语句包含的各控制语句的控制逻辑,对数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据数据库语句对应的目标参数配置文件中的语句更新参数,对SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取执行结果集中包含的目标更新参数;在目标参数配置文件中,基于目标更新参数对语句更新参数进行更新,得到更新后的语句更新参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于目标数据库的标识信息,在目标参数配置文件中确定目标数据库对应的登录信息,目标参数配置文件包含加密的登录信息;基于登录信息确定目标数据库对应的连接对象。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在目标数据库的标识信息包含目标线程字符的情况下,创建目标线程;通过目标线程执行数据库语句。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使第一目标数据库在目标管道文件上执行读取外表操作和写入内表操作,以及第二目标数据库在目标管道文件上执行读取内表操作和写入外表操作。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据库语句的执行方法,其特征在于,所述方法包括:
基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,基于所述连接对象,连接所述目标数据库,所述目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,所述标识信息与所述目标数据库一一对应;
基于所述数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,所述控制语句包含所述数据库语句的控制逻辑,所述待执行的SQL执行语句列表的执行顺序是基于各所述控制语句的控制逻辑确定的;
按照所述待执行的SQL执行语句列表的执行顺序,向所述目标数据库发送所述待执行的SQL执行语句列表中的各所述SQL执行语句,以使所述目标数据库基于各所述SQL执行语句进行处理,得到执行结果集并返回所述执行结果集。
2.根据权利要求1所述的方法,其特征在于,所述基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,包括:
基于预设的字符识别规则,在所述SQL连接语句中进行识别,确定与所述字符识别规则匹配的字符信息,并确定所述字符信息为所述目标数据库的标识信息;
基于预设的连接对象和数据库的标识信息的对应关系,确定所述目标数据库的标识信息对应的连接对象。
3.根据权利要求2所述的方法,其特征在于,所述基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,包括:
确定所述目标数据库的标识信息对应的驱动路径,并获取所述驱动路径包含的所述目标数据库对应的数据库连接驱动;
通过所述数据库连接驱动创建所述目标数据库对应的连接对象。
4.根据权利要求3所述的方法,其特征在于,所述通过所述数据库连接驱动创建所述目标数据库对应的连接对象之后,所述方法还包括:
将所述目标数据库的标识信息和所述目标数据库对应的连接对象,添加至所述预设的连接对象和数据库的标识信息的对应关系,得到更新后的对应关系,所述更新后的对应关系用于在连接所述目标数据库时,基于所述更新后的对应关系确定所述目标数据库对应的连接对象。
5.根据权利要求1所述的方法,其特征在于,所述基于所述数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,包括:
基于所述数据库语句包含的各控制语句的控制逻辑,对所述数据库语句包含的多个SQL执行语句的执行顺序以及执行次数进行调整,得到包含多个SQL执行语句的待执行的SQL执行语句列表。
6.根据权利要求1所述的方法,其特征在于,所述按照所述待执行的SQL执行语句列表的执行顺序,向所述目标数据库发送所述待执行的SQL执行语句列表中的各所述SQL执行语句之前,所述方法还包括:
根据所述数据库语句对应的目标参数配置文件中的语句更新参数,对所述SQL执行语句的参数进行更新,得到更新后的SQL执行语句。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述执行结果集中包含的目标更新参数;
在所述目标参数配置文件中,基于所述目标更新参数对所述语句更新参数进行更新,得到更新后的语句更新参数。
8.根据权利要求6所述的方法,其特征在于,所述基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,包括:
基于所述目标数据库的标识信息,在所述目标参数配置文件中确定所述目标数据库对应的登录信息,所述目标参数配置文件包含加密的登录信息;
基于所述登录信息确定所述目标数据库对应的连接对象。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在通过所述SQL连接语句与第一目标数据库连接,且与第二目标数据库连接的情况下,确定目标管道文件,以使所述第一目标数据库在所述目标管道文件上执行读取外表操作和写入内表操作,以及所述第二目标数据库在所述目标管道文件上执行读取内表操作和写入外表操作。
10.一种数据库语句的执行装置,其特征在于,所述装置包括:
数据库连接模块,用于基于目标数据库的标识信息,确定所述目标数据库对应的连接对象,基于所述连接对象,连接所述目标数据库,所述目标数据库的标识信息是基于数据库语句中的SQL连接语句确定的,所述标识信息与所述目标数据库一一对应;
SQL语句确定模块,用于基于所述数据库语句包含的多个控制语句和多个SQL执行语句,得到待执行的SQL执行语句列表,所述控制语句包含所述数据库语句的控制逻辑,所述待执行的SQL执行语句列表的执行顺序是基于各所述控制语句的控制逻辑确定的;
SQL语句执行模块,用于按照所述待执行的SQL执行语句列表的执行顺序,向所述目标数据库发送所述待执行的SQL执行语句列表中的各所述SQL执行语句,以使所述目标数据库基于各所述SQL执行语句进行处理,得到执行结果集并返回所述执行结果集。
CN202311354862.XA 2023-10-18 2023-10-18 数据库语句的执行方法、装置 Pending CN117407411A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311354862.XA CN117407411A (zh) 2023-10-18 2023-10-18 数据库语句的执行方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311354862.XA CN117407411A (zh) 2023-10-18 2023-10-18 数据库语句的执行方法、装置

Publications (1)

Publication Number Publication Date
CN117407411A true CN117407411A (zh) 2024-01-16

Family

ID=89497455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311354862.XA Pending CN117407411A (zh) 2023-10-18 2023-10-18 数据库语句的执行方法、装置

Country Status (1)

Country Link
CN (1) CN117407411A (zh)

Similar Documents

Publication Publication Date Title
US11797558B2 (en) Generating data transformation workflows
CN111177302B (zh) 业务单据处理方法、装置、计算机设备和存储介质
WO2015124042A1 (zh) 分布式文件系统列式存储的元数据更新方法、装置、主机
US8874626B2 (en) Tracking files and directories related to unsuccessful change operations
US10645090B2 (en) Access control for objects having attributes defined against hierarchically organized domains containing fixed number of values
US10585896B2 (en) Managing data in relational database management system
CN115729951B (zh) 数据查询方法、系统、设备及计算机可读存储介质
CN117033424A (zh) 慢sql语句的查询优化方法、装置和计算机设备
US20210303404A1 (en) Systems and methods for database migration
US9201937B2 (en) Rapid provisioning of information for business analytics
CN117407411A (zh) 数据库语句的执行方法、装置
CN115858471A (zh) 业务数据变更记录方法、装置、计算机设备及介质
US10146791B2 (en) Open file rebalance
CN112416966B (zh) 即席查询方法、装置、计算机设备和存储介质
CN110222105B (zh) 数据汇总处理方法及装置
CN114036171B (zh) 应用数据管理方法、装置、计算机设备和存储介质
CN117056028B (zh) 机器人仿真平台搭建方法、装置、计算机设备和存储介质
US11314730B1 (en) Memory-efficient streaming count estimation for multisets
CN115952207B (zh) 一种基于StarRocks数据库的威胁邮件存储方法和系统
CN109947775B (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN116483870A (zh) 数据处理方法、装置、计算机设备和存储介质
CN118193032A (zh) 消除无效依赖库的方法、装置、设备、介质和程序产品
CN117370339A (zh) 报表血缘关系处理方法、装置、计算机设备和存储介质
CN117407002A (zh) 代码转换方法、装置、计算机设备和存储介质
CN117743299A (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