掌桥专利:专业的专利平台
掌桥专利
首页

一种数据装载作业的生成方法

文献发布时间:2023-06-19 10:32:14


一种数据装载作业的生成方法

技术领域

本申请涉及数据库技术领域,特别是涉及一种数据装载作业的生成方法。

背景技术

主机(MainFrame)是IBM计算机中的最顶级产品,由于其高安全性和高可用性一直被广泛用于金融、证券和保险等行业。DB2是美国IBM公司开发的一套关系型数据库管理系统。数据库是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。主机DB2数据库是许多银行的核心数据库系统,日常运维时会有很多数据备份出来。这些备份数据,可以在生产系统的DB2数据库出问题需要恢复数据时,用来帮助恢复生产。生产出事故通常是小概率事件,而在更多的时候,这些数据可以用来在开发和测试以及灾备系统的DB2数据库上进行数据装载,以便满足各种使用需求。

作业是要求计算机完成的一个工作单元。主机DB2装载数据一般用数据装载作业执行。主机DB2数据库的数据装载作业,可以在主机上执行,一般用来把磁盘上的数据恢复到数据库中的目的。而数据装载作业的生成是其执行的前提。该数据装载作业的生成,人工情况下,一般是通过查看磁盘上的数据集文件名称,手工编辑或修改参数和命令到作业控制语言(JCL)文本中。少量几个的数据装载作业一般通过手工编辑产生,但当主机DB2数据库的数据集文件的数量比较庞大(可以达到万级、十万级别)时,要把如此多的文件信息手工编辑到数据装载作业中,需要大量的人工编辑,从实际工作效果看,一个人需要花费数天的时间,存在效率低、易出错的问题。

发明内容

基于上述问题,本申请提供了数据装载作业的生成方法,以自动化的方式生成数据装载作业,提升数据装载作业的生成效率,降低失误率。

本申请实施例公开了如下技术方案:

第一方面,本申请提供一种数据装载作业的生成方法,包括:

获得作业参数;所述作业参数包括:源数据集文件的指示性信息、目标数据库的标识信息和作业输出地址;

依据所述标识信息访问所述目标数据库并依据所述指示性信息扫描出源数据集文件列表;

对所述目标数据库和所述源数据集文件进行分析,当确定所述目标数据库中包含与所述源数据集文件匹配的数据表时,利用作业模板生成数据装载作业,将所述数据装载作业输出至所述作业输出地址。

可选地,所述指示性信息包括:范围指示性信息和日期指示性信息。

可选地,以上方法还包括:当确定所述目标数据库中不包含与所述源数据集文件匹配的数据表时,输出风险告警信息并输出所述源数据集文件的列表。

可选地,当确定所述目标数据库中包含与所述源数据集文件匹配的数据表时,所述方法还包括:

生成或获取作业运行的必要参数;

所述利用作业模板生成数据装载作业,包括:

将所述必要参数传输给所述作业模板所在的子程序,通过所述子程序将所述必要参数作为变量加入到所述作业模板中所需的位置。

可选地,所述作业参数还包括:决策信息;

所述利用作业模板生成数据装载作业包括:当确定所述目标数据库中包含与所述源数据集文件匹配的数据表,且所述决策信息指示需要生成数据装载作业时,利用所述作业模板生成数据装载作业。

可选地,所述对所述目标数据库和所述源数据集文件进行分析,包括:

确定关键检测指标;

比对所述源数据集文件的关键检测指标和所述目标数据库中数据表的关键检测指标的一致性,当所述源数据集文件的关键检测指标和所述目标数据库中数据表的关键检测指标匹配时,确定所述目标数据库中包含与所述源数据集文件匹配的数据表。

可选地,所述关键检测指标包括以下至少一种:

表名称、分区信息、表结构、列信息或列长度;所述分区信息包括是否分区以及分区数量。

可选地,以上方法还包括:

增加或修改作业模板。

可选地,以上方法还包括:

从作业模板集合中选择出所述作业模板。

可选地,所述作业模板集合包括装数模板、建索引模板和统计模板。

相较于现有技术,本申请具有以下有益效果:

本申请提供的数据装载作业的生成方法,包括:获得作业参数;作业参数包括:源数据集文件的指示性信息、目标数据库的标识信息和作业输出地址;依据标识信息访问目标数据库并依据指示性信息扫描出源数据集文件列表;对目标数据库和源数据集文件进行分析,当确定目标数据库中包含与源数据集文件匹配的数据表时,利用作业模板生成数据装载作业,将数据装载作业输出至作业输出地址。该方法能够以自动化的方式快速生成大量质量高、稳定性好的数据装载作业,提升了数据装载作业的生成效率,达到分钟级的生成速度,降低了失误率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种数据装载作业的生成方法的流程图。

