一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种批量SQL的动态解析调度方法及装置与流程

2021-12-15 01:57:00 来源:中国专利 TAG:

一种批量sql的动态解析调度方法及装置
技术领域
1.本公开涉及计算机处理领域,尤其涉及一种批量sql的动态解析调度方法及装置。


背景技术:

2.当前,为了解决业务发展过程中的不同问题,需要引入多种异构数据库。然而,不同的数据库的sql语法即使兼容一个sql标准,但各自的sql方言可能并不相同,sql批处理数据中固化了大量繁杂的业务处理规则及步骤,导致sql批处理数据逻辑复杂,且与数据库系统紧密绑定,难以通用。一旦开发完成后,若遇到数据迁移,需要大量的转换工作,导致系统运维难度大。


技术实现要素:

3.鉴于上述问题,本公开提供一种克服上述问题或者至少部分地解决上述问题的一种批量sql的动态解析调度方法及装置,技术方案如下:
4.一种批量sql的动态解析调度方法,包括:
5.获得使用类sql编辑的待扫描sql批处理数据;
6.确定所述待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则将所述待扫描sql批处理数据确定为待解析sql批处理数据,如果存在,则将所述目标运行参数替换为预设运行值,获得所述待解析sql批处理数据;
7.对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据;
8.将所述待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据;
9.将所述目标sql批处理数据发送至所述目标数据库类型对应的数据库,以使所述数据库执行所述目标sql批处理数据。
10.可选的,所述预设公共处理组件包括预设日志处理组件、预设异常处置组件和预设加载容错组件,所述对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据,包括:
11.对所述待解析sql批处理数据中的目标sql语句依次添加所述预设日志处理组件、所述预设异常处置组件和所述预设加载容错组件,获得待匹配sql批处理数据。
12.可选的,在所述对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据之后,所述方法还包括:
13.对所述待匹配sql批处理数据进行sql语法检查,如果所述待匹配sql批处理数据不存在语法错误,则执行所述将所述待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据的步骤。
14.可选的,所述目标数据库类型包括:oracle数据库、ms sql server数据库以及postgresql数据库中的任一种数据库类型。
15.一种批量sql的动态解析调度装置,包括:待扫描sql批处理数据获得单元、目标运行参数确定单元、待解析sql批处理数据确定单元、待解析sql批处理数据获得单元、待匹配sql批处理数据获得单元、目标sql批处理数据获得单元以及目标sql批处理数据发送单元,
16.所述待扫描sql批处理数据获得单元,用于获得使用类sql编辑的待扫描sql批处理数据;
17.所述目标运行参数确定单元,用于确定所述待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则触发所述待解析sql批处理数据确定单元,如果存在,则触发所述待解析sql批处理数据获得单元;
18.所述待解析sql批处理数据确定单元,用于将所述待扫描sql批处理数据确定为待解析sql批处理数据;
19.所述待解析sql批处理数据获得单元,用于将所述目标运行参数替换为预设运行值,获得所述待解析sql批处理数据;
20.所述待匹配sql批处理数据获得单元,用于对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据;
21.所述目标sql批处理数据获得单元,用于将所述待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据;
22.所述目标sql批处理数据发送单元,用于将所述目标sql批处理数据发送至所述目标数据库类型对应的数据库,以使所述数据库执行所述目标sql批处理数据。
23.可选的,所述预设公共处理组件包括预设日志处理组件、预设异常处置组件和预设加载容错组件,所述待匹配sql批处理数据获得单元,具体用于对所述待解析sql批处理数据中的目标sql语句依次添加所述预设日志处理组件、所述预设异常处置组件和所述预设加载容错组件,获得待匹配sql批处理数据。
24.可选的,所述方法还包括:sql语法检查单元,
25.所述sql语法检查单元,用于在所述待匹配sql批处理数据获得单元对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据之后,对所述待匹配sql批处理数据进行sql语法检查,如果所述待匹配sql批处理数据不存在语法错误,则触发所述目标sql批处理数据获得单元。
26.可选的,所述目标数据库类型包括:oracle数据库、ms sql server数据库以及postgresql数据库中的任一种数据库类型。
27.一种存储介质,其上存储有程序,所述程序被处理器执行时实现如上述任一项所述的批量sql的动态解析调度方法。
28.一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上述任一项所述的批量sql的动态解析调度方法。
29.借由上述技术方案,本公开提供的一种批量sql的动态解析调度方法及装置,获得使用类sql编辑的待扫描sql批处理数据;确定待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则将待扫描sql批处理数据确定为待解析sql批处理数据,如果存在,则将目标运行参数替换为预设运行值,获得待解析sql批处理数据;对待解析sql批处理数据
中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据;将待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据;将目标sql批处理数据发送至目标数据库类型对应的数据库,以使数据库执行目标sql批处理数据。本公开统一了sql批处理数据的公共处理逻辑,能够支持多种数据库,降低了系统运维的难度。
30.上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
31.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
32.图1示出了本公开实施例提供的批量sql的动态解析调度方法的一种实施方式的流程示意图;
33.图2示出了本公开实施例提供的批量sql的动态解析调度方法的另一种实施方式的流程示意图;
34.图3示出了本公开实施例提供的批量sql的动态解析调度装置的结构示意图;
35.图4示出了本公开实施例提供的电子设备的结构示意图。
具体实施方式
36.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
37.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
38.如图1所示,本公开实施例提供的批量sql的动态解析调度方法的一种实施方式的流程示意图,该批量sql的动态解析调度方法可以包括:
39.s100、获得使用类sql编辑的待扫描sql批处理数据。
40.其中,sql是结构化查询语言(structured query language)的简称,它是一种高级的非过程化编程语言,允许用户在高层数据结构上工作,用于数据库查询和程序设计,用于存取数据及查询、更新和管理关系型数据库系统。
41.其中,类sql是指在通用sql标准的基础上,抽象简化的sql,不包括具体的sql方言,即非通用的sql。sql批处理数据为采用类sql编辑的对指定数据进行批量处理的程序语言数据。
42.本公开实施例使用类sal编辑的待扫描sql批处理数据不包括公共日志处理、异常处置、容错处理等公共逻辑,也不含有特定数据库系统的sql方言及易变的系统运行变量。
43.s200、确定待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则执行步骤s300,如果存在,则执行步骤s400。
44.s300、将待扫描sql批处理数据确定为待解析sql批处理数据。
45.s400、将目标运行参数替换为预设运行值,获得待解析sql批处理数据。
46.可以理解的是,在待扫描sql批处理数据中可能包括sql语句中的运行命令参数。本公开实施例可以将运行命令参数确定为目标运行参数,并将目标运行参数替换为具体的预设运行值。
47.s500、对待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据。
48.可选的,预设公共处理组件包括预设日志处理组件、预设异常处置组件和预设加载容错组件。本公开实施例可以对待解析sql批处理数据中的目标sql语句依次添加预设日志处理组件、预设异常处置组件和预设加载容错组件,获得待匹配sql批处理数据。
49.本公开实施例可以先通过对目标sql语句中添加预设日志处理组件,以增加通用日志处理逻辑,再在目标sql语句中添加预设异常处置组件,以增加通用的异常处置逻辑,最后在目标sql语句中添加预设加载容错组件,以增加通用的容错处理逻辑,最终获得待匹配sql批处理数据。本公开实施例通过抽象出sql批处理数据中日志处理、异常处置、容错处理等公共处理逻辑,在批量sql的动态解析调度的过程中,动态加载,便于公共处理逻辑的维护,也简化了sql批处理数据的开发难度,提高了sql批处理数据开发的效率。
50.可选的,基于图1所示方法,如图2所示,本公开实施例提供的批量sql的动态解析调度方法的另一种实施方式的流程示意图,在步骤s500之后,该批量sql的动态解析调度方法还可以包括:
51.s01、对待匹配sql批处理数据进行sql语法检查,如果待匹配sql批处理数据不存在语法错误,则执行步骤s600。
52.由于sql批处理数据中若存在sql语法错误,可能会造成执行出错,因此本公开实施例可以对获得的待匹配sql批处理数据进行sql语法检查。如果待匹配sql批处理数据存在语法错误,则退出本次批量sql的动态解析调度。
53.s600、将待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据。
54.可选的,目标数据库类型可以包括:oracle数据库、ms sql server数据库以及postgresql数据库中的任一种数据库类型。可以理解的是,目标数据库类型还可以包括其他异构数据库。数据库是按照数据结构来组织、存储和管理数据的仓库。它是长期存储在计算机内有组织的、可共享的数据集合,按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并为各种用户共享。
55.具体的,本公开实施例可以对待匹配sql批处理数据中的sql语句进行逐条扫描,将扫描到的sql语句逐条翻译为与目标数据库类型对应的sql方言,从而获得目标sql批处理数据。本公开实施例在批量sql的动态解析调度的过程中,动态解析sql批处理数据,可以兼容多种不同数据库和数据库环境。
56.s700、将目标sql批处理数据发送至目标数据库类型对应的数据库,以使数据库执行目标sql批处理数据。
57.本公开实施例提供的批量sql的动态解析调度方法能够方便的随着数据迁移而迁移,保证了核心业务处理逻辑的稳定,也统一了sql批处理数据的开发、调度及运维方式。本公开实施例还简化了sql批处理数据的开发,将日志处理、异常处置和容错数据等公共处理逻辑抽象为公共组件,在sql动态解析及执行过程中,按照统一的规则添加,统一了sql批处理数据处理程序公共处理逻辑的风格,简化了sql开发、测试工作,提升了整体工作效率。根据工作的需要,当日志处理、异常处置和容错处理等公共逻辑发生改变时,不需要逐一更改sql批处理数据,简化了系统运维难度。
58.本公开提供的一种批量sql的动态解析调度方法可以应用在sql适配器中。本公开实施例可以通过sql适配器,动态解析sql批处理数据,并加载日志处理、异常处置和容错处理等公共组件,扩展sql批处理数据功能,在sql批处理数据的合适位置,自动增加不同的日志处理、异常处置和容错处理等公共处理逻辑,完成sql批处理数据的初步解析。最后,由sql适配器将初步解析的sql批处理数据翻译为合适的sql方言,最后再由调度程序将动态执行解析后sql批处理数据,发送至目标数据库执行。
59.本公开提供的一种批量sql的动态解析调度方法,获得使用类sql编辑的待扫描sql批处理数据;确定待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则将待扫描sql批处理数据确定为待解析sql批处理数据,如果存在,则将目标运行参数替换为预设运行值,获得待解析sql批处理数据;对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据;将待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据;将目标sql批处理数据发送至目标数据库类型对应的数据库,以使数据库执行目标sql批处理数据。本公开统一了sql批处理数据的公共处理逻辑,能够支持多种数据库,降低了系统运维的难度。
60.与上述方法实施例相对应,本公开实施例还提供一种批量sql的动态解析调度装置,其结构如图3所示,可以包括:待扫描sql批处理数据获得单元100、目标运行参数确定单元200、待解析sql批处理数据确定单元300、待解析sql批处理数据获得单元400、待匹配sql批处理数据获得单元500、目标sql批处理数据获得单元600以及目标sql批处理数据发送单元700。
61.待扫描sql批处理数据获得单元100,用于获得使用类sql编辑的待扫描sql批处理数据。
62.目标运行参数确定单元200,用于确定待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则触发待解析sql批处理数据确定单元300,如果存在,则触发待解析sql批处理数据获得单元400。
63.待解析sql批处理数据确定单元300,用于将待扫描sql批处理数据确定为待解析sql批处理数据。
64.待解析sql批处理数据获得单元400,用于将目标运行参数替换为预设运行值,获得待解析sql批处理数据。
65.待匹配sql批处理数据获得单元500,用于对待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据。
66.目标sql批处理数据获得单元600,用于将待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据。
67.目标sql批处理数据发送单元700,用于将目标sql批处理数据发送至目标数据库类型对应的数据库,以使数据库执行目标sql批处理数据。
68.可选的,预设公共处理组件包括预设日志处理组件、预设异常处置组件和预设加载容错组件。待匹配sql批处理数据获得单元500,具体用于对待解析sql批处理数据中的目标sql语句依次添加预设日志处理组件、预设异常处置组件和预设加载容错组件,获得待匹配sql批处理数据。
69.可选的,该批量sql的动态解析调度装置还可以包括:sql语法检查单元。
70.sql语法检查单元,用于在待匹配sql批处理数据获得单元500对待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据之后,对待匹配sql批处理数据进行sql语法检查,如果待匹配sql批处理数据不存在语法错误,则触发目标sql批处理数据获得单元600。
71.可选的,目标数据库类型包括:oracle数据库、ms sql server数据库以及postgresql数据库中的任一种数据库类型。
72.本公开提供的一种批量sql的动态解析调度装置,获得使用类sql编辑的待扫描sql批处理数据;确定待扫描sql批处理数据中是否存在目标运行参数,如果不存在,则将待扫描sql批处理数据确定为待解析sql批处理数据,如果存在,则将目标运行参数替换为预设运行值,获得待解析sql批处理数据;对所述待解析sql批处理数据中的目标sql语句添加预设公共处理组件,获得待匹配sql批处理数据;将待匹配sql批处理数据翻译为与目标数据库类型对应的目标sql批处理数据;将目标sql批处理数据发送至目标数据库类型对应的数据库,以使数据库执行目标sql批处理数据。本公开统一了sql批处理数据的公共处理逻辑,能够支持多种数据库,降低了系统运维的难度。
73.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
74.所述批量sql的动态解析调度装置包括处理器和存储器,上述待扫描sql批处理数据获得单元100、目标运行参数确定单元200、待解析sql批处理数据确定单元300、待解析sql批处理数据获得单元400、待匹配sql批处理数据获得单元500、目标sql批处理数据获得单元600以及目标sql批处理数据发送单元700等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
75.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来统一了sql批处理数据的公共处理逻辑,能够支持多种数据库,降低了系统运维的难度。
76.本公开实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述批量sql的动态解析调度方法。
77.本公开实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述批量sql的动态解析调度方法。
78.如图4所示,本公开实施例提供了一种电子设备1000,电子设备1000包括至少一个处理器1001、以及与处理器1001连接的至少一个存储器1002、总线1003;其中,处理器1001、
存储器1002通过总线1003完成相互间的通信;处理器1001用于调用存储器1002中的程序指令,以执行上述的批量sql的动态解析调度方法。本文中的电子设备可以是服务器、pc、pad、手机等。
79.本公开还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有批量sql的动态解析调度方法步骤的程序。
80.本公开是参照根据本公开实施例的方法、装置、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
81.在一个典型的配置中,电子设备包括一个或多个处理器(cpu)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
82.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
83.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
84.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
85.本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
86.以上仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献