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

数据加载方法、装置和计算机设备与流程

2022-12-19 20:17:45 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,特别是涉及一种数据加载方法、装置和计算机设备。


背景技术:

2.大数据技术的迅猛发展和信息化的推进,使得人类社会所积累的数据量逐渐增多,这些数据在下载到数据库用于分析时会花费过多时间和金钱。
3.目前将文件数据从数据库服务器加载至数据库对应的表中时通常采用人工调度加载脚本,主要过程分为三个步骤:第一,在可能的时间范围内,开发人员检查文件数据是否已到达数据库服务器;第二,文件数据到达数据库服务器后,开发人员手动执行加载脚本,将文件数据加载至数据库对应的表中;最后,加载完成后,开发人员检查加载至数据库表中的记录数是否与服务器中文件数据的记录数一致,来判断文件数据是否正确加载。
4.然而,目前的文件数据加载技术相对简单且实现方式直接,在文件数据数量少且文件数据到达数据服务器时间相对固定的情况下能够较好的应用,但是对于实际应用中,文件数据加载方式缺乏及时性与准确性,且成本高。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够自动加载文件数据的数据加载方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种数据加载方法。所述方法包括:
7.获取待处理文件数据的加载配置信息;
8.根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
9.将所述待加载文件数据加载至目标数据库。
10.在其中一个实施例中,所述加载配置信息包括加载路径信息;所述根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据包括:
11.按照所述加载路径信息获取并扫描所述待处理文件数据;
12.若扫描到所述待处理文件数据的信号文件,则对所述待处理文件数据进行校验;
13.对校验处理后的所述待处理文件数据进行预设数据格式转换以获取所述待加载文件数据。
14.在其中一个实施例中,所述信号文件包括所述待处理文件数据中所有单文件数据的信息;所述对所述待处理文件数据进行校验包括:
15.获取所述待处理文件数据的第一文件数据参数信息;
16.比较所述第一文件数据参数信息和所述信号文件中记录的第二文件数据参数信息,以对所述待处理文件数据进行校验。
17.在其中一个实施例中,所述加载配置信息还包括加载表结构信息;所述根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据后,包括:
18.根据所述第一加载表结构信息与所述目标数据库的第二表结构信息获取表结构变化信息;其中,所述表结构变化信息包括字段类型变化、字段名称变化、字段顺序变化和字段长度变化中至少一个;
19.根据所述表结构变化信息修改所述第二表结构信息和所述目标数据库对应的加载脚本的字段结构中的至少一种。
20.在其中一个实施例中,所述根据所述表结构变化信息修改所述第二表结构信息和所述目标数据库对应的加载脚本的字段结构中的至少一种包括:
21.若所述结构变化信息中包括所述字段长度变化、字段长度发生变长,则修改第二表结构信息;
22.若所述结构变化信息包括所述字段顺序变化,则修改所述目标数据库对应的加载脚本的字段结构;
23.若所述结构变化信息包括所述字段类型变化和字段名称变化中的至少一个,则修改第二表结构信息和所述目标数据库对应的加载脚本的字段结构。
24.在其中一个实施例中,所述将待加载文件数据加载至目标数据库包括:
25.对所述待加载文件数据对应的信号文件进行第一次重命名;
26.根据第一次重命名后的所述信号文件、所述目标数据库的加载脚本将所述待加载文件数据加载至目标数据库;
27.对所述信号文件进行第二次重命名以完成加载。
28.在其中一个实施例中,所述待加载文件数据的数量为多个,所述将待加载文件数据加载至目标数据库还包括:
29.获取多个所述待加载文件数据的预加载顺序;
30.根据所述预加载顺序针对每一所述待加载文件数据按照如下方式完成加载:
31.对所述待加载文件数据对应的信号文件进行第一次重命名;
32.根据第一次重命名后的所述信号文件、所述目标数据库的加载脚本将所述待加载文件数据加载至目标数据库;
33.对所述信号文件进行第二次重命名以完成加载。
34.在其中一个实施例中,所述将所述待加载文件数据加载至目标数据库后,所述方法还包括:
35.根据所述待加载文件数据加载完成的信号输出结束信号,所述结束信号包括预警信号、通知信号和清理信号中至少一个。
36.第二方面,本技术还提供了一种数据加载装置,所述装置包括:
37.配置模块,用于获取待处理文件数据的加载配置信息;
38.加载准备模块,根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
39.数据加载模块,用于将所述待加载文件数据加载至目标数据库。
40.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理
器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
41.获取待处理文件数据的加载配置信息;
42.根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
43.将所述待加载文件数据加载至目标数据库。
44.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
45.获取待处理文件数据的加载配置信息;
46.根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
47.将所述待加载文件数据加载至目标数据库。
48.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
49.获取待处理文件数据的加载配置信息;
50.根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
51.将所述待加载文件数据加载至目标数据库。
52.上述数据加载方法、装置、计算机设备、存储介质和计算机程序产品,通过根据所述加载配置信息对所述待处理文件数据进行预处理,以获取符合预设加载条件的待加载文件数据,避免由于大量的文件数据的格式不同、到达数据库服务器的时间不确定且数据文件数据数量较多导致的加载混乱或重新加载,可以显著提高加载效率。通过自动更新加载脚本避免人工加载导致的工作繁琐且脚本错误。在数据文件数据到达后可立即将所述待加载文件数据加载至目标数据库,可满足应用对于加载数据文件数据的及时性。且在加载完成后,可自动检核入库数据与数据文件数据的一致性,释放了开发人员的诸多繁琐工作。
附图说明
53.图1为本技术一实施例中提供的数据加载方法的应用环境图;
54.图2为本技术一实施例中提供的数据加载方法的流程示意图;
55.图3为本技术一实施例中提供的对待处理文件数据进行预处理步骤的流程示意图;
56.图4为本技术一实施例中提供的对待处理文件数据进行校验步骤的流程示意图;
57.图5为本技术另一实施例中提供的数据加载方法的流程示意图;
58.图6为本技术一实施例中提供的根据表结构变化信息修改目标数据库信息步骤的流程示意图;
59.图7为本技术一实施例中提供的将待加载文件数据加载至目标数据库步骤的流程示意图;
60.图8为本技术另一实施例中提供的将待加载文件数据加载至目标数据库步骤的流程示意图;
61.图9为本技术又一实施例中提供的数据加载方法的流程示意图;
62.图10为本技术再一实施例中提供的数据加载方法的流程示意图;
63.图11为本技术一实施例中提供的加载调度系统的结构框图;
64.图12为本技术一实施例中提供的数据加载装置的结构框图;
65.图13为本技术一实施例中提供的计算机设备的内部结构图。
具体实施方式
66.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本技术的公开内容更加透彻全面。
67.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
68.在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
69.如背景技术所述,目前的人工调度加载脚本的加载技术相对简单且实现方式直接,在文件数据数量少且文件数据到达数据服务器时间相对固定的情况下能够较好的应用,但是对于实际应用中文件数据到达数据库服务器的时间不确定且文件数据数量较多,不能满足应用加载数据的及时性;在文件数据达到服务器需开发人员手工调度加载脚本,工作繁琐且不能保证人工调度的准确性;数据加载入库后,需要开发人员检核入库数据与的一致性,来确保数据准确入库。由此,随着入库文件数据数量的增长以及系统对于加载实时性的要求,现有加载技术已不能完全满足应用需求,亟需开发出新的系统和方法来满足现状。
70.本技术实施例提供的数据加载方法,可以应用于如图1所示的应用环境中,包括上游系统、数据交换平台以及数据文件自动加载调度系统。
71.其中,上游各系统通过网络与数据交换平台进行通信,数据交换平台通过网络与数据文件自动加载调度系统进行通信。上游系统导出数据文件及信号文件并传输至数据交换平台,数据交换平台收到上游信号文件后,将数据文件及信号文件传输至数据库服务器(图中未示出),调度系统将数据库服务器上的数据文件加载至目标数据库,实现文本数据文件向结构化数据的转变。
72.在一个实施例中,如图2所示,提供了一种数据加载方法,所述方法包括:
73.步骤s200:获取待处理文件数据的加载配置信息。
74.待处理文件数据包括上游系统传输到数据库服务器的待处理的文件数据。加载配置信息包括待处理文件数据所有的可以表征文件数据唯一性的信息以及加载至目标数据库所需的信息。加载配置信息可以包括但不限于加载路径信息、数据库连接信息、加载所需参数、数据库调度参数表中的至少一种;数据库连接信息可以为数据库的用户名、服务器的密码等连接所需信息;加载所需参数具体可以为文件数据的批量日期、文件数据的load参数、数据库加密信息、服务器目录等。
75.步骤s400:根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据。
76.具体地,根据所述加载配置信息对所述待处理文件数据进行预处理包括根据加载配置信息检查加载各项条件是否满足、需要进行加载的待处理文件数据是否全部到位、根据加载配置信息检查加载过程中所需各项参数是否满足要求、待处理文件数据按照预设格式转换等可以使待处理文件数据成功加载到目标数据库的所有前提条件。待加载文件数据包括从数据库服务器传输到数据库服务器的符合预设加载条件的文件数据。
77.步骤s600:将所述待加载文件数据加载至目标数据库。
78.具体地,将所述待加载文件数据加载至目标数据库包括将文件数据从数据库服务器加载至数据库对应的表中的过程。目标数据库包括需要加载入库的数据库,可以为按照预设数据结构来组织、存储和管理数据的目标仓库。
79.上述数据加载方法中通过根据所述加载配置信息对所述待处理文件数据进行预处理,以获取符合预设加载条件的待加载文件数据,避免由于大量的文件数据的格式不同、到达数据库服务器的时间不确定且数据文件数据数量较多导致的加载混乱或重新加载,可以显著提高加载效率。通过自动更新加载脚本避免人工加载导致的工作繁琐且脚本错误。在数据文件数据到达后可立即将所述待加载文件数据加载至目标数据库,可满足应用对于加载数据文件数据的及时性,且在加载完成后,可自动检核入库数据与数据文件数据的一致性,释放了开发人员的诸多繁琐工作。
80.在其中一个实施例中,如图3所示,步骤s400,所述根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据包括步骤s410至步骤s430。
81.步骤s410:按照所述加载路径信息获取并扫描所述待处理文件数据。
82.具体地,所述加载配置信息包括加载路径信息;加载路径信息可以为加载所需服务器的各项路径,例如服务器连接路径、文件数据存放路径、数据库连接路径、加载过程中产生的日志的存放路径等。按照所述加载路径信息获取并扫描所述待处理文件数据包括根据服务器连接路径将所述待处理文件数据从上游系统下发至服务器并在下发过程中定时扫描本批次待处理文件数据中的所有数据文件数据。按照所述加载路径信息获取并扫描所述待处理文件数据前还包括:判断加载所需文件数据存放路径、数据库连接信息以及服务器目录参数等是否建立;若没有建立,则新建文件数据存放路径、数据库连接信息或服务器目录参数。
83.步骤s420:若扫描到所述待处理文件数据的信号文件,则对所述待处理文件数据进行校验。
84.具体地,信号文件为指示本批次文件数据从上游系统全部下发至数据库服务器的标志文件数据,即若数据库服务器接收到所述信号文件,则证明这一批次的待处理文件数据全部下发完成。同一批次文件数据下发至服务器后,将信号文件一并下发至服务器,标志着该批次文件数据下发完成。信号文件的命名及其内容根据上游各系统需求提前约定好命名方式,以便后续系统使用过程中的识别,若信号文件的命名及内容与约定不一致则会影响后续程序的识别。故需要对信号文件记载的内容进行校验,即将信号文件记载的内容与待处理文件数据中的单文件数据内容进行校验以保证信号文件内容一致,使系统后续使用
正常。
85.步骤s430:对校验处理后的所述待处理文件数据进行预设数据格式转换以获取所述待加载文件数据。
86.具体地,所述待处理文件数据可以为文本数据,文本数据可以包括但不限于txt文件数据、csv文件数据、excel文件数据中至少一个。所述预设数据格式转换包括将不同的文件数据的形式及内容转换成统一格式的标准文件数据,所述标准文件数据具体可以为txt文件数据,所述形式及内容可以包括字段个数、字段类型、字段值分隔符、换行符、txt文件数据字符集类型等。
87.上述数据加载方法中,通过信号文件的扫描确保本批次所有的待加载单文件数据均下发完成,通过将待处理文件数据进行预设数据格式转换可以使接受到的各种类型的文本数据文件数据统一为一种格式,以便于正常的加载到同一个数据库中,避免由于文件数据的格式的不同而拒绝文件数据导入的情况出现。
88.在其中一个实施例中,如图4所示,所述信号文件包括所述待处理文件数据中所有单文件数据的信息;步骤s420,所述对所述待处理文件数据进行校验包括步骤s421至步骤s422。
89.步骤s421:获取所述待处理文件数据的第一文件数据参数信息。
90.具体地,第一文件数据参数信息包括待处理文件数据中所有单文件数据的文件数据参数信息,所述文件数据参数信息具体可以包括文件数据大小、文件数据记录数等。
91.步骤s422:比较所述第一文件数据参数信息和所述信号文件中记录的第二文件数据参数信息,以对所述待处理文件数据进行校验。
92.具体地,第二文件数据参数信息包括这一批次待处理文件数据中所有单文件数据的文件数据参数信息,所述文件数据参数信息具体可以包括文件数据大小、文件数据记录数等。通过判断第一文件数据参数信息是否等于第二文件数据参数信息,可以得出信号文件是否正常的信号。若第一文件数据参数信息与第二文件数据参数信息完全相同,则校验通过,以获取待加载文件数据。若第一文件数据参数信息与第二文件数据参数信息中有任何一个参数不相同,则生成报警信号进行预警提示用户进行原因排查,直至第二文件数据参数信息与第一文件数据参数信息全部一致。
93.可选的,对待加载文件数据进行加载的过程中,还可以将比对信息记录至目标数据库中的数据库文件数据信息表。所述比对信息包括文件数据名称、文件数据大小、文件数据记录数、批次文件数据到达时间、文件数据信息是否一致等信息。
94.上述数据加载方法中,通过第一文件数据参数与第二文件数据参数的比对,对信号文件的内容进行校验,避免由于信号文件的命名及内容与约定不一致而影响后续程序的识别。
95.在其中一个实施例中,如图5所示,数据加载方法包括:
96.步骤s200:获取待处理文件数据的加载配置信息;
97.具体地,所述加载配置信息包括加载表结构信息,每个文件数据下发的同时还下发的与文件数据一一对应的计划入库表结构信息,所述加载表结构信息包括字段名称、字段类型、字段长度、字段顺序等可以表征文件数据唯一性的表结构信息。
98.步骤s400:根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合
预设加载条件的待加载文件数据;
99.步骤s510:根据所述第一加载表结构信息与所述目标数据库的第二表结构信息获取表结构变化信息。其中,所述表结构变化信息包括字段类型变化、字段名称变化、字段顺序变化和字段长度变化中至少一个。
100.具体地,已下发的第一加载表结构信息需要与目标数据库的第二表结构信息保持一致,才能保证数据正常导入,因此在正式将文件数据加载入库前需要对比第一加载表结构信息与第二表结构信息,比较二者表结构信息是否一致。
101.步骤s520:根据所述表结构变化信息修改所述第二表结构信息和所述目标数据库对应的加载脚本的字段结构中的至少一种。
102.具体地,若第一加载表结构信息与第二表结构信息不一致,则修改第二表结构信息和目标数据库对应的加载脚本的字段结构中的至少一种,并根据最新的目标数据库的第二表结构信息更新对应的数据加载脚本。
103.步骤s600:将所述待加载文件数据加载至目标数据库。
104.上述数据加载方法中,已下发的计划加载入库表结构(即第一加载表结构信息)需要与目标数据库(即第二表结构信息)保持一致,才能保证数据正常导入,因此在正式将数据文件数据加载入库前需要对比第一加载表结构信息与第二表结构信息,比较二者表结构是否一致,若不一致需修改第二表结构信息,并根据最新的数据库表结构更新对应的数据加载脚本。
105.在其中一个实施例中,如图6所示,步骤s520,所述根据所述表结构变化信息修改所述第二表结构信息和所述目标数据库对应的加载脚本的字段结构中的至少一种包括步骤s521至步骤s523。
106.步骤s521:若所述结构变化信息中包括所述字段长度变化、字段长度发生变长,则修改第二表结构信息。
107.具体地,若仅仅是上游系统的第一加载表结构信息的字段扩长,例如某字段长度由varchar(10)扩长到varchar(100),在此情况下,系统会按照最新的第一加载表结构信息生成数据库字段扩长语句,仅对目标数据库的第二表结构信息的对应字段进行扩长。若上游系统的第一加载表结构信息增加了字段且原字段顺序无变化时,系统会按照最新的第一加载表结构信息生成数据库字段增加语句,仅对目标数据库的第二表结构信息的对应位置增加字段。但若除了字段长度变化外,还有其他的结构变化信息,则执行步骤s523。
108.步骤s522:若所述结构变化信息包括所述字段顺序变化,则修改所述目标数据库对应的加载脚本的字段结构。
109.具体地,若仅仅是上游系统的第一加载表结构信息的字段顺序变化,例如原字段a的顺序由第一位调整为第二位,在此情况下,目标数据库的第二表结构信息的字段顺序不进行调整,而是目标数据库对应的数据加载脚本中的与字段a对应位置的字段b的顺序由第一位调整为第二位,以适应第一加载表结构信息的变化。但若除了字段顺序变化外,还有其他的结构变化信息,则执行步骤s523。
110.步骤s523:若所述结构变化信息包括所述字段类型变化和字段名称变化中的至少一个,则修改第二表结构信息和所述目标数据库对应的加载脚本的字段结构。
111.具体地,若字段类型变化,例如a字段类型由number类型变成varchar类型,则备份
目标数据库原有第二表结构信息,并根据第一加载表结构信息生成建表语句重新建表生成最新第二表结构信息,原有数据加载脚本中的字段结构中的与字段a对应位置的b字段的字段类型从number类型变成varchar类型。若字段名称变化,例如a字段名称由name1改为name2,则备份目标数据库原有第二表结构信息,并根据第一加载表结构信息生成建表语句重新建表生成最新第二表结构信息,原有数据加载脚本中的字段结构中的与字段a对应位置的b字段的字段名称由name3改为name4。若字段顺序及字段长度均发生变化,即第一加载表结构信息增加字段a且原字段顺序发生变化时,根据第一表结构信息新增字段的字段名称及字段类型生成添加新增字段的执行语句,在目标数据库的第二表结构信息先新增字段a,但目标数据库的第二表结构信息的字段顺序不进行调整,而是目标数据库对应的数据加载脚本中的与字段a对应位置的字段b的顺序调整。若字段顺序与字段类型/字段名称均变化,则备份目标数据库原有第二表结构信息,并根据第一加载表结构信息生成建表语句重新建表生成最新第二表结构信息,原有数据加载脚本中字段结构的字段顺序与字段类型/字段名称发生相应变化。所述结构变化信息包括但不限于字段类型变化、字段名称变化、字段顺序变化和字段长度变化,若第一加载表结构信息发生了除字段类型变化、字段名称变化、字段顺序变化或字段长度变化之外的其他变化,则备份目标数据库原有第二表结构信息,并根据第一加载表结构信息生成建表语句重新建表生成最新第二表结构信息,原有数据加载脚本中字段结构的字段发生相应变化。
112.在其中一个实施例中,如图7所示,步骤s600,所述将待加载文件数据加载至目标数据库包括步骤s611至步骤s613。
113.步骤s611:对所述待加载文件数据对应的信号文件进行第一次重命名。
114.具体地,对待处理文件数据进行预处理后,进入数据加载阶段,将待加载文件数据从数据库服务器加载至目标数据库。首先将待加载的待加载文件数据对应的信号文件名称进行第一次重命名用以标记对应批次的文件数据正在加载,避免在加载过程中同样批次的文件数据及信号文件重新下发导致加载混乱或重复加载。
115.步骤s612:根据第一次重命名后的所述信号文件、所述目标数据库的加载脚本将所述待加载文件数据加载至目标数据库。
116.具体地,对第一次重命名后的信号文件进行第二次校验,以判断出异常文件数据,所述异常文件数据为加载过程或预处理过程中由于误操作导致文件数据被删除的文件数据。逐行读取进行第一次重命名后的信号文件,每读入一行即本批次中一个单文件数据的基本信息,按照读入的单文件数据的基本信息在本批次文件数据的目录下寻找对应的单文件数据,判断是否存在对应的文件数据:若存在,则调用相应目标数据库对应的数据加载脚本将数据加载入库并将加载信息记录数据库日志表;若不存在,则跳过该单文件数据的加载过程进行信号文件中下一行对应的单文件数据的加载并将加载信息记录数据库日志表。其中所述加载信息包括但不限于加载状态、记录数、加载开始时间、加载结束时间等本次加载过程中产生的信息。
117.步骤s613:对所述信号文件进行第二次重命名以完成加载。
118.具体地,依次将信号文件中最后一行对应的单文件数据加载完成后,将第一次重命名后的信号文件进行第二次重命名,用来标志该批次文件数据已全部完成加载,加载结束。若在加载过程中同一批次的文件数据及对应的信号文件重复下发,则在先到的同批次
文件数据按照上述过程完成加载后,继续对重复下发的同批次文件数据进行加载。过程中信号文件的原命名、第一次重命名以及第二次重命名均不相同。
119.在其中一个实施例中,如图8所示,所述待加载文件数据的数量为多个;步骤s600,所述将待加载文件数据加载至目标数据库包括步骤s621至步骤s625。
120.步骤s621:获取多个所述待加载文件数据的预加载顺序。
121.具体地,所述批次可以是一个单独的文件数据,也可以是多个,可来自单独的一个上游系统,也可以来自多个上游系统。预加载顺序为按照先完成预处理的顺序进行加载,即先完成预处理后的批次待加载文件数据先开始加载。各批次相互之间无依赖或制约关系。
122.步骤s622:根据所述预加载顺序针对每一所述待加载文件数据按照如下方式完成加载:
123.步骤s623:对所述待加载文件数据对应的信号文件进行第一次重命名。
124.具体地,将正在加载中批次待加载文件数据对应的信号文件名称重命名用以标记对应批次待加载文件数据正在加载与其他未加载的信号文件区分开来,也避免在加载过程中同样批次的数据文件数据及信号文件重新下发导致加载混乱或重新加载。
125.步骤s624:根据第一次重命名后的所述信号文件、所述目标数据库的加载脚本将所述待加载文件数据加载至目标数据库。
126.具体地,对第一次重命名后的信号文件进行第二次校验,以判断出异常文件数据,所述异常文件数据为加载过程或预处理过程中由于误操作导致文件数据被删除的文件数据。逐行读取进行第一次重命名后的信号文件,每读入一行即本批次中一个单文件数据的基本信息,按照读入的单文件数据的基本信息在本批次文件数据的目录下寻找对应的单文件数据,判断是否存在对应的文件数据:若存在,则调用相应目标数据库对应的数据加载脚本将数据加载入库并将加载信息记录数据库日志表;若不存在,则跳过该单文件数据的加载过程进行信号文件中下一行对应的单文件数据的加载并将加载信息记录数据库日志表。其中所述加载信息包括但不限于加载状态、记录数、加载开始时间、加载结束时间等本次加载过程中产生的信息。
127.步骤s625:对所述信号文件进行第二次重命名以完成加载。
128.具体地,依次将信号文件中最后一行对应的单文件数据加载完成后,将第一次重命名后的信号文件进行第二次重命名,用来标志该批次文件数据已全部完成加载。开始加载下一个预处理后的待加载文件数据,直至所有的信号文件全部重命名,代表所有信号文件对应批次的文件数据全部加载入目标数据库。若在加载过程中同一批次的文件数据及对应的信号文件重复下发,则在先到的同批次文件数据按照上述过程完成加载后,继续对重复下发的同批次文件数据进行加载。过程中每一个批次的信号文件的原命名、第一次重命名以及第二次重命名均不相同。
129.具体地,步骤s600的加载过程中,就同一张表的数据可以为追加、同一数据覆盖加载、清空表数据后加载等方式,可以适应性设置。追加是指目标数据库的第二表结构信息中原有的数据不变,将新下发的文件数据的数据加载到第二表结构信息中,即目标数据库的第二表结构信息中原有数据a,下发的文件数据中的数据为b,追加到目标数据库的第二表结构信息后,目标数据库的第二表结构信息的中数据为a b;同一数据是指同样的文件数据,即位置大小结构都相同的数据,第一次上游下发文件数据a,将a加载至目标数据库的第
二表结构信息中,此时目标数据库的第二表结构信息中的数据为a,可能由于某种原因,上游重新下发该文件数据a`,就会将新的文件数据a`重新加载至目标数据库的第二表结构信息中,此时目标数据库的第二表结构信息中的数据为a`。清空表数据后加载是指,目标数据库的第二表结构信息中原有的数据为b,上游下发文件数据a,将目标数据库的第二表结构信息中原有的数据为b清空,将a加载至目标数据库的第二表结构信息中,此时目标数据库的第二表结构信息中的数据为a。
130.在其中一个实施例中,如图9所示,数据加载方法包括:
131.步骤s200:获取待处理文件数据的加载配置信息;
132.步骤s400:根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
133.步骤s600:将所述待加载文件数据加载至目标数据库;
134.步骤s700:根据所述待加载文件数据加载完成的信号输出结束信号,所述结束信号包括预警信号、通知信号和清理信号中至少一个。
135.具体地,若所述结束信号包括预警信号时,则根据所述预警信号执行预设报警动作并将按照检核规则检查数据加载入库的质量检出的数据质量预警问题记录在相应的日志表中以提醒工作人员加载过程中的存在风险问题,所述数据质量预警问题包括存在数据乱码、数据错位或数据消失等,所述预设动作包括指示灯报警、蜂鸣器报警、语音报警、发送短信及发送邮件中至少一种。所述指示灯报警包括指示灯常亮、指示灯闪烁等;所述蜂鸣器报警包括长鸣、短鸣等;所述语音报警包括“数据异常,请进行检修”;所述发送短信或发送邮件包括提醒存在的数据质量预警问题等。以便于工作人员及时直观根据声音、灯光、短信或邮件提醒数据异常情况。若所述结束信号包括通知信号时,则根据所述通知信号通知工作人员加载完成以进行入库情况检查并记录相关加载结果日志。若所述结束信号包括清理信号时,根据所述清理信号清理加载过程中产生的临时文件数据、临时日志信息、历史数据文件数据、其他临时数据等。
136.在一个实施例中,数据加载方法的具体步骤如图10所示,可以应用至图11的调度系统中,所述加载调度系统可以包括应用系统层、数据存储层、数据文件数据层及系统调度层;数据存储层主要存储通过etl(用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)处理后的业务数据和检核结果数据;系统调度层主要包括数据加载调度管理、检核规则调度管理、数据补录调度管理、系统资源管理、检核预警管理。
137.数据加载调度管理用于自动监测文件数据是否到达、实现多批次对文件数据进行自动且自适应库表结构加载入库以及监控入库结果。具体数据加载步骤包括:加载任务通过服务器在预设周期定时任务启动,进入加载准备阶段,初始化数据库调度参数表信息,并判断文件数据路径、数据库连接信息及服务器目录等是否存在、若不存在则新建文件数据路径、新建数据库连接信息或新建服务器目录。开始下发待处理文件数据及与待处理文件数据中单文件数据一一对应的第一加载表结构信息至数据库服务器,直至服务器扫描到本批次的信号文件,则证明本批次的待处理文件数据全部下发至数据库服务器。对待处理文件进行预处理,即对待处理文件对应的信号文件内容进行校验并对所述待处理文件数据进行预设格式转换以得到待加载文件数据。判断所述待处理文件的第一加载表结构信息与目
标数据库的第二表结构信息是否一致,若不一致,则更新第二表结构信息及/或目标数据库对应数据加载脚本,若所述结构变化信息中包括所述字段长度变化、字段长度发生变长,则修改第二表结构信息;若所述结构变化信息包括所述字段顺序变化,则修改所述目标数据库对应的加载脚本的字段结构;若所述结构变化信息包括所述字段类型变化和字段名称变化中的至少一个,则修改第二表结构信息和所述目标数据库对应的加载脚本的字段结构。开始进入数据加载阶段,读取先经过预处理的待加载文件数据对应的信号文件,并将正在加载中批次待加载文件数据对应的信号文件名称重命名用以标记对应批次待加载文件数据正在加载与其他未加载的信号文件区分开来,例如将信号文件第一次重命名为“信号文件.tmp”。对第一次重命名后的信号文件进行第二次校验,以判断出异常文件数据,所述异常文件数据为加载过程或预处理过程中由于误操作导致文件数据被删除的文件数据。逐行读取进行第一次重命名后的信号文件,每读入一行即本批次中一个单文件数据的基本信息,按照读入的单文件数据的基本信息在本批次文件数据的目录下寻找对应的单文件数据,判断是否存在对应的文件数据:若存在,则调用相应目标数据库对应的数据加载脚本将数据加载入库并将加载信息记录数据库日志表;若不存在,则跳过该单文件数据的加载过程进行信号文件中下一行对应的单文件数据的加载并将加载信息记录数据库日志表。依次将信号文件中最后一行对应的单文件数据加载完成后,将第一次重命名后的信号文件进行第二次重命名,例如将“信号文件.tmp”第二次重命名为“信号文件.finish”,用来标志该批次文件数据已全部完成加载。开始加载下一个预处理后的待加载文件数据,直至所有的信号文件全部重命名,代表所有信号文件对应批次的文件数据全部加载入目标数据库,数据加载过程结束。
138.检核预警管理用于对检核结果情况进行预警监控。数据全部加载结束后,可以触发邮件通知功能、检核规则调度、预警通知或系统资源管理等功能。其中检核规则调度管理按照检核规则检查数据加载入库的质量,如是否存在乱码,错位等情况,具体的检核规则可根据用户的自身检查需要在系统中进行灵活配置,将存在的数据质量预警问题记录在相应的日志表中,将预警问题通过邮件功能提示用户及时确认。对加载过程中产生的临时文件、临时日志信息、历史数据文件,按照实际需求的清理策略在系统中进行灵活配置具体的清理策略。数据补录调度管理主要是对补录数据及回流上游作业进行调度管理;系统资源管理主要是监控数据库资源信息。
139.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
140.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据加载方法的数据加载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据加载装置实施例中的具体限定可以参见上文中对于数据加载方法的限定,在此不再赘述。
141.在一个实施例中,如图12所示,提供了一种数据加载装置,包括配置模块10、加载准备模块20和数据加载模块30;配置模块10,用于获取待处理文件数据的加载配置信息;加载准备模块20,用于根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;数据加载模块30,用于将所述待加载文件数据加载至目标数据库。
142.在一个实施例中,所述加载准备模块20还用于按照所述加载路径信息获取并扫描所述待处理文件数据;若扫描到所述待处理文件数据的信号文件,则对所述待处理文件数据进行校验;对校验处理后的所述待处理文件数据进行预设数据格式转换以获取所述待加载文件数据。
143.在一个实施例中,所述加载准备模块20还用于获取所述待处理文件数据的第一文件数据参数信息;比较所述第一文件数据参数信息和所述信号文件中记录的第二文件数据参数信息,以对所述待处理文件数据进行校验。
144.在一个实施例中,所述加载准备模块20还用于根据所述第一加载表结构信息与所述目标数据库的第二表结构信息获取表结构变化信息;其中,所述表结构变化信息包括字段类型变化、字段名称变化、字段顺序变化和字段长度变化中至少一个;根据所述表结构变化信息修改所述第二表结构信息和所述目标数据库对应的加载脚本的字段结构中的至少一种。
145.在一个实施例中,所述加载准备模块20还用于若所述结构变化信息中包括所述字段长度变化、字段长度发生变长,则修改第二表结构信息;若所述结构变化信息包括所述字段顺序变化,则修改所述目标数据库对应的加载脚本的字段结构;若所述结构变化信息包括所述字段类型变化和字段名称变化中的至少一个,则修改第二表结构信息和所述目标数据库对应的加载脚本的字段结构。
146.在一个实施例中,所述数据加载模块30还用于对所述待加载文件数据对应的信号文件进行第一次重命名;根据第一次重命名后的所述信号文件、所述目标数据库的加载脚本将所述待加载文件数据加载至目标数据库;对所述信号文件进行第二次重命名以完成加载。
147.在一个实施例中,所述数据加载模块30还用于获取多个所述待加载文件数据的预加载顺序;根据所述预加载顺序针对每一所述待加载文件数据按照如下方式完成加载:对所述待加载文件数据对应的信号文件进行第一次重命名;根据第一次重命名后的所述信号文件、所述目标数据库的加载脚本将所述待加载文件数据加载至目标数据库;对所述信号文件进行第二次重命名以完成加载。
148.在一个实施例中,所述数据加载装置还包括加载结束模块40,用于根据所述待加载文件数据加载完成的信号输出结束信号,所述结束信号包括预警信号、通知信号和清理信号中至少一个。
149.上述数据加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
150.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显
示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据加载方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
151.本领域技术人员可以理解,图13中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
152.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
153.获取待处理文件数据的加载配置信息;
154.根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
155.将所述待加载文件数据加载至目标数据库。
156.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
157.获取待处理文件数据的加载配置信息;
158.根据所述加载配置信息对所述待处理文件数据进行预处理,获取符合预设加载条件的待加载文件数据;
159.将所述待加载文件数据加载至目标数据库。
160.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,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 random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
161.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例
中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
162.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献