具体实施方式

正如前文描述,目前的生成数据装载作业的操作通常由人力实现。现有技术是通过主机命令列表查看磁盘上的数据文件,手工编辑或修改装载作业文本来实现,如关键字查找,替换等。手工编辑的成本高、效率低、稳定性差、易出错等类似问题。以50000个数据文件为例,如果人工来查阅和编辑,单个数据文件的查找、复制和粘贴、编辑到装载作业中约需3秒,重复操作50000个约需要41个小时,大概5个工作日时间花费,也耗费了5个人工。从实际工作看,大量的重复而单调性的手工编辑,很容易让人疲惫,出现查找、复制粘贴等操作的人为失误,相比之下,计算机程序更适合做此类工作。

基于此问题,本申请中提供了一种数据装载作业的生成方法,以程序化、规范化的方法,快速生成主机DB2数据库数据装载作业。运行一般在分钟级,时间短。由于作业模板的存在,本申请中数据装载作业的输出质量高,稳定性好。解决作业生成效率低易出错的问题。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,该图为本申请实施例提供的一种数据装载作业的生成方法的流程图。如图1所示,数据装载作业的生成方法包括:

S101:获得作业参数。

在本申请实施例中,作业可以理解为命令与参数的结合。本步骤获得的作业参数包括:源数据集文件的指示性信息、目标数据库的标识信息和作业输出地址。

在本申请实施例中,为了生成数据装载作业,一个关键的步骤是对目标数据库和源数据集文件进行比对分析。比对分析的两部分中,一个是目标数据库(即目标DB2数据库),另一个是源数据集文件。其中,源数据集文件的指示性信息可以包括两部分,其中一部分为范围指示性信息,另一部分为日期指示性信息。范围指示性信息和日期指示性信息结合作为了源数据集文件的两重过滤条件。目标数据库的标识信息用来唯一确定本申请技术方案针对的主机DB2数据库。根据源数据集文件的指示性信息即可以获得源数据集文件清单,里面包含至少一个源数据集文件;而根据目标数据库的标识信息即可以锁定目标数据库。

作业输出地址又可称为作业输出目录,具体可以是一个文件夹的地址。依照本申请实施例提供的数据装载作业的生成方法生成数据装载作业后,可以将生成的数据装载作业输出到作业参数中提供的作业输出目录中,方便查询、管理和应用。

S102:依据标识信息访问目标数据库并依据指示性信息扫描出源数据集文件列表。

标识信息与数据库具有一一对应的关系,因此根据S101作业参数中的标识信息可以唯一确定目标数据库。此表示即可作为依据访问目标数据库。例如,通过结构化查询语言(Structured Query Language,SQL)查询目标数据库中的表(以下简称目标表),可以获得目标表的所有信息,例如表名称、列信息、表分区等。

由于作业参数中包含的指示性信息指示了源数据集文件的日期和范围,因此可以根据指示性信息获得指定日期和指定范围的源数据集文件的列表。例如,通过稳定的读写方式获得文件大小、文件顺序、文件分区信息、文件所涉及到的目标数据库里的表的名称等。

需要说明的是,访问目标数据库和扫描源数据集文件列表的操作可以同步进行,也可以先访问目标数据库后扫描源数据集文件列表,或者先扫描源数据集文件列表后访问目标数据库。此处对于先后执行顺序不做限制。

S103:对目标数据库和源数据集文件进行分析,当确定目标数据库中包含与源数据集文件匹配的数据表时,利用作业模板生成数据装载作业,将数据装载作业输出至作业输出地址。

此处,要分析的源数据集文件即是指S102中扫描出的源数据集文件列表中的源数据集文件。

此处,数据表匹配的含义并不是指数据表之间所有信息完全一致。例如,当目标数据库中存在目标表与源数据集文件的数据表的一些关键检测指标匹配,也可以认为数据表相互匹配。

确定出关键检测指标包括以下至少一种:

表名称、分区信息、表结构、列信息或列长度;分区信息包括是否分区以及分区数量。

作为一种可能的实现方式,可以根据实际检测需求预先建立关键检测指标集合。具体实现时,比对源数据集文件在关键检测指标集合的关键检测指标和目标数据库中数据表在关键检测指标集合的关键检测指标的一致性,当两部分的表在关键检测指标集合中所有关键检测指标匹配时,确定目标数据库中包含与源数据集文件匹配的数据表。

当确定目标数据库中包含与源数据集文件匹配的数据表时,可以根据作业参数生成或获取作业运行的必要参数。此外,一些作业运行的必要参数还可以是预先设定好的公共参数。

