
1.本发明属于人工智能技术领域,尤其涉及一种文件处理方法、装置、计算机可读存储介质及服务器。
背景技术:2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。在现代金融企业应用当中,在复杂的业务场景下,会产生海量的数据文件,相比于传统金融企业,数据文件呈现数倍、数十倍、甚至上百倍的迅猛增长,而目前的金融企业所采用的仍然是传统的文件处理方式,即按固有的顺序对文件进行处理,上一文件的全部处理过程完成之后,再进行下一文件的处理,这些方式针对的是小数据量下的文件处理,处理效率较低,越来越难以满足当前对海量文件的处理需求。
技术实现要素: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.本发明实施例的第二方面提供了一种文件处理装置,可以包括:
54.文件轮询作业模块,用于通过预设的文件轮询作业节点从指定的目标文件源中获取文件信息,根据获取的文件信息生成对应的文件任务信息,并将生成的文件任务信息存储入预设的文件任务表中;
55.文件下载作业模块,用于通过预设的文件下载作业节点读取所述文件任务表中的文件任务信息,并根据读取的文件任务信息从所述目标文件源中下载对应的文件;
56.文件校验作业模块,用于通过预设的文件校验作业节点调度预设的第一数目的文
件校验作业分片分别对下载的文件进行校验操作;
57.文件入库作业模块,用于通过预设的文件入库作业节点调度预设的第二数目的文件入库作业分片分别对校验操作后的文件进行文件解析,并将得到的文件解析信息插入预设的库表中;
58.文件上传作业模块,用于通过预设的文件上传作业节点调度预设的第三数目的文件上传作业分片分别将所述库表中的文件解析信息生成本地文件,并将生成的本地文件上传至预设的分布式文件系统。
59.在第二方面的一种具体实现方式中,所述文件轮询作业模块具体可以包括:
60.正则匹配单元,用于将获取的文件信息与在预设文件配置表中注册的文件配置数据进行正则匹配;
61.第一异常信息记录单元,用于若匹配不成功,则在预设的异常信息表中记录异常信息;
62.轮询标志位提取单元,用于若匹配成功,则提取匹配到的文件配置数据中的轮询标志位;
63.第二异常信息记录单元,用于若所述轮询标志位为预设的第一取值,则在所述异常信息表中记录异常信息;
64.文件任务信息生成单元,用于若所述轮询标志位为预设的第二取值,则根据匹配到的文件配置数据生成文件任务信息。
65.在第二方面的一种具体实现方式中,所述文件轮询作业模块还可以包括:
66.文件任务信息查询单元,用于在所述文件任务表中查询是否存在与生成的文件任务信息相同的文件任务信息;
67.第三异常信息记录单元,用于若在所述文件任务表中存在相同的文件任务信息,则在预设的异常信息表中记录异常信息;
68.文件任务信息存储单元,用于若在所述文件任务表中不存在相同的文件任务信息,则将生成的文件任务信息存储入预设的文件任务表中。
69.在第二方面的一种具体实现方式中,所述文件下载作业模块具体可以包括:
70.文件任务信息读取单元,用于根据预设的读取条件读取所述文件任务表中的文件任务信息;
71.下载标志位提取单元,用于提取读取的文件任务信息中的下载标志位;
72.下载状态更新单元,用于若所述下载标志位为预设的第一取值,则将读取的文件任务信息的状态更新为跳过下载状态;
73.完整性检查单元,用于若所述下载标志位为预设的第二取值,则对所述目标文件源中对应的文件进行完整性检查;
74.第四异常信息记录单元,用于若完整性检查未通过,则在预设的异常信息表中记录异常信息;
75.文件下载单元,用于若完整性检查通过,则从所述目标文件源中下载对应的文件,并将下载的文件上传至所述分布式文件系统的指定目录中;
76.转移文件指令发送单元,用于向所述目标文件源发送转移文件指令,将对应的源文件转移至预设的备份目录中。
77.在第二方面的一种具体实现方式中,所述文件校验作业模块具体可以包括:
78.第一分片子模块,用于根据各个文件校验作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件校验作业分片分别对应的文件任务信息列表;
79.文件校验子模块,用于调度各个文件校验作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行校验操作;
80.在第二方面的一种具体实现方式中,所述文件校验子模块具体可以包括:
81.校验标志位提取单元,用于提取目标文件任务信息中的校验标志位;所述目标文件任务信息为文件任务信息列表中的任意一条文件任务信息;
82.跳过校验状态更新单元,用于若所述校验标志位为预设的第一取值,则将所述目标文件任务信息的状态更新为跳过校验状态;
83.目标文件获取单元,用于若所述校验标志位为预设的第二取值,则从所述分布式文件系统中获取目标文件;所述目标文件为与所述目标文件任务信息对应的文件;
84.参数解析单元,用于分别解析第一参数和第二参数;所述第一参数为所述目标文件任务信息中的参数,所述第二参数为所述目标文件中的参数;
85.第五异常信息记录单元,用于若所述第一参数与所述第二参数不一致,则在预设的异常信息表中记录异常信息;
86.校验完成状态更新单元,用于若所述第一参数与所述第二参数一致,则将所述目标文件任务信息的状态更新为校验完成状态。
87.在第二方面的一种具体实现方式中,所述文件入库作业模块具体可以包括:
88.第二分片子模块,用于根据各个文件入库作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件入库作业分片分别对应的文件任务信息列表;
89.文件入库子模块,用于调度各个文件入库作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行入库操作;
90.在第二方面的一种具体实现方式中,所述文件入库子模块具体可以包括:
91.入库标志位提取单元,用于提取目标文件任务信息中的入库标志位;所述目标文件任务信息为文件任务信息列表中的任意一条文件任务信息;
92.跳过入库状态更新单元,用于若所述入库标志位为预设的第一取值,则将所述目标文件任务信息的状态更新为跳过入库状态;
93.文件解析单元,用于若所述入库标志位为预设的第二取值,则对目标文件进行文件解析,得到文件解析信息;所述目标文件为与所述目标文件任务信息对应的文件;
94.文件入库单元,用于将所述文件解析信息插入目标库表中;所述目标库表为与所述目标文件任务信息中配置的表名对应的库表。
95.在第二方面的一种具体实现方式中,所述文件上传作业模块具体可以包括:
96.第三分片子模块,用于根据各个文件上传作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件上传作业分片分别对应的文件任务信息列表;
97.文件上传子模块,用于调度各个文件上传作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行上传操作;
98.在第二方面的一种具体实现方式中,所述文件上传子模块具体可以包括:
99.上传标志位提取单元,用于提取目标文件任务信息中的上传标志位;所述目标文
件任务信息为文件任务信息列表中的任意一条文件任务信息;
100.跳过上传状态更新单元,用于若所述上传标志位为预设的第一取值,则将所述目标文件任务信息的状态更新为跳过上传状态;
101.文件上传单元,用于若所述上传标志位为预设的第二取值,则将目标库表中的文件解析信息生成本地文件,并将生成的本地文件上传至所述分布式文件系统中;所述目标库表为与所述目标文件任务信息中配置的表名对应的库表。
102.本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种文件处理方法的步骤。
103.本发明实施例的第四方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种文件处理方法的步骤。
104.本发明实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述任一种文件处理方法的步骤。
105.本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过预设的文件轮询作业节点从指定的目标文件源中获取文件信息,根据获取的文件信息生成对应的文件任务信息,并将生成的文件任务信息存储入预设的文件任务表中;通过预设的文件下载作业节点读取所述文件任务表中的文件任务信息,并根据读取的文件任务信息从所述目标文件源中下载对应的文件;通过预设的文件校验作业节点调度预设的第一数目的文件校验作业分片分别对下载的文件进行校验操作;通过预设的文件入库作业节点调度预设的第二数目的文件入库作业分片分别对校验操作后的文件进行文件解析,并将得到的文件解析信息插入预设的库表中;通过预设的文件上传作业节点调度预设的第三数目的文件上传作业分片分别将所述库表中的文件解析信息生成本地文件,并将生成的本地文件上传至预设的分布式文件系统。在本发明实施例中,通过不同的作业节点将整个文件处理流程串联起来,并通过分片作业实现并行处理,极大提升了文件处理效率。
附图说明
106.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
107.图1为本发明实施例中一种文件处理方法的一个实施例流程图;
108.图2为本发明实施例中一种文件处理装置的一个实施例结构图;
109.图3为本发明实施例中一种服务器的示意框图。
具体实施方式
110.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域
普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
111.本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
112.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
113.本发明实施例的执行主体可以为基于人工智能的服务器,用于执行本发明实施例中的文件处理方法。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
114.在本发明实施例中,可以预先分别设置若干个作业节点(job)来分阶段地执行对应的文件处理流程,这些作业节点可以包括但不限于文件轮询作业节点、文件下载作业节点、文件校验作业节点、文件入库作业节点和文件上传作业节点。
115.请参阅图1,本发明实施例中一种文件处理方法的一个实施例可以包括:
116.步骤s101、通过预设的文件轮询作业节点从指定的目标文件源中获取文件信息,根据获取的文件信息生成对应的文件任务信息,并将生成的文件任务信息存储入预设的文件任务表中。
117.在本发明实施例中,所述文件轮询作业节点可以优选采用定时轮询,即每隔预定的时间间隔即从所述目标文件源中获取文件信息,所述时间间隔可以根据实际情况进行设置,例如可以将其设置为1分钟、5分钟、10分钟等,本发明实施例对此不作具体限定。
118.所述目标文件源可以根据实际情况进行设置,例如,可以为sftp(secure file transfer protocol)文件源,所述目标文件源的地址以及目录都配置在apollo等分布式配置中心中,所述文件轮询作业节点可以从所述目标文件源中获取当前存在的文件信息。
119.在获取文件信息后,所述文件轮询作业节点可以根据获取的文件信息生成对应的文件任务信息。具体地,可以将获取的文件信息与在预设的文件配置表(记为t_aplus_cap_file_config)中注册的文件配置数据进行正则匹配,其中,所述文件配置表存储在预设的数据库中,该数据库可以为acap数据库或其它的数据库,本发明实施例对此不作具体限定。匹配规则为根据文件信息中的文件名与文件配置数据中的文件名模版字段(记为file_template)进行正则匹配,例如:postingn_20210413_31_001.txt该文件名将匹配到file_template=^po stingn_d{8}_31_001.txt$的文件配置数据。
120.若匹配不成功,则在预设的异常信息表中记录异常信息。在本发明实施例中,因为各个作业节点大部分是间隔执行,并且有些作业节点是可以分片执行的,如果某一个分片在执行过程中遇到一些异常而导致程序中断的话,那后面的任务就无法得到有效执行。为了尽可能的让更多的任务顺利执行,此处设计了异常信息表,在运行过程中如果遇到一些
非技术异常,例如业务异常、校验异常以及状态异常等等,会生成对应的异常信息存入异常记录表中,这样就可以借助专门的异常监控平台来监控该异常信息表,来及时触发告警通知运维人员来解决异常,而作业节点本身会继续运行下去,尽可能确保作业执行的顺畅性。
121.若匹配成功,则提取匹配到的文件配置数据中的轮询标志位(记为polling_flag),该标志位用于表示是否轮询。当其为预设的第一取值时表示不进行轮询,即意味着该文件不应该通过轮询方式获取,此时可以在所述异常信息表中记录异常信息。当其为预设的第二取值时表示进行轮询,此时可以根据匹配到的文件配置数据生成文件任务信息。所述第一取值和所述第二取值均可以根据实际情况进行设置,例如,可以将所述第一取值设置为0,将所述第二取值设置为1,当然,也可以进行其它的取值设置,本发明实施例对此不作具体限定。
122.在生成文件任务信息之后,还可以进行防重校验,防重条件为“文件任务信息是否重复存在”,具体地,可以在预设的文件任务表(记为t_aplus_cap_file_task)中查询是否存在与生成的文件任务信息相同的文件任务信息,若在所述文件任务表中存在相同的文件任务信息,则在所述异常信息表中记录异常信息;若在所述文件任务表中不存在相同的文件任务信息,则将生成的文件任务信息存储入所述文件任务表中,并将该文件任务信息的状态设置为初始状态。
123.步骤s102、通过预设的文件下载作业节点读取所述文件任务表中的文件任务信息,并根据读取的文件任务信息从所述目标文件源中下载对应的文件。
124.所述文件下载作业节点可以根据预设的读取条件读取所述文件任务表中的文件任务信息,具体的读取条件可以根据实际情况进行设置,例如,读取条件可以为:文件生成日期为指定日期,文件任务信息的状态为初始状态,即:batch_date=批量日期,file_status=初始状态。
125.如果读取到文件任务信息,则针对每一条文件任务信息均进行如下处理逻辑:首先提取读取的文件任务信息中的下载标志位(记为download_flag),该标志位用于表示是否下载。当其为第一取值时表示不进行下载,此时可以将读取的文件任务信息的状态更新为跳过下载状态(记为file_download_skipped),继续下一条文件任务信息的逻辑处理;当其为第二取值时表示进行下载,为了防止下载过程中,文件正好在上传,可以对所述目标文件源中对应的文件进行完整性检查。文件完整性检查逻辑具体为:连续3次,每次间隔0.1s,从所述目标文件源中获取该文件的大小,如果发现文件大小发生变化,则认为该文件还不完整,完整性检查未通过,在所述异常信息表中记录异常信息,继续下一条文件任务信息的逻辑处理。反之,如果发现文件大小没有发生变化,则认为该文件已完整,完整性检查通过。
126.完整性检查通过后,可以根据所述配置中心中配置的目标文件源信息结合文件名,从所述目标文件源中下载对应的文件到本地,并将下载的文件上传至预设的分布式文件系统(如ceph)的指定目录中。该目录的约定格式可以根据实际情况进行设置,例如,可以设置为:000000000000/20210308/filename。在下载完成后,可以计算文件的md5值,进行一个事前和事后的文件大小校验。之后,可以向所述目标文件源发送转移文件指令,将对应的源文件转移至预设的备份目录(如bak目录)中,该备份目录可以在所述配置中心中进行配置。完成以上过程后,即可将该文件任务信息的状态更新为下载完成状态。
127.步骤s103、通过预设的文件校验作业节点调度预设的第一数目的文件校验作业分
片分别对下载的文件进行校验操作。
128.在本发明实施例中,所述文件校验作业节点可以预先设置第一数目的文件校验作业分片,每个分片最终对应的都是执行机上的一个线程,每次作业执行时,都可以通过预设的分片算法(如取模等)来确定本次执行过程中,每个分片应该执行哪些任务,这样可以做到一次可以处理多条任务,大大提升处理效率。所述第一数目可以根据实际情况进行设置,例如可以将其设置为5、10、20或者其它取值。
129.具体地,可以根据各个文件校验作业分片的分片号和各个下载的文件的文件号(记为file number),使用预设的分片算法确定各个文件校验作业分片分别对应的文件任务信息列表,每个文件任务信息列表中包括若干条文件任务信息。
130.然后,调度各个文件校验作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行校验操作,从而实现运行一次处理多个文件的目的,提升处理效率。
131.以任意一个文件校验作业分片对其对应的文件任务信息列表中的任意一条文件任务信息(记为目标文件任务信息)的校验操作过程为例,首先可以提取所述目标文件任务信息中的校验标志位(记为check_flag),该标志位用于表示是否校验。当其为第一取值时表示不进行校验,此时可以将所述目标文件任务信息的状态更新为跳过校验状态(记为file_check_skipped),继续下一条文件任务信息的逻辑处理;当其为第二取值时表示进行校验,此时从所述分布式文件系统中获取目标文件下载到本地,所述目标文件为与所述目标文件任务信息对应的文件。分别解析第一参数和第二参数,所述第一参数为所述目标文件任务信息中的贷记金额、借记金额、以及轧差总金额等参数,所述第二参数为所述目标文件中的贷记金额、借记金额、以及轧差总金额等参数。若参数解析失败,则在所述异常信息表中记录异常信息;若参数解析成功,则将所述第一参数和所述第二参数进行比对,若所述第一参数与所述第二参数不一致,则校验失败,在预设的异常信息表中记录异常信息;若所述第一参数与所述第二参数一致,则校验成功,将所述目标文件任务信息的状态更新为校验完成状态。
132.步骤s104、通过预设的文件入库作业节点调度预设的第二数目的文件入库作业分片分别对校验操作后的文件进行文件解析,并将得到的文件解析信息插入预设的库表中。
133.在本发明实施例中,所述文件入库作业节点可以预先设置第二数目的文件入库作业分片,所述第二数目可以根据实际情况进行设置,例如可以将其设置为5、10、20或者其它取值。
134.所述文件入库作业节点可以根据各个文件入库作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件入库作业分片分别对应的文件任务信息列表,每个文件任务信息列表中包括若干条文件任务信息。
135.然后,调度各个文件入库作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行入库操作,从而实现运行一次处理多个文件的目的,提升处理效率。
136.以任意一个文件入库作业分片对其对应的文件任务信息列表中的任意一条文件任务信息(记为目标文件任务信息)的入库操作过程为例,首先可以提取所述目标文件任务信息中的入库标志位,该标志位用于表示是否入库。当其为第一取值时表示不进行入库,此
时可以将所述目标文件任务信息的状态更新为跳过入库状态,继续下一条文件任务信息的逻辑处理;当其为第二取值时表示进行入库,此时可以对目标文件进行文件解析,得到每行记录的卡号、账号、以及客户号等文件解析信息,所述目标文件为与所述目标文件任务信息对应的文件。在文件解析之后,可以将所述文件解析信息插入目标库表中,所述目标库表为与所述目标文件任务信息中配置的表名对应的库表。
137.若文件入库失败,则在所述异常信息表中记录异常信息;若文件入库成功,则将所述目标文件任务信息的状态更新为入库成功状态。
138.步骤s105、通过预设的文件上传作业节点调度预设的第三数目的文件上传作业分片分别将所述库表中的文件解析信息生成本地文件,并将生成的本地文件上传至预设的分布式文件系统。
139.在本发明实施例中,所述文件上传作业节点可以预先设置第三数目的文件上传作业分片,所述第三数目可以根据实际情况进行设置,例如可以将其设置为5、10、20或者其它取值。
140.所述文件上传作业节点可以根据各个文件上传作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件上传作业分片分别对应的文件任务信息列表,每个文件任务信息列表中包括若干条文件任务信息。
141.然后,调度各个文件上传作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行上传操作,从而实现运行一次处理多个文件的目的,提升处理效率。
142.以任意一个文件上传作业分片对其对应的文件任务信息列表中的任意一条文件任务信息(记为目标文件任务信息)的上传操作过程为例,首先可以提取所述目标文件任务信息中的上传标志位,该标志位用于表示是否上传。当其为第一取值时表示不进行上传,此时可以将所述目标文件任务信息的状态更新为跳过上传状态,继续下一条文件任务信息的逻辑处理;当其为第二取值时表示进行上传,此时可以将目标库表中的文件解析信息生成本地文件,并将生成的本地文件上传至所述分布式文件系统中,所述目标库表为与所述目标文件任务信息中配置的表名对应的库表。
143.若文件上传失败,则在所述异常信息表中记录异常信息;若文件上传成功,则将所述目标文件任务信息的状态更新为上传成功状态。
144.需要注意的是,为了实现将作业调度到分布式环境中的多台执行机上进行执行的目的,本发明实施例可以借助分布式调度工具来实现。具体采用何种分布式调度工具可以根据实际情况进行设置,本发明实施例对此不作具体限定。
145.综上所述,本发明实施例通过预设的文件轮询作业节点从指定的目标文件源中获取文件信息,根据获取的文件信息生成对应的文件任务信息,并将生成的文件任务信息存储入预设的文件任务表中;通过预设的文件下载作业节点读取所述文件任务表中的文件任务信息,并根据读取的文件任务信息从所述目标文件源中下载对应的文件;通过预设的文件校验作业节点调度预设的第一数目的文件校验作业分片分别对下载的文件进行校验操作;通过预设的文件入库作业节点调度预设的第二数目的文件入库作业分片分别对校验操作后的文件进行文件解析,并将得到的文件解析信息插入预设的库表中;通过预设的文件上传作业节点调度预设的第三数目的文件上传作业分片分别将所述库表中的文件解析信
息生成本地文件,并将生成的本地文件上传至预设的分布式文件系统。在本发明实施例中,通过不同的作业节点将整个文件处理流程串联起来,并通过分片作业实现并行处理,极大提升了文件处理效率。
146.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
147.对应于上文实施例所述的一种文件处理方法,图2示出了本发明实施例提供的一种文件处理装置的一个实施例结构图。
148.本实施例中,一种文件处理装置可以包括:
149.文件轮询作业模块201,用于通过预设的文件轮询作业节点从指定的目标文件源中获取文件信息,根据获取的文件信息生成对应的文件任务信息,并将生成的文件任务信息存储入预设的文件任务表中;
150.文件下载作业模块202,用于通过预设的文件下载作业节点读取所述文件任务表中的文件任务信息,并根据读取的文件任务信息从所述目标文件源中下载对应的文件;
151.文件校验作业模块203,用于通过预设的文件校验作业节点调度预设的第一数目的文件校验作业分片分别对下载的文件进行校验操作;
152.文件入库作业模块204,用于通过预设的文件入库作业节点调度预设的第二数目的文件入库作业分片分别对校验操作后的文件进行文件解析,并将得到的文件解析信息插入预设的库表中;
153.文件上传作业模块205,用于通过预设的文件上传作业节点调度预设的第三数目的文件上传作业分片分别将所述库表中的文件解析信息生成本地文件,并将生成的本地文件上传至预设的分布式文件系统。
154.在本发明实施例的一种具体实现方式中,所述文件轮询作业模块具体可以包括:
155.正则匹配单元,用于将获取的文件信息与在预设文件配置表中注册的文件配置数据进行正则匹配;
156.第一异常信息记录单元,用于若匹配不成功,则在预设的异常信息表中记录异常信息;
157.轮询标志位提取单元,用于若匹配成功,则提取匹配到的文件配置数据中的轮询标志位;
158.第二异常信息记录单元,用于若所述轮询标志位为预设的第一取值,则在所述异常信息表中记录异常信息;
159.文件任务信息生成单元,用于若所述轮询标志位为预设的第二取值,则根据匹配到的文件配置数据生成文件任务信息。
160.在本发明实施例的一种具体实现方式中,所述文件轮询作业模块还可以包括:
161.文件任务信息查询单元,用于在所述文件任务表中查询是否存在与生成的文件任务信息相同的文件任务信息;
162.第三异常信息记录单元,用于若在所述文件任务表中存在相同的文件任务信息,则在预设的异常信息表中记录异常信息;
163.文件任务信息存储单元,用于若在所述文件任务表中不存在相同的文件任务信
息,则将生成的文件任务信息存储入预设的文件任务表中。
164.在本发明实施例的一种具体实现方式中,所述文件下载作业模块具体可以包括:
165.文件任务信息读取单元,用于根据预设的读取条件读取所述文件任务表中的文件任务信息;
166.下载标志位提取单元,用于提取读取的文件任务信息中的下载标志位;
167.下载状态更新单元,用于若所述下载标志位为预设的第一取值,则将读取的文件任务信息的状态更新为跳过下载状态;
168.完整性检查单元,用于若所述下载标志位为预设的第二取值,则对所述目标文件源中对应的文件进行完整性检查;
169.第四异常信息记录单元,用于若完整性检查未通过,则在预设的异常信息表中记录异常信息;
170.文件下载单元,用于若完整性检查通过,则从所述目标文件源中下载对应的文件,并将下载的文件上传至所述分布式文件系统的指定目录中;
171.转移文件指令发送单元,用于向所述目标文件源发送转移文件指令,将对应的源文件转移至预设的备份目录中。
172.在本发明实施例的一种具体实现方式中,所述文件校验作业模块具体可以包括:
173.第一分片子模块,用于根据各个文件校验作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件校验作业分片分别对应的文件任务信息列表;
174.文件校验子模块,用于调度各个文件校验作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行校验操作;
175.在本发明实施例的一种具体实现方式中,所述文件校验子模块具体可以包括:
176.校验标志位提取单元,用于提取目标文件任务信息中的校验标志位;所述目标文件任务信息为文件任务信息列表中的任意一条文件任务信息;
177.跳过校验状态更新单元,用于若所述校验标志位为预设的第一取值,则将所述目标文件任务信息的状态更新为跳过校验状态;
178.目标文件获取单元,用于若所述校验标志位为预设的第二取值,则从所述分布式文件系统中获取目标文件;所述目标文件为与所述目标文件任务信息对应的文件;
179.参数解析单元,用于分别解析第一参数和第二参数;所述第一参数为所述目标文件任务信息中的参数,所述第二参数为所述目标文件中的参数;
180.第五异常信息记录单元,用于若所述第一参数与所述第二参数不一致,则在预设的异常信息表中记录异常信息;
181.校验完成状态更新单元,用于若所述第一参数与所述第二参数一致,则将所述目标文件任务信息的状态更新为校验完成状态。
182.在本发明实施例的一种具体实现方式中,所述文件入库作业模块具体可以包括:
183.第二分片子模块,用于根据各个文件入库作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件入库作业分片分别对应的文件任务信息列表;
184.文件入库子模块,用于调度各个文件入库作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行入库操作;
185.在本发明实施例的一种具体实现方式中,所述文件入库子模块具体可以包括:
186.入库标志位提取单元,用于提取目标文件任务信息中的入库标志位;所述目标文件任务信息为文件任务信息列表中的任意一条文件任务信息;
187.跳过入库状态更新单元,用于若所述入库标志位为预设的第一取值,则将所述目标文件任务信息的状态更新为跳过入库状态;
188.文件解析单元,用于若所述入库标志位为预设的第二取值,则对目标文件进行文件解析,得到文件解析信息;所述目标文件为与所述目标文件任务信息对应的文件;
189.文件入库单元,用于将所述文件解析信息插入目标库表中;所述目标库表为与所述目标文件任务信息中配置的表名对应的库表。
190.在本发明实施例的一种具体实现方式中,所述文件上传作业模块具体可以包括:
191.第三分片子模块,用于根据各个文件上传作业分片的分片号和各个下载的文件的文件号,使用预设的分片算法确定各个文件上传作业分片分别对应的文件任务信息列表;
192.文件上传子模块,用于调度各个文件上传作业分片分别遍历各自对应的文件任务信息列表,对文件任务信息列表中的各个文件进行上传操作;
193.在本发明实施例的一种具体实现方式中,所述文件上传子模块具体可以包括:
194.上传标志位提取单元,用于提取目标文件任务信息中的上传标志位;所述目标文件任务信息为文件任务信息列表中的任意一条文件任务信息;
195.跳过上传状态更新单元,用于若所述上传标志位为预设的第一取值,则将所述目标文件任务信息的状态更新为跳过上传状态;
196.文件上传单元,用于若所述上传标志位为预设的第二取值,则将目标库表中的文件解析信息生成本地文件,并将生成的本地文件上传至所述分布式文件系统中;所述目标库表为与所述目标文件任务信息中配置的表名对应的库表。
197.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
198.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
199.图3示出了本发明实施例提供的一种服务器的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。
200.在本实施例中,所述服务器3可以包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机可读指令32,例如执行上述的文件处理方法的计算机可读指令。所述处理器30执行所述计算机可读指令32时实现上述各个文件处理方法实施例中的步骤,例如图1所示的步骤s101至s105。或者,所述处理器30执行所述计算机可读指令32时实现上述各装置实施例中各模块/单元的功能,例如图2示模块201至205的功能。
201.示例性的,所述计算机可读指令32可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令32在所述服务器3中的执行过程。
202.所述处理器30可以是中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路
(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
203.所述存储器31可以是所述服务器3的内部存储单元,例如服务器3的硬盘或内存。所述存储器31也可以是所述服务器3的外部存储设备,例如所述服务器3上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器31还可以既包括所述服务器3的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机可读指令以及所述服务器3所需的其它指令和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
204.在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
205.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
206.以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。