CN112214263A - 数据库脚本的调度方法和装置以及存储介质 - Google Patents
数据库脚本的调度方法和装置以及存储介质 Download PDFInfo
- Publication number
- CN112214263A CN112214263A CN201910627469.0A CN201910627469A CN112214263A CN 112214263 A CN112214263 A CN 112214263A CN 201910627469 A CN201910627469 A CN 201910627469A CN 112214263 A CN112214263 A CN 112214263A
- Authority
- CN
- China
- Prior art keywords
- database
- script
- type
- scripts
- determining
- 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
- 238000013515 script Methods 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库脚本的调度方法和装置以及存储介质,涉及数据库领域。数据库脚本的调度方法包括:解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,对象操作类型包括引用类型和非引用类型;根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系;根据引用关系确定一个或多个数据库脚本的调度策略,以便按照调度策略执行一个或多个数据库脚本。从而可以使得数据库脚本及时、有效、准确地运行,提高了调度的便捷性以及数据库任务的运行效率,降低了运维成本。
Description
技术领域
本发明涉及数据库领域,特别涉及一种数据库脚本的调度方法和装置以及存储介质。
背景技术
随着数据库中的任务量的不断增长,数据平台的任务调度管理变得十分复杂。当数据源延迟或者发生异常时,后续的应用故障处理消耗较多的时间和人力。从而,导致目前数据库任务的运行效率较低。
发明内容
本发明实施例所要解决的一个技术问题是:如何提高数据库任务的运行效率。
根据本发明一些实施例的第一个方面,提供一种数据库脚本的调度方法,包括:解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,对象操作类型包括引用类型和非引用类型;根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系;根据引用关系确定一个或多个数据库脚本的调度策略,以便按照调度策略执行一个或多个数据库脚本。
在一些实施例中,根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系包括:将涉及同一数据库对象的数据库脚本中,同一数据库对象的对象操作类型为引用类型的数据库脚本确定为引用关系中的引用对象;将涉及同一数据库对象的数据库脚本中,同一数据库对象的对象操作类型为非引用类型的数据库脚本确定为引用关系中的被引用对象,或者,将涉及同一数据库对象的数据源确定为引用关系中的被引用对象。
在一些实施例中,根据引用关系确定一个或多个数据库脚本的调度策略包括:在引用关系中的被引用对象满足预设条件的情况下,执行引用关系中的引用对象。
在一些实施例中,在被引用对象为数据库脚本的情况下,预设条件为被引用对象被执行。
在一些实施例中,在被引用对象为数据源的情况下,预设条件为数据源完成更新。
在一些实施例中,根据引用关系确定一个或多个数据库脚本的调度策略包括:在数据源或者数据库脚本发生异常的情况下,将发生异常的数据源或者数据库脚本作为被引用对象的引用关系中的引用对象确定为受影响脚本;暂停执行或修改受影响脚本。
在一些实施例中,解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型包括:将一个或多个数据库脚本中的每一个的文本内容分割为一个或多个字符串序列;根据从每个字符串序列中检测到的关键字,确定字符串序列的语句类型;根据每种语句类型对应的数据库语句格式,获取每个字符串序列涉及的数据库对象;根据每个字符串序列的语句类型确定相应的对象操作类型,作为每个数据库对象对应的对象操作类型。
在一些实施例中,根据每种语句类型对应的数据库语句格式,获取每个字符串序列涉及的数据库对象包括:根据每种语句类型对应的数据库语句格式,从每个字符串序列中提取对象字符串;从获取的数据字典中查找对象字符串对应的物理表、作为每个字符串序列涉及的数据库对象。
在一些实施例中,调度方法还包括:解析数据字典语句中的文本内容,获得每个语句涉及的引用对象和被引用对象,其中,引用对象和被引用对象为数据库对象;建立引用对象和被引用对象之间的对应关系。
根据本发明一些实施例的第二个方面,提供一种数据库脚本的调度装置,包括:解析模块,被配置为解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,对象操作类型包括引用类型和非引用类型;引用关系确定模块,被配置为根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系;调度策略确定模块,被配置为根据引用关系确定一个或多个数据库脚本的调度策略,以便按照调度策略执行一个或多个数据库脚本。
根据本发明一些实施例的第三个方面,提供一种数据库脚本的调度装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种数据库脚本的调度方法。
根据本发明一些实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意一种数据库脚本的调度方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例可以通过对数据库脚本进行文本解析来快速、准确地确定每个数据库脚本所依赖的对象,从而可以使得数据库脚本及时、有效、准确地运行,提高了调度的便捷性以及数据库任务的运行效率,降低了运维成本。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明一些实施例的数据库脚本的调度方法的流程示意图。
图2为根据本发明一些实施例的数据库脚本解析方法的流程示意图。
图3为根据本发明一些实施例的引用关系确定方法的流程示意图。
图4为根据本发明一些实施例的数据库对象确定方法的流程示意图。
图5为根据本发明一些实施例的数据库脚本的调度装置的结构示意图。
图6为根据本发明另一些实施例的数据库脚本的调度装置的结构示意图。
图7为根据本发明又一些实施例的数据库脚本的调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为根据本发明一些实施例的数据库脚本的调度方法的流程示意图。如图1所示,该实施例的数据库脚本的调度方法包括步骤S102~S106。
在步骤S102中,解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,对象操作类型包括引用类型和非引用类型。
在一些实施例中,可以通过文本挖掘的方式对数据库脚本中的文本内容进行解析。
数据库对象例如可以包括数据表、索引、视图、触发器、用户、函数等等。通过解析数据库脚本中的语句对数据库对象的具体操作,可以确定该语句是引用了数据库脚本,还是进行了创建等非引用操作。
在一些实施例中,可以通过检测数据库脚本中的语句的关键字来确定对象操作类型。关键字例如可以包括declare、create table、create view、create index、createsynonym、drop table、alter、update、insert、merge、exec、select等等,而create table、create view、create index、create synonym等关键字表示语句类型为创建,update、insert等关键字表示语句类型为修改,select表示语句类型为选择。在一些实施例中,可以将选择类型确定为引用类型,将其他类型确定为非引用类型。
在步骤S104中,根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系。
引用关系可以是某个数据库脚本对其他数据库脚本或者数据源的引用关系。
在一些实施例中,引用关系包括该关系所针对的数据库对象、引用对象和被引用对象。从而,引用关系表示引用对象的执行与否需要依赖于被引用对象中的数据库对象的状态,该状态可以是创建、更新、修改、故障等等。
例如数据库脚本S1中创建了数据库对象O1,数据库脚本S2中创建了数据库对象O2、并且引用数据库对象O1,数据库脚本S3引用数据库对象O1和O2。此时,针对O1的引用关系记为[被引用对象:S1;引用对象:S2,S3],或者记为[被引用对象:S1;引用对象:S2]以及[被引用对象:S1;引用对象:S3];针对O2的引用关系记为[被引用对象:S2;引用对象:S3]。
在步骤S106中,根据引用关系确定一个或多个数据库脚本的调度策略,以便按照调度策略执行一个或多个数据库脚本。
通过上述实施例的方法,可以通过对数据库脚本进行文本解析来快速、准确地确定每个数据库脚本所依赖的对象,从而可以使得数据库脚本及时、有效、准确地运行,提高了调度的便捷性以及数据库任务的运行效率,降低了运维成本。
下面参考图2描述本发明解析数据库脚本的方法的实施例。
图2为根据本发明一些实施例的数据库脚本解析方法的流程示意图。如图2所示,该实施例的数据库脚本解析方法包括步骤S202~S208。
在步骤S202中,将一个或多个数据库脚本中的每一个的文本内容分割为一个或多个字符串序列。
在一些实施例中,可以通过预设的分隔符将文本拆分成为独立的SQL语句,预设的分隔符例如可以是分号。进而,可以通过预设的字符或者预设的正则表达式提取SQL语句中的字符串序列。
在步骤S204中,根据从每个字符串序列中检测到的关键字,确定字符串序列的语句类型。
在步骤S206中,根据每种语句类型对应的数据库语句格式,获取每个字符串序列涉及的数据库对象。
在一些实施例中,可以根据语句类型对应的数据库语句格式中的数据库对象标识词来定位数据库对象。例如,选择类型的语句格式为“select…from…where…”,则“from”和“where”可以作为数据库对象标识词,二者之间的内容为数据库对象,并且当数据库对象有多个时,可以通过逗号来分割不同的数据库对象;又例如,创建表类型的语句格式为“create…as…”,则“create”和“as”可以作为数据库对象标识词,二者之间的内容为数据库对象。数据库对象标识词还可以包括from、union、minus、group、order等等,这里不再赘述。
在步骤S208中,根据每个字符串序列的语句类型确定相应的对象操作类型,作为每个数据库对象对应的对象操作类型。
设采用分号对某个数据库脚本的文本内容进行分割,获得如下SQL语句:
create table mg_qd_49672_rb_rb tablespace TS_APL_TMP
as
select a.*,b.yd_serv_id
from mg_qd_49672_rb_dd a,bss.rb_kd_dd b
where a.serv_id=b.serv_id(+);
采用关键词,将该SQL语句分割为两个字符串序列:
1)create table mg_qd_49672_rb_rb tablespace TS_APL_TMP as;
2)select a.*,b.yd_serv_id from mg_qd_49672_rb_dd a,bss.rb_kd_dd bwhere a.serv_id=b.serv_id(+)。
通过对每一个字符串序列进行进一步解析,可以获得如表1所示的解析结果。在表1中,任务ID表示被解析的SQL语句的标识。
表1
下面参考图3描述本发明引用关系确定方法的实施例。
图3为根据本发明一些实施例的引用关系确定方法的流程示意图。如图3所示,该实施例的引用关系确定方法包括步骤S302~S304。
在步骤S302中,将涉及同一数据库对象的数据库脚本中,同一数据库对象的对象操作类型为引用类型的数据库脚本确定为引用关系中的引用对象。
在步骤S304中,将涉及上述同一数据库对象的数据库脚本中,同一数据库对象的对象操作类型为非引用类型的数据库脚本确定为引用关系中的被引用对象,或者,将涉及同一数据库对象的数据源确定为引用关系中的被引用对象。
根据需要,该实施例的引用关系确定方法还可以包括步骤S306。
在步骤S306中,在引用关系中的被引用对象满足预设条件的情况下,执行引用关系中的引用对象。
在一些实施例中,在被引用对象为数据库脚本的情况下,预设条件为被引用对象被执行。即,被引用对象执行完毕后、再执行引用对象,以便引用对象可以成功执行。
在一些实施例中,在被引用对象为数据源的情况下,预设条件为数据源完成更新。从而,引用对象的执行结果更准确。
根据需要,该实施例的引用关系确定方法还可以包括步骤S308~S310。
在步骤S308中,在数据源或者数据库脚本发生异常的情况下,将发生异常的数据源或者数据库脚本作为被引用对象的引用关系中的引用对象确定为受影响脚本。
在步骤S310中,暂停执行或修改受影响脚本。
从而,在数据源或者数据库脚本发生异常时,可以快速地定位到受影响脚本,从而可以快速地对受影响脚本进行修复、或者暂缓执行受影响脚本,提高了维护效率和故障发生率。
在一些实施例中,数据库对象为视图或者别名,而视图或者别名关联了真实的物理表。本发明的一些实施例可以准确地将解析出的字符串定位到真实的物理表上。下面参考图4描述本发明数据库对象确定方法的实施例。
图4为根据本发明一些实施例的数据库对象确定方法的流程示意图。如图4所示,该实施例的数据库对象确定方法包括步骤S402~S404。
在步骤S402中,根据每种语句类型对应的数据库语句格式,从每个字符串序列中提取对象字符串。
在步骤S404中,从预设的数据字典中查找对象字符串对应的物理表、作为每个字符串序列涉及的数据库对象。
例如,当表1中的数据库对象“bss.rb_kd_dd”并非是物理表、而是一个别名时,可以通过查找数据字典来确定真实的物理表名称。通过结合数据字典进行处理后的解析结果可以如表2所示。
表2
数据字典中的对应关系可以是手动建立的,也可以是采用文本解析方法自动建立的。在一些实施例中,自动建立对应关系的方法可以包括:解析数据字典语句中的文本内容,获得每个语句涉及的引用对象和被引用对象,其中,引用对象和被引用对象为数据库对象,例如,引用对象可以为视图或别名、被引用对象可以为物理表;建立引用对象和被引用对象之间的对应关系。
设数据字典中的一个示例性的语句为:
create or replace view bss.yb_kd_dz_ext as select“SERV_ID”,“SERV_ADDR_ID”,“GRADE”from BSS.YB_KD_DZ_EXT_201811;
通过确定关键字“create”、“replace”、“from”,可以定位到引用对象“bss.yb_kd_dz_ext”和被引用对象“BSS.YB_KD_DZ_EXT_201811”。
从而,可以预先建立别名、视图与真实的物理表之间的对应关系,从而便于监控各个数据库脚本所涉及的真实数据源的更新、故障等情况。
下面参考图5描述本发明数据库脚本的调度装置的实施例。
图5为根据本发明一些实施例的数据库脚本的调度装置的结构示意图。如图5所示,该实施例的调度装置50包括:解析模块510,被配置为解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,对象操作类型包括引用类型和非引用类型;引用关系确定模块520,被配置为根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系;调度策略确定模块530,被配置为根据引用关系确定一个或多个数据库脚本的调度策略,以便按照调度策略执行一个或多个数据库脚本。
在一些实施例中,引用关系确定模块520进一步被配置为将涉及同一数据库对象的数据库脚本中,同一数据库对象的对象操作类型为引用类型的数据库脚本确定为引用关系中的引用对象;将涉及同一数据库对象的数据库脚本中,同一数据库对象的对象操作类型为非引用类型的数据库脚本确定为引用关系中的被引用对象,或者,将涉及同一数据库对象的数据源确定为引用关系中的被引用对象。
在一些实施例中,调度策略确定模块530进一步被配置为在引用关系中的被引用对象满足预设条件的情况下,执行引用关系中的引用对象。
在一些实施例中,在被引用对象为数据库脚本的情况下,预设条件为被引用对象被执行。
在一些实施例中,在被引用对象为数据源的情况下,预设条件为数据源完成更新。
在一些实施例中,调度策略确定模块530进一步被配置为在数据源或者数据库脚本发生异常的情况下,将发生异常的数据源或者数据库脚本作为被引用对象的引用关系中的引用对象确定为受影响脚本;暂停执行或修改受影响脚本。
在一些实施例中,解析模块510进一步被配置为将一个或多个数据库脚本中的每一个的文本内容分割为一个或多个字符串序列;根据从每个字符串序列中检测到的关键字,确定字符串序列的语句类型;根据每种语句类型对应的数据库语句格式,获取每个字符串序列涉及的数据库对象;根据每个字符串序列的语句类型确定相应的对象操作类型,作为每个数据库对象对应的对象操作类型。
在一些实施例中,解析模块510进一步被配置为根据每种语句类型对应的数据库语句格式,从每个字符串序列中提取对象字符串;从获取的数据字典中查找对象字符串对应的物理表、作为每个字符串序列涉及的数据库对象。
在一些实施例中,调度装置50还包括:对应关系建立模块540,被配置为解析数据字典语句中的文本内容,获得每个语句涉及的引用对象和被引用对象,其中,引用对象和被引用对象为数据库对象;建立引用对象和被引用对象之间的对应关系。
图6为根据本发明另一些实施例的数据库脚本的调度装置的结构示意图。如图6所示,该实施例的数据库脚本的调度装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的数据库脚本的调度方法。
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图7为根据本发明又一些实施例的数据库脚本的调度装置的结构示意图。如图7所示,该实施例的数据库脚本的调度装置70包括:存储器710以及处理器720,还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种数据库脚本的调度方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据库脚本的调度方法,包括:
解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,所述对象操作类型包括引用类型和非引用类型;
根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系;
根据所述引用关系确定所述一个或多个数据库脚本的调度策略,以便按照所述调度策略执行所述一个或多个数据库脚本。
2.根据权利要求1所述的调度方法,其中,所述根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系包括:
将涉及同一数据库对象的数据库脚本中,所述同一数据库对象的对象操作类型为引用类型的数据库脚本确定为引用关系中的引用对象;
将涉及所述同一数据库对象的数据库脚本中,所述同一数据库对象的对象操作类型为非引用类型的数据库脚本确定为所述引用关系中的被引用对象,或者,将涉及所述同一数据库对象的数据源确定为所述引用关系中的被引用对象。
3.根据权利要求2所述的调度方法,其中,所述根据所述引用关系确定所述一个或多个数据库脚本的调度策略包括:
在引用关系中的被引用对象满足预设条件的情况下,执行所述引用关系中的引用对象。
4.根据权利要求3所述的调度方法,其中,在被引用对象为数据库脚本的情况下,所述预设条件为被引用对象被执行。
5.根据权利要求3所述的调度方法,其中,在被引用对象为数据源的情况下,所述预设条件为数据源完成更新。
6.根据权利要求2所述的调度方法,其中,所述根据所述引用关系确定所述一个或多个数据库脚本的调度策略包括:
在数据源或者数据库脚本发生异常的情况下,将发生异常的数据源或者数据库脚本作为被引用对象的引用关系中的引用对象确定为受影响脚本;
暂停执行或修改所述受影响脚本。
7.根据权利要求1~6中任一项所述的调度方法,其中,所述解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型包括:
将一个或多个数据库脚本中的每一个的文本内容分割为一个或多个字符串序列;
根据从每个字符串序列中检测到的关键字,确定字符串序列的语句类型;
根据每种语句类型对应的数据库语句格式,获取每个字符串序列涉及的数据库对象;
根据每个字符串序列的语句类型确定相应的对象操作类型,作为每个数据库对象对应的对象操作类型。
8.根据权利要求7所述的调度方法,其中,所述根据每种语句类型对应的数据库语句格式,获取每个字符串序列涉及的数据库对象包括:
根据每种语句类型对应的数据库语句格式,从每个字符串序列中提取对象字符串;
从获取的数据字典中查找对象字符串对应的物理表、作为每个字符串序列涉及的数据库对象。
9.根据权利要求8所述的调度方法,还包括:
解析数据字典语句中的文本内容,获得每个语句涉及的引用对象和被引用对象,其中,所述引用对象和被引用对象为数据库对象;
建立引用对象和被引用对象之间的对应关系。
10.一种数据库脚本的调度装置,包括:
解析模块,被配置为解析一个或多个数据库脚本中的每一个的文本内容,获得每个数据库脚本涉及的数据库对象和相应的对象操作类型,其中,所述对象操作类型包括引用类型和非引用类型;
引用关系确定模块,被配置为根据每个数据库脚本涉及的数据库对象和对象操作类型,确定每个数据库脚本涉及的引用关系;
调度策略确定模块,被配置为根据所述引用关系确定所述一个或多个数据库脚本的调度策略,以便按照所述调度策略执行所述一个或多个数据库脚本。
11.一种数据库脚本的调度装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1~9中任一项所述的数据库脚本的调度方法。
12.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~9中任一项所述的数据库脚本的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910627469.0A CN112214263A (zh) | 2019-07-12 | 2019-07-12 | 数据库脚本的调度方法和装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910627469.0A CN112214263A (zh) | 2019-07-12 | 2019-07-12 | 数据库脚本的调度方法和装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214263A true CN112214263A (zh) | 2021-01-12 |
Family
ID=74048681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910627469.0A Pending CN112214263A (zh) | 2019-07-12 | 2019-07-12 | 数据库脚本的调度方法和装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214263A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105324769A (zh) * | 2013-07-09 | 2016-02-10 | 甲骨文国际公司 | 用于产生用于自动数据库迁移的脚本集的解决方案 |
CN106168910A (zh) * | 2015-11-16 | 2016-11-30 | 华扬联众数字技术股份有限公司 | 程序调度和执行的方法、系统以及调度器和执行器 |
CN107885501A (zh) * | 2017-11-03 | 2018-04-06 | 武汉斗鱼网络科技有限公司 | 获取Android中组件相互引用关系的方法及装置 |
CN108052618A (zh) * | 2017-12-15 | 2018-05-18 | 北京搜狐新媒体信息技术有限公司 | 数据管理方法及装置 |
-
2019
- 2019-07-12 CN CN201910627469.0A patent/CN112214263A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105324769A (zh) * | 2013-07-09 | 2016-02-10 | 甲骨文国际公司 | 用于产生用于自动数据库迁移的脚本集的解决方案 |
CN106168910A (zh) * | 2015-11-16 | 2016-11-30 | 华扬联众数字技术股份有限公司 | 程序调度和执行的方法、系统以及调度器和执行器 |
CN107885501A (zh) * | 2017-11-03 | 2018-04-06 | 武汉斗鱼网络科技有限公司 | 获取Android中组件相互引用关系的方法及装置 |
CN108052618A (zh) * | 2017-12-15 | 2018-05-18 | 北京搜狐新媒体信息技术有限公司 | 数据管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10684943B2 (en) | Generating executable test automation code automatically according to a test case | |
CN106919612B (zh) | 一种上线结构化查询语言脚本的处理方法及装置 | |
CN106843840B (zh) | 一种基于相似度分析的源代码版本演化注释复用方法 | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN103092761A (zh) | 基于差异信息文件识别和检查修改代码块的方法及装置 | |
WO2017041578A1 (zh) | 一种获取数据库变更信息的方法和装置 | |
CN112015722A (zh) | 数据库管理方法、数据血缘分析方法以及相关装置 | |
CN110727803A (zh) | 文本事件抽取方法及装置 | |
CN109522005A (zh) | 跨平台图形化程序设计方法 | |
CN110837356A (zh) | 一种数据处理方法和装置 | |
CN111309726B (zh) | 一种有向图的生成方法、生成装置及可读存储介质 | |
JP5188421B2 (ja) | ソースコード解析方法およびソースコード解析支援システム | |
CN112214263A (zh) | 数据库脚本的调度方法和装置以及存储介质 | |
CN116089985A (zh) | 一种分布式日志的加密存储方法、装置、设备及介质 | |
US11042257B1 (en) | Translating application resources and inspecting the functionality of the resource translations | |
US8819645B2 (en) | Application analysis device | |
JP2016057715A (ja) | 図形式プログラム解析装置 | |
CN109829010A (zh) | 一种词条修改方法和词条修改装置 | |
JP5569438B2 (ja) | あいまい記述自動検出装置及びその方法 | |
CN111858963A (zh) | 网页客服知识抽取方法及装置 | |
US20120144294A1 (en) | Assisting document creation | |
CN106055625B (zh) | 一种执行业务的方法及装置 | |
CN116303370B (zh) | 一种脚本血缘解析方法、装置、存储介质、设备及产品 | |
CN113901094B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114706878A (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 |