公共参数只需指定一次就可以对本场景下所有模板适用,因此可将其作为方案的手工输入参数,保持稳定。如目标数据库的标识信息等。这些参数需要用户手工指定。

根据作业参数生成或获取作业运行的必要参数是和具体的某个或某类作业相关的。其特点是,可以在系统中直接访问获取或者是根据系统信息来给定评估值。如主机数据集名字列表及相关信息(如大小等)、数据库表列表、作业中的程序运行参数等,它们可以分别通过访问数据库、访问源数据集信息以及建立参数评估分配方法得到。

为了生成作业,还需要获取作业模板,再将作业运行的必要参数填入作业模板中的位置。具体实现时,可以将上述必要参数传输给作业模板所在的子程序,通过子程序将必要参数作为变量加入到作业模板中所需的位置。

实际应用中可以预先建立作业模板集合,集合中包含多个备选的作业模板。例如,装数模板、建索引模板和统计模板。从作业模板集合中选择出所述作业模板。不同作业模板,需要填入的必要参数可能相同也可能不同。因此必要参数也可以结合具体使用的作业模板设定、生成或获取。根据实际需要,也可以对作业模板集合中原有的模板进行修改调整。此外,还可以根据实际应用的需求在作业模板集合中新增作业模板。

可见,在本申请技术方案中可以通过增加或修改作业模板来方便灵活地适配新需求。

以上即为本申请提供的数据装载作业的生成方法,包括:源数据集文件的指示性信息、目标数据库的标识信息和作业输出地址;依据标识信息访问目标数据库并依据指示性信息扫描出源数据集文件列表;对目标数据库和源数据集文件进行分析,当确定目标数据库中包含与源数据集文件匹配的数据表时,利用作业模板生成数据装载作业,将数据装载作业输出至作业输出地址。该方法能够以自动化的方式快速生成大量质量高、稳定性好的数据装载作业,提升了数据装载作业的生成效率,达到分钟级的生成速度,降低了失误率。

在以上实施例中,S103仅描述了目标数据库中包含与源数据集文件匹配的数据表时执行的操作。此外,本申请实施例提供的数据装载作业的生成方法中,还包括:

当确定目标数据库中不包含与源数据集文件匹配的数据表时,输出风险告警信息并输出源数据集文件的列表。以此提示用户无法生成数据装载作业的问题,也可以提示用户进行补充定义。

在以上实施例中,对于扫描到的源数据集文件列表,在进行分析后,还可以对扫描到的源数据集文件按照如下标准分类:

第一类:目标数据库中存在匹配的数据表,非分区。对于此类的源数据集文件,把非分区的源数据集和环境配置等信息,直接或者转换(比如根据文件大小,经数学计算或集合关系映射等转换后得到必要参数)后填入对应的作业模板中的对应的参数位置里,即可得到一个完整的的数据装载作业。重复此步骤,直到获取所有的该类型的数据装载作业。

第二类:目标数据库中存在匹配的数据表,分区。对于此类的源数据集文件,把分区的源数据集和环境配置等信息,直接或者转换(比如根据文件大小,经数学计算或集合关系映射等转换后得到必要参数)填入对应的作业模板中的对应的参数位置里,即可得到一个完整的的数据装载作业。重复此步骤,直到获取所有的该类型的数据装载作业。

第三类:目标数据库中不存在匹配的数据表,分区或不分区。对于此类的源数据集文件,这种情况下,考虑到生成的装载作业运行时会因找不到表信息而报错,因此要输出风险信息提示用户,并列出相关的源数据集文件供用户参考。若用户补充定义,则后续参考第一类和第二类的处理。

经上述方法,可以产生大量质量高、稳定性好的数据装载作业。通过编程实现(包括但不局限于C语言)上述方法,并可编译成模块放置在需要应用系统上就可快速执行。

在本场景的实际情况下,还可以考虑完整性检查,以降低生成的数据装载作业后续运行失败的风险。完整性检查的目的是降低作业失败、遗漏和重复的风险。此处失败是指单个作业本身的失败。遗漏,则可能是至少一个作业遗漏,进而造成潜在的使用上的不一致。重复,是指两个作业执行相同作用,造成潜在的作业冲突和浪费。具体到目标数据库的数据装载作业上,可以具体到如下问题:

第一,参数是否正确。此问题可通过特定的方法来验证。例如数据库ID“D1”,如果在系统中无法访问到相关的数据库,则认为参数有问题,不允许作业产生或运行。

第二,作业是否遗漏。遗漏是指,是否每一份数据集所对应的表在数据库里都存在,并且数据库里每一个表都有所对应的数据集存在。如果两个条件有一个不满足,则认为存在遗漏。

