批量数据整合方法、装置、存储介质及设备与流程

文档序号:14185704
批量数据整合方法、装置、存储介质及设备与流程
本发明涉及数据处理
技术领域
,尤其涉及一种批量数据整合方法、装置、存储介质及设备。
背景技术
:目前,若客户通过网银查询个人相关信息,通常会有很多批量文件从源系统传输到DCDS(文件分发中转系统),再从DCDS传输至网银系统,最终由前端显示相关信息。该类批量文件的数据量巨大,且对时效性要求很高。所以,网银需要批量处理工具,进行高效的数据加载,以保证前端应用运行正常。然而,目前采用sh批量处理工具加载数据,只是脚本程序在处理文件,基本上是几个脚本解决一切,从时效性、可维护性、文件兼容性等方面都无法满足要求。技术实现要素:本发明提供一种批量数据整合方法、装置、存储介质及设备,以满足时效性、可维护性、文件兼容性等方面要求。本发明实施例提供一种批量数据整合方法,包括:利用调度组件接收来自上游系统的数据文件,并将数据文件分发给监控组件;利用监控组件对数据文件开启内存锁,并转发给执行组件;利用执行组件对数据文件进行包括解压缩、改名、备份及删除中的一种或多种处理,并转发给业务组件;利用业务组件对数据文件进行业务逻辑处理,并关闭内存锁;其中,调度组件、监控组件、执行组件及业务组件是根据数据文件的业务类型预先定义;多个不同业务类型的数据文件利用其各自的调度组件、监控组件、执行组件及业务组件并行进行数据整合。一个实施例中,利用执行组件对数据文件进行包括解压缩、改名、备份及删除中的一种或多种处理,并转发给业务组件之前,还包括:利用监控组件对数据文件进行容错处理。一个实施例中,调度组件、监控组件、执行组件及业务组件是以Java语言为基础,同时使用Sh语言预先定义。一个实施例中,调度组件、监控组件、执行组件及业务组件中的多个文件是根据业务类型的信息命名。本发明实施例还提供一种批量数据整合装置,包括:调度单元,用于:利用调度组件接收来自上游系统的数据文件,并将数据文件分发给监控组件;监控单元,用于:利用监控组件对数据文件开启内存锁,并转发给执行组件;执行单元,用于:利用执行组件对数据文件进行包括解压缩、改名、备份及删除中的一种或多种处理,并转发给业务组件;业务单元,用于:利用业务组件对数据文件进行业务逻辑处理,并关闭内存锁;组件定义单元,用于执行:调度组件、监控组件、执行组件及业务组件是根据数据文件的业务类型预先定义;并行整合单元,用于执行:多个不同业务类型的数据文件利用其各自的调度组件、监控组件、执行组件及业务组件并行进行数据整合。一个实施例中,监控单元,还用于:利用监控组件对数据文件进行容错处理。一个实施例中,组件定义单元,还用于执行:调度组件、监控组件、执行组件及业务组件是以Java语言为基础,同时使用Sh语言预先定义。一个实施例中,组件定义单元,还用于执行:调度组件、监控组件、执行组件及业务组件中的多个文件是根据业务类型的信息命名。本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述各实施例所述方法的步骤。本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述各实施例所述方法的步骤。本发明实施例的批量数据整合方法、装置、存储介质及设备,通过预先定义调度组件、监控组件、执行组件及业务组件进行数据整合处理,每个组件只完成自己的任务并把交付物传至下游,组件分工、协同配合,实现了数据处理的模块化管理,在系统出现问题时,能够快速定位并解决问题,提高了维护效率,提升了运维人员的使用体验。通过预先定义的组件实现了文件传输时的完整性、文件解压缩、内存锁等公共机制,并可向开发人员屏蔽这些公共机制,使得开发人员只需关注自己的业务规则,只在自己的业务组件中实现自己的业务逻辑即可,极大降低了开发成本,提升了开发效率。不同业务类型的数据文件利用其各自的组件可以高度并行进行数据整合处理,处理效率高,不同类文件的组件互不干扰,文件兼容性好。从而本发明能够保证开发简单,提升了维护的客户体验,能够兼容各类的业务需求,能够同时满足时效性、可维护性、文件兼容性等方面要求。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本发明一实施例的批量数据整合方法的流程示意图;图2是本发明另一实施例的批量数据整合方法的流程示意图;图3是本发明又一实施例的批量数据整合方法流程示意图;图4是本发明一实施例的批量数据整合装置的结构示意图;图5是本发明一实施例的计算机设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。图1是本发明一实施例的批量数据整合方法的流程示意图。如图1所示,本实施例的批量数据整合方法,可包括:步骤S110:利用调度组件接收来自上游系统的数据文件,并将数据文件分发给监控组件;步骤S120:利用监控组件对数据文件开启内存锁,并转发给执行组件;步骤S130:利用执行组件对数据文件进行包括解压缩、改名、备份及删除中的一种或多种处理,并转发给业务组件;步骤S140:利用业务组件对数据文件进行业务逻辑处理,并关闭内存锁。其中,调度组件、监控组件、执行组件及业务组件是根据数据文件的业务类型预先定义;多个不同业务类型的数据文件利用其各自的调度组件、监控组件、执行组件及业务组件并行进行数据整合。本发明实施例的批量数据整合方法可以实现批量数据的加载、过滤及转换等整合处理。例如,利用调度组件接收来自上游系统的数据文件,可以实现数据文件的数据加载;利用执行组件对数据文件进行改名处理,可以实现数据转换;利用业务组件对数据文件进行业务逻辑处理,可以实现数据过滤。在上述步骤S110中,该上游系统例如可以是银行的核心系统。调度组件发现数据文件后,可以将将数据文件分派给监控组件。在上述步骤S120中,利用监控组件可以对指定的数据文件增加内存锁。在上述步骤S130中,利用执行组件可以对数据文件进行解压缩、改指定处理文本程序名、备份及删除等处理。执行组件还可以对数据文件进行压缩处理。在上述步骤S140中,业务组件可以是批量文件处理组件。程序员只需在业务组件中指定处理规则,例如包括:业务逻辑、文件名、日志目录等。业务类型例如可以是客户信息、账户信息等。不同业务类型的数据文件可以具有自己的调度组件、监控组件、执行组件及业务组件。不同业务类型的数据文件的组件(调度组件、监控组件、执行组件及业务组件)的路径、处理内容可不同。不同业务类型的数据文件利用其各自的调度组件、监控组件、执行组件及业务组件并行进行如同上述步骤S110~S140的数据整合处理,不同组件之间和不同数据文件的组件之间可互不干扰。实施例中,可以按照每类批量文件特殊的业务规则,定义各自的业务组件,即:在其各自的业务组件中实现其各自的业务逻辑。这样可以结合网银的特点,研发相应的批量数据整合工具。本实施例中,通过预先定义调度组件、监控组件、执行组件及业务组件进行数据整合处理,每个组件只完成自己的任务并把交付物传至下游,组件分工、协同配合,实现了数据处理的模块化管理,在系统出现问题时,能够快速定位并解决问题,提高了维护效率,提升了运维人员的使用体验。通过预先定义的组件实现了文件传输时的完整性、文件解压缩、内存锁等公共机制,并可向开发人员屏蔽这些公共机制,使得开发人员只需关注自己的业务规则,只在自己的业务组件中实现自己的业务逻辑即可,极大降低了开发成本,提升了开发效率。不同业务类型的数据文件利用其各自的组件可以高度并行进行数据整合处理,处理效率高,不同类文件的组件互不干扰。本实施例系统实现与业务逻辑分类,能够保证开发简单,投产时配置调整简单,提升了维护的客户体验,且能够兼容各类的业务需求。因此,本发明实施例高效、快捷地加载数据,保证前端应用运行正常。实施例中,调度组件Subject、监控组件Observer、执行组件Finder及业务组件Collector的定义和功能可如下表1所示:表1组件的定义和功能这些组件中,前三个组件(调度组件Subject、监控组件Observer及执行组件Finder)可通过Java语言实现的,而Collector组件可同时使用java和sh语言。Java语言是编译型语言,需要逐层向下解析成操作系统可以识别的语言,效率偏低。但脚本语言是操作系统可以直接识别的语言,在Java程序里调用脚本拉近了Java和操作系统的距离,实现了业务功能、提高了系统的效率。本实施例兼顾了“模块化管理”和“高效”。具体实施例中,执行组件的Collector.java源代码中可包括如下调用脚本:实施例中,业务组件通过程序开发实现,调度组件、监控组件及执行组件通过配置相关参数实现。以此,能够降低开发的工作量。实施例中,新增一类数据文件时,定义属于该类数据文件自己的调度组件、监控组件、执行组件及业务组件。不同类文件的组件互不隶属,互不干扰。实施例中,将批量数据这个方法应用/移植到不同的环境时,例如测试环境、开发环境等,只需要调整路径。以此,可以减小工作量。实施例中,取消业务功能时,注释掉调度组件。以此,可以减小工作量。实施例中,可以采用spring等开源工具开发批量处理工具实施上述步骤S110~S140。图2是本发明另一实施例的批量数据整合方法的流程示意图。如图2所示,图1所示的批量数据整合方法,在步骤S130之前,即利用执行组件对数据文件进行包括解压缩、改名、备份及删除中的一种或多种处理,并转发给业务组件之前,还可包括:步骤S150:利用监控组件对数据文件进行容错处理。本实施例中,可以利用监控组件对数据文件开启内存锁并进行容错处理后,再转发给执行组件,以此能够提高批量数据处理的容错性,改善现有技术的批量数据处理工具容错性差的问题。实施例中,调度组件、监控组件、执行组件及业务组件是以Java语言为基础,同时使用Sh语言预先定义。Java语言是编译型语言,需要逐层向下解析成操作系统可以识别的语言,效率偏低,但脚本语言是操作系统可以直接识别的语言。四个组件以Java为基础,同时在监控组件、执行组件及业务组件使用sh语言,在Java程序里调用脚本提高了系统的效率,拉近了Java和操作系统的距离,提高了效率。以此兼顾了“模块化管理”和“高效”的优点。实施例中,调度组件、监控组件、执行组件及业务组件中的多个文件是根据业务类型的信息命名。实施例中,依据一套批量处理的开发规范,以指导开发人员进行合理的开发,规范包括:1)Java及Shell类命名规范2)方法命名规范3)配置文件命名规范4)变量命名规范5)Java类编码规范6)语句规范7)注释规范规范是开发的基础。实施例中,除了遵循业界的命名规范,也考虑到软件中心内部特点和统一性。上述实施例的网银开发规范,很好的兼顾了这两点。具体地,例如:A:采用领域术语。如:采用术语Customer来命名类,而不用Client。从而避免自造词汇的出现,降低与外界沟通的成本。B:避免使用长名字,例如最好不超过10个字母,避免使用下划线作为名字的首末字母,因为下划线开头是系统保留格式。C:对于银行核心系统分配给各个外围系统交互的唯一标识符,统一在开发时使用UUID字样,达到了交流时的唯一性。D:做到“程序与业务条线的紧密结合”,规范要求脚本名称、变量名称、接口名称、方法名称都有关键字体现对应的业务功能。如:对于基金类的功能,在名称的中部统一使用“FUND”或“Fund”字样。如表2所示:名称样例脚本名称importFundInfo.sh变量名称getFundnetValues接口名称ActionFundQuerylistener方法名称getFundNetValues表2命名规范样例具体实施例中,制定一套批量处理的开发规范,规范可包括:1)Java及Shell类命名规范:采集类(业务组件)一般可命名为XxxCollector.java,Shell类一般可命名为importXXXX.sh。2)方法命名规范:可同一般Java命名规范中对方法名的要求。3)配置文件命名规范:一般可包含:Discovery.xml:定义了各个Subject、observer、Collector。merge2XXXX.sql:定义了更新数据库SQL。XXXX.ctl:如装载数据过程涉及sqlldr,控制文件的命名一般为XXXX.ctl。4)变量命名规范:同一般Java开发规范中对变量名的要求。5)Java类编码规范:采用UTF-8编码格式。6)语句规范:同一般Java开发规范中对代码风格、缩进的要求。7)注释规范:同一般Java开发规范中对注释的要求,如JavaDoc。图3是本发明又一实施例的批量数据整合方法流程示意图。如图3所示,相关的任务被明确的分给各个“组件”,每个组件只完成自己的任务,并把交付物传给下游。调度组件Subject的通知对象为监控组件Observer,其功能是负责向监控组件Observer分配任务;监控组件Observer的通知对象为执行组件Finder,其功能是负责给文件加内存锁、容错处理等;执行组件Finder的通知对象为业务组件Collector,其功能是使程序员在此实现具体的业务功能。模块化管理下,系统出现异常时,便于定位和解决问题。降低了开发人员的成本,提升了开发效率。前3个组件最大范围的完成了“公共事务”(如文件压缩、解压缩、备份、删除、容错等),使得程序员只需关心在业务组件Collector中特定的业务开发即可。除了业务组件Collector需要开发外,调度组件Subject、执行组件Finder、监控组件Observer只需配置相关的参数即可,降低了开发的工作量。新增一类文件时,定义属于自己的组件调度组件Subject、执行组件Finder、监控组件Observer、业务组件Collector,不同类文件的组件互不隶属,互不干扰。移植到不同的环境时,只需要调整路径即可,工作量很小。这些特点都体现了本发明实施例的高效率和优良的扩展性。定义完备的开发、使用规范,使得开发工作进入了“有法可依、有法必依”的阶段。工具实现文件传输时的完整性、文件压缩解压缩、内存锁等公共机制,并向开发人员屏蔽了这些公共机制。使得开发人员只需关注自己的业务规则,在自己的Collector中实现自己的业务逻辑,极大的降低了开发的成本。不同类型文件的互不干扰,日志文件分开管理,使得不同文件的处理结果分开记录,提高了运维人员的客户体验。本发明实施例的方法,与现有批量数据处理方法相比,具有以下优点:(1)在实现语言方面:现有方法使用Sh语言,调度机制和并行度不高;本发明使用Java和Sh两种语言,调度机制和并行度显著提高,支持多种压缩格式。(2)在扩展性方面:现有方法新增批量文件时程序改动大,扩展性较差;本发明新增批量文件时新增组件定义并适配业务逻辑即可,扩展性好。(3)在开发人员非功能意识方面:现有方法中不太关注,本发明中得到强化,有利于提高开发及维护效率。(4)在系统管理方面:现有方法要额外增加监控程序,监控程序是否正常;本发明自带监控程序,监控程序是否正常。基于与图1所示的批量数据整合方法相同的发明构思,本申请实施例还提供了一种批量数据整合装置,如下面实施例所述。由于该批量数据整合装置解决问题的原理与批量数据整合方法相似,因此该批量数据整合装置的实施可以参见批量数据整合方法的实施,重复之处不再赘述。图4是本发明一实施例的批量数据整合装置的结构示意图。如图4所示,本实施例的批量数据整合装置,可包括:调度单元210、监控单元220、执行单元230、业务单元240、组件定义单元250和并行整合单元260。调度单元210、监控单元220、执行单元230及业务单元240顺序连接,并均与组件定义单元250和并行整合单元260分别连接。调度单元210,用于:利用调度组件接收来自上游系统的数据文件,并将数据文件分发给监控组件;监控单元220,用于:利用监控组件对数据文件开启内存锁,并转发给执行组件;执行单元230,用于:利用执行组件对数据文件进行包括解压缩、改名、备份及删除中的一种或多种处理,并转发给业务组件;业务单元240,用于:利用业务组件对数据文件进行业务逻辑处理,并关闭内存锁;组件定义单元250,用于执行:调度组件、监控组件、执行组件及业务组件是根据数据文件的业务类型预先定义;并行整合单元260,用于执行:多个不同业务类型的数据文件利用其各自的调度组件、监控组件、执行组件及业务组件并行进行数据整合。实施例中,监控单元220,还可用于:利用监控组件对数据文件进行容错处理。实施例中,组件定义单元250,还可用于执行:调度组件、监控组件、执行组件及业务组件是以Java语言为基础,同时使用Sh语言预先定义。实施例中,组件定义单元250,还可用于执行:调度组件、监控组件、执行组件及业务组件中的多个文件是根据业务类型的信息命名。本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述各实施例所述方法的步骤。本发明实施例还提供一种计算机设备,如图5所示,计算机设备300可包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序,所述处理器320执行所述程序时实现上述各实施例所述方法的步骤。综上所述,本发明实施例的批量数据整合方法、装置、存储介质及设备,通过预先定义调度组件、监控组件、执行组件及业务组件进行数据整合处理,每个组件只完成自己的任务并把交付物传至下游,组件分工、协同配合,实现了数据处理的模块化管理,在系统出现问题时,能够快速定位并解决问题,提高了维护效率,提升了运维人员的使用体验。通过预先定义的组件实现了文件传输时的完整性、文件解压缩、内存锁等公共机制,并可向开发人员屏蔽这些公共机制,使得开发人员只需关注自己的业务规则,只在自己的业务组件中实现自己的业务逻辑即可,极大降低了开发成本,提升了开发效率。不同业务类型的数据文件利用其各自的组件可以高度并行进行数据整合处理,处理效率高,不同类文件的组件互不干扰。本发明能够保证开发简单,提升了维护的客户体验,能够兼容各类的业务需求,能够高效、快捷地加载数据,保证前端应用运行正常。在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1