第三,源数据集重复。如果有超过两份数据集文件对应着同一个数据库里的表,则认为这是有问题的,需要确认并修正,须去掉其中一个。

这些问题解决后,可以避免日常人工操作时所范的绝大多数潜在风险。需要特别说明的是,这些检验经常是与获取的过程一起进行的,获取后立刻检验。

综合以上描述,在本申请实施例提供的数据装载作业的生成方法中,相较于现有技术提供了如下内容的创新:

1、对文件的分析而形成的适用于装载作业的规范化参数的过程和结果;

2、对数据库里的查询信息结果的规范化参数过程和结果;

3、对作业模板的集合的规范化分类;

4、对作业模板的参数的规范化分类和转换;

5、对编程产生和输出装载作业的规则、方法和产出工具。

为便于理解本申请实施例提供的技术方案,下面提供一则示例。

1.读取所有作业参数。

2.根据范围指示性信息LEVEL=DPBBCATG.PQ2F,扫描出来源数据集文件的清单(列表),例如:

DPBBCATG.PQ2F.TESTDB1.TESTTS1.D2011031.T25

DPBBCATG.PQ2F.TESTDB1.TESTTS1.D2012014.T23

DPBBCATG.PQ2F.TESTDB1.TESTTS1.D2013073.T19

DPBBCATG.PQ2F.TESTDB2.TESTTS2.D2013073.T14

DPBBCATG.PQ2F.TESTDB3.TESTTS3.D2013076.T11

其中,D2011031、D2012014、D2013073和D2013076分别为不同的日期指示性信息;TESTDB1是目标数据库子系统名;TESTTS1是TESTDB1中的一个表空间。

3.根据日期指示性信息DTL=D2013073,对上述步骤2中的结果进行日期过滤,得到如下源数据集文件及其相关信息,比如文件大小等。

DPBBCATG.PQ2F.TESTDB1.TESTTS1.D2013073.T19

DPBBCATG.PQ2F.TESTDB2.TESTTS2.D2013073.T14

4.根据目标数据库的指示性信息SYSID=DC10,访问目标数据库DC10,获取该数据库中全部表的结构信息:

TESTDB1.TESTTS1,(COL1,COL2,COL3)

TESTDB2.TESTTS2,(COL1,COL2,COL3,COL4)

TESTDB3.TESTTS3,(COL1,COL2,COL3,COL4,COL5)

上述表的信息经与3中的比对分析可获得:

TESTDB1.TESTTS1匹配上了:

DPBBCATG.PQ2F.TESTDB1.TESTTS1.D2013073.T19

TESTDB2.TESTTS2匹配上了:

DPBBCATG.PQ2F.TESTDB2.TESTTS2.D2013073.T14

5.把SYSID=DC10,结合4的分析结果作为作业运行的必要参数,可填补到装数模板中所需的位置。作业模板中的内容而生成数据装载作业(由此模板生成的数据装载作业简称装数作业)。

6.根据SYSID=DC10,结合3、4的结果信息,计算评估出排序并发数24,作为作业运行的必要参数。可填补建索引模板所需的位置。作业模板中的内容而生成数据装载作业(由此模板生成的数据装载作业简称建索引作业)。

7.作业参数中还可以包括:决策信息NEEDRUNS,该信息用于决策是否需要利用统计模板生成数据装载作业。因此,当确定所述目标数据库中包含与所述源数据集文件匹配的数据表,且所述决策信息指示需要生成数据装载作业时,利用所述作业模板生成数据装载作业。

NEEDRUNS=Y,说明需要利用统计模板来使相关信息的更新到目标数据库中。根据3、4的结果信息,可填补统计模板内容而获得数据装载作业(由此模板生成的数据装载作业简称统计作业)。

8.根据作业输出地址OUTPDS=CMABC.RIVAROLA.REDOVER.JCL,如果CMABC.RIVAROLA.REDOVER.JCL这个目录存在就把5-7中生成的每个作业,输出保存到该目录里。如果不存在,则创建该目录后输出数据装载作业。

在上述示例中,决策信息仅仅与统计模板的使用相关联,装数模板以及建索引模板的使用与决策信息无关。通过装数模板、建索引模板和统计模板(三者间具有依赖关系)完成对数据装载作业的生成。

结合以上示例,在本申请技术方案中,可以通过执行以上操作,批量完成对目标数据库中表与源数据集文件的匹配判断操作,进而批量化地生成数据装载作业。替代人工实现的操作,降低失误率,提升稳定性。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

相关技术
  • 一种数据装载作业的生成方法
  • 一种基于作业性能数据插值的装载机铲装轨迹优化方法
技术分类

06120112587343