CN101216782A - 一种金融数据实现etl加工的方法和*** - Google Patents

一种金融数据实现etl加工的方法和*** Download PDF

Info

Publication number
CN101216782A
CN101216782A CNA200710308381XA CN200710308381A CN101216782A CN 101216782 A CN101216782 A CN 101216782A CN A200710308381X A CNA200710308381X A CN A200710308381XA CN 200710308381 A CN200710308381 A CN 200710308381A CN 101216782 A CN101216782 A CN 101216782A
Authority
CN
China
Prior art keywords
ordered set
module
database
job
parameter
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.)
Granted
Application number
CNA200710308381XA
Other languages
English (en)
Other versions
CN100573457C (zh
Inventor
陈铭新
邓波
朱志
马骏
翁世清
王彬
董瑜
许长山
魏和
崔荣晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CNB200710308381XA priority Critical patent/CN100573457C/zh
Publication of CN101216782A publication Critical patent/CN101216782A/zh
Application granted granted Critical
Publication of CN100573457C publication Critical patent/CN100573457C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种金融数据实现ETL加工的***,包括:调度模块,用于调起符合运行条件的作业有序集合;以及,通过作业统一接口模块,依序调起所述作业有序集合中的各项作业,并通知作业运行模块完成对该作业的运行;逻辑作业参数获取子模块,用于获取该作业实例相应的逻辑作业参数;运行参数获取子模块,用于依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;物理作业执行子模块,用于依据所述运行参数执行相应的物理作业。本发明提供了统一的作业接口和灵活的作业参数管理配置,能够适应各个***间的物理差异很大的各种作业整合在一起的需求,以及各种复杂的金融数据加工需求。

Description

一种金融数据实现ETL加工的方法和***
技术领域
本发明涉及多***之间数据处理技术领域,特别是涉及一种针对金融数据实现ETL加工的方法和***。
背景技术
目前金融业务数据越来越庞大,如银行证券等金融领域均是如此,进而导致金融业务数据所涉及的***也越来越多。在各个***之间存在着各种数据耦合,一个***往往需要从各个***获取数据来生成本***需要的数据。但是由于各个***的出现时间不同,技术、架构和数据规范存在很大的差异性。同时从需求数据的角度看,目标***要求的数据往往只是源***表中一张数据表的若干字段或者某几张表关联出来的若干字段。因此无法简单的将一个***的数据传给目标***。要完成从源***到目标***的数据传递,必须进行数据的ETL(Extract Transform Load,是抽取-转换-加载的缩写)操作。即从源***的数据库中抽取数据(Extract),然后进行数据的加工(Tranform)最后加载(Load)到目标***中的数据操作过程。
目前现有技术中,各金融机构一般采用单一的作业实现方式来完成数据的ETL操作。例如,在某两个***之间,采用现有的ETL软件来执行ETL加工;在另两个***之间,采用shell(UNIX与外部的接口)脚本、proc(能连接数据库的C语言)等来完成ETL加工。具体对应于业务过程,如:在实现上用proc或者存储过程来实现数据加工,在运行上采用手工每日执行作业或者用crontab(程序运行日程表)定时执行加工程序,在检核上采用人工比对的方式或者脚本检核。
上述现有技术存在以下的缺陷:
1、随着金融业务的发展,金融数据管理和处理***希望将ETL操作整合在一起,作为一个整体,以提高效率。但是由于现有技术中各个ETL操作所采用的数据作业方式不尽相同,而各种作业的技术和原理又存在不同,因此无法统一在一起,或者存在着整合性差的问题。
2、手工运行耗费人力
对于不同的业务***,作业的执行时间,执行频度,要求的完成时间是不一样的,而且数据的到达时间经常是不确定的。因此,在现有技术中,往往需要运维人员24小时对ETL作业进行监控,对作业运行调起进行手工干预。
3、加工作业参数不够灵活,可维护性差
运行作业的参数是很灵活的,输入的参数可能是一个数据表的名字,可能是业务日期,可能是一个文件的名字。一方面,程序后面的参数如果是固定参数,那么就需要每天人工对固定参数进行修改。另外一个方面,在银行***中,大规模的ETL加工而需要的作业的个数是上万的,每个作业需要若干个参数,那么所有作业的参数可能会有十万个,对于这么多的参数,维护起来困难很大。
总之,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创造性的提出一种能够面向多个***的、对金融数据实现ETL集群加工的解决方案。
发明内容
本发明所要解决的技术问题是提供一种金融数据实现ETL加工的方法和***,能够统一各个***间的不同作业需求、能够适应各种复杂的金融数据加工需求,便于作业的管理和运行。
为了解决上述问题,本发明公开了一种金融数据实现ETL加工的***,可以包括:
作业统一接口模块,用于通过c函数和/或API接口实现对多种作业的调起;
第一数据库,用于存储调度表;所述调度表包括有至少一个作业有序集合;
调度模块,用于搜索所述第一数据库中的调度表,调起符合运行条件的作业有序集合;以及,通过作业统一接口模块,依序调起所述作业有序集合中的各项作业,并通知作业运行模块完成对该作业的运行;
第二数据库,用于存储逻辑作业参数;
作业运行模块,包括以下子模块:
逻辑作业参数获取子模块,用于查询第二数据库,获取该作业实例相应的逻辑作业参数;
运行参数获取子模块,用于依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;
物理作业执行子模块,用于依据所述运行参数执行相应的物理作业。
优选的,所述的***还可以包括:动态资源分配模块,用于依据作业的复杂度和当前各个执行节点的硬件使用情况,计算出最优结点,分配相应的物理作业给所述最优结点运行。
优选的,所述的***还可以包括:监控管理模块,用于查看各项作业或者作业有序集合的运行状况;和/或,监控结点硬件资源;和/或,查看所述第一数据库和第二数据库。
优选的,所述的***还可以包括:初始化模块,用于对作业有序集合进行初始化处理,所述初始化处理包括日期切换、文件检查或者作业实例的运行状态修改;结束模块,用于对作业有序集合进行结束处理,所述结束处理包括日期切换、日志备份或者作业实例的运行状态修改。
优选的,所述物理作业包括proc作业、sql脚本作业、shell脚本作业或者DataStage作业,或者前述任意组合项。
依据本发明的另一优选实施例,还公开了一种金融数据实现ETL加工的方法,可以包括:搜索数据库中的调度表,获取符合运行条件的作业有序集合,所述调度表包括有至少一个作业有序集合;通过作业统一接口,应用c函数和/或API接口实现对所述作业有序集合中的一个作业的调起;获取该作业实例相应的逻辑作业参数;依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;依据所述运行参数执行相应的物理作业;依次完成该作业有序集合中的所有作业后,搜索下一个符合运行条件的作业有序集合。
优选的,所述的方法还可以包括:依据作业的复杂度和当前各个执行节点的硬件使用情况,计算出最优结点,分配相应的物理作业给所述最优结点运行。
优选的,所述的方法还可以包括:查看各项作业或者作业有序集合的运行状况;和/或,监控结点硬件资源;和/或,查看所述第一数据库和第二数据库。
优选的,
在所述作业有序集合被调起之前,还可以包括:在对作业有序集合进行初始化处理;所述初始化处理包括日期切换、文件检查或者作业实例的运行状态修改;
在所述作业有序集合执行完毕之后,还可以包括:对作业有序集合进行结束处理;所述结束处理包括日期切换、日志备份或者作业实例的运行状态修改。
优选的,所述物理作业包括proc作业、sql脚本作业、shell脚本作业或者DataStage作业,或者前述任意组合项。
与现有技术相比,本发明具有以下优点:
首先,本发明采用了统一的作业控制接口,使得各种类型的作业能够统一在一起,这样无论是什么类型的作业都在逻辑上都可以放在同一个作业集合——cycle的下面,不会因为各类作业的物理差异而无法统一调度和运行。本发明对于cycle概念的提出,将一个个物理上有差异作业串为一个整体,成为一个完整的能给目标提供数据的作业集合,进而便于作业的管理和运行。
其次,本发明应用了动态灵活的参数配置,极大的提高了作业参数的灵活度,从而能够适应金融机构(如银行***)各种各样复杂的业务需求。同时,这种灵活的参数配置也便于参数的管理和维护。
再者,本发明还采用了多主结点分布式动态资源分布策略,充分利用硬件资源,实现执行结点的负载均衡,保证作业的运行是在最优的结点上面运行,提高了执行效率,缩短了执行时间。而在现有技术中,虽然一般也都会采用多节点进行并发处理,在进行并发处理的时候,多是根据经验来对作业进行固定的资源分配,无法对资源进行动态管理同时根据作业执行情况将作业分配到不同结点上。
附图说明
图1是本发明一种金融数据实现ETL加工的***实施例1的结构框图;
图2是本发明一种金融数据实现ETL加工的***实施例2的结构框图;
图3是一种金融数据实现ETL加工的方法实施例的步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参照图1,示出了本发明一种金融数据实现ETL加工的***实施例1,可以包括以下模块:
作业统一接口模块101,用于通过c函数和/或API接口实现对多种作业的调起;
第一数据库102,用于存储调度表;所述调度表包括有至少一个作业有序集合;
调度模块103,用于搜索所述第一数据库中的调度表,调起符合运行条件的作业有序集合;以及,通过作业统一接口模块,依序调起所述作业有序集合中的各项作业,并通知作业运行模块完成对该作业的运行;
第二数据库104,用于存储逻辑作业参数;
作业运行模块105,包括以下子模块:
逻辑作业参数获取子模块,用于查询第二数据库,获取该作业实例相应的逻辑作业参数;
运行参数获取子模块,用于依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;
物理作业执行子模块,用于依据所述运行参数执行相应的物理作业。
所述作业统一接口模块101就是一个屏蔽底层物理作业的接口,只要通过这样一个作业主控接口,就可以调起各种各样不同类别的ETL作业,而不管其具体是什么类型的作业,例如:可以包括DS作业,proc作业,sql脚本作业,shell脚本作业等等。本发明采用C程序的方式实现了该接口,通过这个接口,可以在无需关心底层物理作业的基础上调起作业,同时可以把作业的各种运行信息、日志等写入数据库。作业统一接口模块101的应用,相对于调度模块103屏蔽了物理作业的差异性和作业的细节。其中,物理作业就是指最底层的物理程序,可能是一个shell脚本,也可能是一个sql语句,也可能是一个DataStage作业。
具体而言,对于proc作业,sql脚本作业,shell脚本作业等而言,调起是比较简单的,只需用c函数就能做到作业调起。而对于DS(DataStage的缩写,一种现有的ETL加工软件)作业来说,服务器是UNIX***,传统的DS调起是在window下client(客户)端进行的,为了能将DS作业和其他作业统一在UNIX***下,就无法使用DataStage的client(客户)端调起DS作业。本发明选择合适的API接口在UNIX下面通过API接口调起DS作业,同时通过调用API接口获得DS作业运行各个阶段的运行情况。所述API接口(ApplicationProgram Interface,应用程序接口),是最低层的应用接口,通过接口可以调起各种底层的函数。
对于常见物理作业类型,可以通过在作业统一接口模块101中预留接口的方式实现,即如果新增的物理作业类型在预留接口中,那么只要实现这个接口函数就可以了。如果新增的物理作业类型不再预留接口中,那么只要在程序里面分支中加上新接口,同时实现这个接口函数即可。也就是说,本发明具有很强的扩展性。
对于调度模块103而言,各个表的调起时间、作业间的依赖关系等都预先配置在数据库中,调度模块103可以依据作业运行模块105的返回码,控制作业是否需要调起以及何时调起。即调度模块103可以通过数据库确定作业的运行时间、运行状态以及作业之间的依赖关系,从而保证每个作业有序、按时、正确的被调起运行。
本发明的另一个重要改进点在于:在ETL集群加工的过程中,应用了作业有序集合——Cycle,Cycle是一组相关联的作业的有序化集合,是一个作业序列:其中包括DS加工作业,Shell传输作业,加载数据入库的c程序作业等等。本发明通过cycle的概念,将作业从逻辑上面进行了整合,将原来***与***之间复杂的连接关系和业务逻辑进行了清晰的划分,提高了可控性和整合度,不再需要技术人员对作业的执行时间、执行频度进行人工干预。
本领域技术人员可以依据实际情况设置各种各样的Cycle。例如,本发明优选的,采用以源***作为Cycle的划分依据。举一个具体的例子:现在共有ABCD四个***,A***给B,C***提供数据。那么我们把A到B、C的所有作业,包括加工作业和辅助作业全部划分到一个Cycle中,这个Cycle里面的作业必须全部正确完成后,才能切换到下一个日期。当然,A到B、C的所有作业中可能还包括每周一次的作业、每月一次的作业等等,本发明也可以将每周一次的作业(包括加工作业和辅助作业)设置为一个Cycle。实际上,一个***中可能存在多个Cycle,当运行时,需要检测当前时间点是否需要运行某个Cycle,如果不需要,则直接跳过即可。如果需要运行,则检查其所需的数据文件是否到达或者前序作业是否完成等等,当满足条件时,自动执行该Cycle中的各项作业。
本发明的另一个重要改进点在于:可以提供灵活的参数配置。银行业务***的处理逻辑是复杂多变的,为了实现ETL的集群加工,必须设计一种灵活的参数配置方式来支持。比如作业的运行频度,作业参数的复用性都需要一个灵活的参数配置。例如,作业的运行频度有:每日运行,每旬运行,每个工作日运行,每周运行,每月运行,月初运行,月末运行,文件触发不定期执行等等。灵活配置的参数,可以根据作业的运行频度来将作业参数进行实例化。
由于作业实例能有上万个,如果每个实例参数都配置在数据库中,那么数据参数的维护将是非常麻烦的。在本发明中,我们引入了作业实例,物理作业,逻辑作业的概念。
作业实例就是实际运行的作业,即用具体的业务参数实例化的物理作业。它可能是一个对数据进行加工的作业,也可能是一个辅助作业,完成诸如加载加工后的数据到目标数据库的入库作业,或者是传输加工后的数据给目标***的传输作业。
物理作业是一个具体的程序,可能是一个proc程序,可能是一个shell脚本,可能是DS作业;
逻辑作业是某一类作业的抽象;解决某一类需求的抽象化的作业,是一个抽象的名称。它的实现依赖于物理作业。
本发明在在数据库中所配置的作业参数是针对逻辑作业了。一个逻辑作业可以实例化成无数个作业实例,只需配置一个逻辑作业的参数,就相当于配置了无数个作业实例。具体描述如下:
首先,本发明数据库里面配置的数据是指向是逻辑作业的;而每天所运行的作业实例是确定的,将这些作业实例配置在调度模块中,调度模块会把作业实例自动调起,作业实例会在数据库中找到对应的逻辑作业及其参数;然后将参数中的宏替换成具体的业务值,同时找到对应的物理作业,并把这些具体的业务值传给物理作业;然后物理作业就开始加工数据了。从上面的参数调用过程可以看出,本发明所使用的作业参数全部是动态参数,复用性和灵活性很强。所述动态参数是指:用于运行作业的业务参数不是具体化在数据库中,而是以抽象的表达方式写在数据库中,它会根据具体的业务动态生成具体的参数供作业实例使用。
总的来说,本发明配置的作业参数不依赖于具体的业务参数,同时配置的参数均对应于逻辑作业,逻辑作业数目要远远小于作业实例的个数。因此,本发明所采用的在数据库里面配置逻辑作业参数的解决方案,远比传统的在数据库里面配置所有作业实例,并管理作业实例参数要简单得多。
作业运行模块105可以依据作业实例标识号到对应逻辑作业中查找相应参数,然后将参数替换为实际的业务参数,然后找到对应的物理作业,把实际业务参数传递给物理作业,最后运行这个作业。本发明所采用的逻辑作业、作业实例和物理作业分开配置的方法,便于作业参数的管理,同时提供了很强的灵活性。
参照图2,示出了本发明的一种金融数据实现ETL加工的***实施例2,可以包括以下模块:
作业统一接口模块201,用于通过c函数和/或API接口实现对多种作业的调起;
第一数据库202,用于存储调度表;所述调度表包括有至少一个作业有序集合;
调度模块203,用于搜索所述第一数据库中的调度表,调起符合运行条件的作业有序集合;以及,通过作业统一接口模块,依序调起所述作业有序集合中的各项作业,并通知作业运行模块完成对该作业的运行;
第二数据库204,用于存储逻辑作业参数;
作业运行模块205,包括以下子模块:
逻辑作业参数获取子模块,用于查询第二数据库,获取该作业实例相应的逻辑作业参数;
运行参数获取子模块,用于依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;
物理作业执行子模块,用于依据所述运行参数执行相应的物理作业;其中,所述物理作业包括proc作业、sql脚本作业、shell脚本作业或者DataStage作业,或者前述任意组合项;
并在此基础上进一步还可以包括:
动态资源分配模块206,用于依据作业的复杂度和当前各个执行节点的硬件使用情况,计算出最优结点,分配相应的物理作业给所述最优结点运行。优选的,动态资源分配模块206可以包含在作业运行模块205内,在作业运行模块运行作业的时候,会在数据库中不断刷新的各个结点硬件资源情况上进行分析,根据算法得到最优的分配策略,然后让作业根据分配策略得到的结点上面执行。具体描述如下:
首先,本发明采用的是多个主结点,主结点负责对作业进行分配,然后在执行结点在把作业调起;主结点与各个执行结点进行通讯,收集各个结点执行情况日志。多个主结点一方面可以提高分配速度,另外一个方面可以起到热备份的作用;当一个主结点的服务出现问题的时候,另外一个结点可以马上接过它的工作。
其次,作业的运行采用的是分布式执行,多个执行结点并发执行作业,效率跟结点数成正比。多个执行结点对上G上百G的数据根据一定策略对数据进行分割,把对数据的加工最大程度的发布到所有执行结点上,这种分布式加工运算最大程度上利用了硬件资源同时大大减少了执行时间。
再者,本发明中的作业运行资源是动态分配的,可以手工指定作业的运行结点(如一些特殊的作业),也可以让***根据某种分配算法对资源进行分配。如果由***自动进行资源分配,那么***会根据作业的复杂度和当前所有执行结点的硬件资源(CPU,内存,I/O等),在基于某种算法基础上,对作业进行动态资源分配,保证各结点的负载动态平衡。
下面,本发明提供两种算法作为例子,一种是个数评估模式,一种是资源评估模式。对于个数评估模式,采用的是以结点上面作业运行个数来评估该机器资源情况,这个模式优点在于简单易用,缺点是不同作业耗费的资源情况是不一样的,如果作业与作业运行花费的资源差异很大,那么这种评估模式就不够准确。另外一种是资源评估模式,根据一个公式(CPU使用率,内存使用率,IO使用率等硬件参数作为输入),算出某台机器的评估值,只要评估值不大,就认为这台机器比较空闲,就可以继续分配作业给它。这个模式的缺点是,需要一个程序不断采集各个结点的硬件情况,同时这种模式的好坏必须依赖于这个公式的算法是否合理。优点是作业能够很均匀的分别到每个结点,不会出现两台机器运行作业个数都一样,但是两台机器的资源使用率却相差很大的情况。在具体的实际应用中,本领域技术人员也可以采用其他一些可行的算法,本发明对此并不需要加以限定。
在本发明的另一优选实施例中,还可以进一步包括:
监控管理模块207,用于查看各项作业或者作业有序集合的运行状况;和/或,监控结点硬件资源;和/或,查看所述第一数据库和第二数据库。
监控管理模块207在本发明中是一个辅助模块,可以包括作业重置,cycle查看,作业查看,cycle文件检查,数据库表管理功能等,能够帮助运维人员监控cycle运行情况。监控管理模块207不仅仅可以完成对作业运行情况的监控,还可以包括对结点硬件资源的监控管理。总之,本发明可以通过监控管理模块207查看作业或者Cycle的运行情况,从而随时对作业进行调整和控制。
在本发明的另一优选实施例中,还可以进一步包括一些帮助Cycle更好的执行作业的辅助模块:
初始化模块208,用于对作业有序集合进行初始化处理,所述初始化处理包括日期切换、文件检查或者作业实例的运行状态修改;
结束模块209,用于对作业有序集合进行结束处理,所述结束处理包括日期切换、日志备份或者作业实例的运行状态修改。
例如,对于一个Cycle,假设里面有十个作业实例,那么实际上一个cycle完成,需要运行:Cycle初始化模块的InitCycle,job1,job2,job3……job10;作业运行模块;Cycle结束模块的TermCycle。具体描述如下:
Cycle初始化模块(InitCycle):用于Cycle的初始化处理。包括Cycle业务日期的切换,检查输入的数据文件,Cycle和Cycle下作业实例的运行状态修改等。
作业运行模块(RunJob):运行具体的作业实例。作业可以是数据加工作业,也可能是负责传输的辅助作业。
cycle结束模块(TermCycle):用于Cycle的结束处理,包括Cycle日期切换,日志备份和临时资源的清理,Cycle和Cycle作业实例的运行状态修改等。
参照图3,示出了一种金融数据实现ETL加工的方法实施例,包括:
步骤301、搜索数据库中的调度表,获取符合运行条件的作业有序集合,所述调度表包括有至少一个作业有序集合;
步骤302、通过作业统一接口,应用c函数和/或API接口实现对所述作业有序集合中的一个作业的调起;
步骤303、获取该作业实例相应的逻辑作业参数;
步骤304、依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;
步骤305、依据所述运行参数执行相应的物理作业;其中,所述物理作业包括proc作业、sql脚本作业、shell脚本作业或者DataStage作业,或者前述任意组合项;
步骤306、依次完成该作业有序集合中的所有作业后,搜索下一个符合运行条件的作业有序集合。
为了提高硬件资源的利用率以及作业执行效率,在本发明的另一优选实施例中,还可以进一步包括:依据作业的复杂度和当前各个执行节点的硬件使用情况,计算出最优结点,分配相应的物理作业给所述最优结点运行。
为了更好的监控管理整个ETL加工过程,在本发明的另一优选实施例中,还可以进一步包括:查看各项作业或者作业有序集合的运行状况;和/或,监控结点硬件资源;和/或,查看所述第一数据库和第二数据库。
优选的,在所述作业有序集合被调起之前,还可以包括:在对作业有序集合进行初始化处理;所述初始化处理包括日期切换、文件检查或者作业实例的运行状态修改。相应的,在所述作业有序集合执行完毕之后,还可以包括:对作业有序集合进行结束处理;所述结束处理包括日期切换、日志备份或者作业实例的运行状态修改。
下面以一个cycle的运行为例,对上面的流程作进一步的说明:
1、调度模块搜索数据库中的调度表,发现A这个cycle符合运行条件,于是调起A的cycle初始化模块。
2、A的cycle初始化模块开始运行,检查cycle需要加工的文件是否到达,如果没有到达,cycle初始化模块失败。该模块进入等待状态,若干分钟后会被调度重新调起,然后从步骤1开始。如果文件到达,开始初始化cycle和cycle下面作业的状态为init状态。
3、调度调起该cycle下面的一个作业,如果作业文件没有到达或者该作业存在前序作业,那么该作业调起失败,进入等待状态,若干分钟后会被调度调起,然后从步骤3开始。如果符合运行条件,则调起作业。
4、作业运行模块开始运行调度调起的作业,首先在数据库查找该作业实例对应的逻辑作业参数,然后根据cycle的状态(业务日期,源***,目标***等业务情况)将逻辑作业参数实例化为具体的运行参数,然后根据作业实例找到对应的物理作业,然后将实例化后的运行参数给物理作业,然后作业实例准备执行,进入步骤5。
5、根据作业的复杂度和当前所有执行结点的硬件使用情况,根据一定算法算出最优的结点,然后将作业分配给这些结点运行。
6、如果作业运行失败了,作业就进入等待状态,等待调度若干分钟后调起,然后从3开始,如果作业成功,进入3,执行该cycle下面的另一个作业。如果该cycle下面的全部作业都执行完毕,则进入7。
7、一个cycle下面的作业全部执行完了,开始执行cycle结束模块。然后整个cycle完成,日期切换,日志备份,进入1,循环执行下一个cycle。
总的来说,从流程上看,本发明可以具有以下几个部分:
调度处理:轮询作业列表,找到满足运行条件的作业。
作业前处理:将能够运行的作业参数从数据库中读入,然后对作业参数进行实例化,读取所有运行结点的资源情况并排序,根据需要取最好的几个结点。
作业运行:根据作业类型调起不同的作业处理步骤,传入作业参数和结点信息,开始运行作业。
作业后处理:接收作业运行情况,写作业日志。
从说明书前面对本发明的详细描述,可以知悉本发明的优势在于:
本发明统一了作业控制接口,使得各种类型的作业能够统一在一起,这样无论是什么类型的作业都在逻辑上都可以放在同一各个cycle下面,不会因为作业的物理差异而无法统一调度和运行。
本发明还采用了动态灵活的参数配置,极大的提高了作业参数的灵活度,能够适应银行***各种各样复杂的业务需求。同时这种灵活的参数配置,便于参数的管理和维护。
本发明还提出了cycle概念,将一个个作业串为一个整体,成为一个完整能给目标提供数据的作业集合,便于作业的管理和运行。
本发明可以通过自动调度,减少人工运行的人力成本,使得程序完全依照设定的时间点和频度有序的运行作业,完成向目标***的供数。
本发明的监控模块可以很好的监控作业的运行情况和结点的使用情况,使得对作业的过程控制成为一种可能。
本发明还采用了多主结点分布式动态资源分布策略,充分利用硬件资源,实现执行结点的负载均衡,保证作业的运行是在最优的结点上面运行,提高了执行效率,缩短了执行时间。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种金融数据实现ETL加工的方法和***,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种金融数据实现ETL加工的***,其特征在于,包括:
作业统一接口模块,用于通过c函数和/或API接口实现对多种作业的调起;
第一数据库,用于存储调度表;所述调度表包括有至少一个作业有序集合;
调度模块,用于搜索所述第一数据库中的调度表,调起符合运行条件的作业有序集合;以及,通过作业统一接口模块,依序调起所述作业有序集合中的各项作业,并通知作业运行模块完成对该作业的运行;
第二数据库,用于存储逻辑作业参数;
作业运行模块,包括以下子模块:
逻辑作业参数获取子模块,用于查询第二数据库,获取该作业实例相应的逻辑作业参数;
运行参数获取子模块,用于依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;
物理作业执行子模块,用于依据所述运行参数执行相应的物理作业。
2.如权利要求1所述的***,其特征在于,还包括:
动态资源分配模块,用于依据作业的复杂度和当前各个执行节点的硬件使用情况,计算出最优结点,分配相应的物理作业给所述最优结点运行。
3.如权利要求1所述的***,其特征在于,还包括:
监控管理模块,用于查看各项作业或者作业有序集合的运行状况;和/或,监控结点硬件资源;和/或,查看所述第一数据库和第二数据库。
4.如权利要求1所述的***,其特征在于,还包括:
初始化模块,用于对作业有序集合进行初始化处理,所述初始化处理包括日期切换、文件检查或者作业实例的运行状态修改;
结束模块,用于对作业有序集合进行结束处理,所述结束处理包括日期切换、日志备份或者作业实例的运行状态修改。
5.如权利要求1所述的***,其特征在于,所述物理作业包括proc作业、sql脚本作业、shell脚本作业或者DataStage作业,或者前述任意组合项。
6.一种金融数据实现ETL加工的方法,其特征在于,包括:
搜索数据库中的调度表,获取符合运行条件的作业有序集合,所述调度表包括有至少一个作业有序集合;
通过作业统一接口,应用c函数和/或API接口实现对所述作业有序集合中的一个作业的调起;
获取该作业实例相应的逻辑作业参数;
依据所述作业有序集合的属性,将所述逻辑作业参数实例化为具体的运行参数;
依据所述运行参数执行相应的物理作业;
依次完成该作业有序集合中的所有作业后,搜索下一个符合运行条件的作业有序集合。
7.如权利要求6所述的方法,其特征在于,还包括:
依据作业的复杂度和当前各个执行节点的硬件使用情况,计算出最优结点,分配相应的物理作业给所述最优结点运行。
8.如权利要求6所述的方法,其特征在于,还包括:
查看各项作业或者作业有序集合的运行状况;
和/或,监控结点硬件资源;
和/或,查看所述第一数据库和第二数据库。
9.如权利要求6所述的方法,其特征在于,
在所述作业有序集合被调起之前,还包括:在对作业有序集合进行初始化处理;所述初始化处理包括日期切换、文件检查或者作业实例的运行状态修改;
在所述作业有序集合执行完毕之后,还包括:对作业有序集合进行结束处理;所述结束处理包括日期切换、日志备份或者作业实例的运行状态修改。
10.如权利要求6所述的方法,其特征在于,所述物理作业包括proc作业、sql脚本作业、shell脚本作业或者DataStage作业,或者前述任意组合项。
CNB200710308381XA 2007-12-29 2007-12-29 一种金融数据实现etl加工的方法和*** Active CN100573457C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200710308381XA CN100573457C (zh) 2007-12-29 2007-12-29 一种金融数据实现etl加工的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200710308381XA CN100573457C (zh) 2007-12-29 2007-12-29 一种金融数据实现etl加工的方法和***

Publications (2)

Publication Number Publication Date
CN101216782A true CN101216782A (zh) 2008-07-09
CN100573457C CN100573457C (zh) 2009-12-23

Family

ID=39623221

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710308381XA Active CN100573457C (zh) 2007-12-29 2007-12-29 一种金融数据实现etl加工的方法和***

Country Status (1)

Country Link
CN (1) CN100573457C (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567013B (zh) * 2009-06-02 2011-09-28 阿里巴巴集团控股有限公司 一种etl调度的实现方法及装置
CN102279888A (zh) * 2011-08-24 2011-12-14 北京新媒传信科技有限公司 一种任务调度方法和***
CN103578032A (zh) * 2013-11-14 2014-02-12 中国银行股份有限公司 数据处理***
CN103677752A (zh) * 2012-09-19 2014-03-26 腾讯科技(深圳)有限公司 基于分布式数据的并发处理方法和***
CN104391738A (zh) * 2014-10-29 2015-03-04 中国建设银行股份有限公司 一种参数调用和参数管理的方法、装置及相关***
CN104793994A (zh) * 2015-04-27 2015-07-22 中国农业银行股份有限公司 批量作业处理方法、装置及***
CN105468682A (zh) * 2015-11-16 2016-04-06 中国建设银行股份有限公司 一种事件调度***
CN108270577A (zh) * 2016-12-30 2018-07-10 中移(杭州)信息技术有限公司 一种基于策略与计费控制架构的策略运营方法及***
CN109471707A (zh) * 2018-10-12 2019-03-15 传化智联股份有限公司 调度任务的部署方法及装置
CN110389960A (zh) * 2018-04-20 2019-10-29 北京京东尚科信息技术有限公司 数据刷新方法和装置
CN111782373A (zh) * 2020-07-01 2020-10-16 上海乾臻信息科技有限公司 作业调度方法及装置
CN112765254A (zh) * 2021-04-08 2021-05-07 北京三维天地科技股份有限公司 实现数据可视化及数据整合etl的解决方法及***

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567013B (zh) * 2009-06-02 2011-09-28 阿里巴巴集团控股有限公司 一种etl调度的实现方法及装置
CN102279888B (zh) * 2011-08-24 2014-04-30 北京新媒传信科技有限公司 一种任务调度方法和***
CN102279888A (zh) * 2011-08-24 2011-12-14 北京新媒传信科技有限公司 一种任务调度方法和***
US10009441B2 (en) 2012-09-19 2018-06-26 Tencent Technology (Shenzhen) Company Limited Distributed data-based concurrent processing method and system, and computer storage medium
CN103677752A (zh) * 2012-09-19 2014-03-26 腾讯科技(深圳)有限公司 基于分布式数据的并发处理方法和***
WO2014044136A1 (zh) * 2012-09-19 2014-03-27 腾讯科技(深圳)有限公司 基于分布式数据的并发处理方法、***和计算机存储介质
CN103677752B (zh) * 2012-09-19 2017-02-08 腾讯科技(深圳)有限公司 基于分布式数据的并发处理方法和***
US10200497B2 (en) 2012-09-19 2019-02-05 Tencent Technology (Shenzhen) Company Limited Distributed data-based concurrent processing method and system, and computer storage medium
CN103578032A (zh) * 2013-11-14 2014-02-12 中国银行股份有限公司 数据处理***
CN104391738B (zh) * 2014-10-29 2018-12-07 中国建设银行股份有限公司 一种参数调用和参数管理的方法、装置及相关***
CN104391738A (zh) * 2014-10-29 2015-03-04 中国建设银行股份有限公司 一种参数调用和参数管理的方法、装置及相关***
CN104793994A (zh) * 2015-04-27 2015-07-22 中国农业银行股份有限公司 批量作业处理方法、装置及***
CN105468682A (zh) * 2015-11-16 2016-04-06 中国建设银行股份有限公司 一种事件调度***
CN105468682B (zh) * 2015-11-16 2018-12-14 中国建设银行股份有限公司 一种事件调度***
CN108270577A (zh) * 2016-12-30 2018-07-10 中移(杭州)信息技术有限公司 一种基于策略与计费控制架构的策略运营方法及***
CN108270577B (zh) * 2016-12-30 2020-12-22 中移(杭州)信息技术有限公司 一种基于策略与计费控制架构的策略运营方法及***
CN110389960A (zh) * 2018-04-20 2019-10-29 北京京东尚科信息技术有限公司 数据刷新方法和装置
CN109471707A (zh) * 2018-10-12 2019-03-15 传化智联股份有限公司 调度任务的部署方法及装置
CN111782373A (zh) * 2020-07-01 2020-10-16 上海乾臻信息科技有限公司 作业调度方法及装置
CN111782373B (zh) * 2020-07-01 2023-03-07 上海乾臻信息科技有限公司 作业调度方法及装置
CN112765254A (zh) * 2021-04-08 2021-05-07 北京三维天地科技股份有限公司 实现数据可视化及数据整合etl的解决方法及***

Also Published As

Publication number Publication date
CN100573457C (zh) 2009-12-23

Similar Documents

Publication Publication Date Title
CN100573457C (zh) 一种金融数据实现etl加工的方法和***
US8832173B2 (en) System and method of multithreaded processing across multiple servers
CN100594498C (zh) 海量数据实时处理架构及用于该架构的实时随需处理平台
CN106649378B (zh) 一种数据同步方法及装置
CN102103518B (zh) 一种在虚拟化环境中管理资源的***及其实现方法
CN112445598B (zh) 一种基于quartz的任务调度方法、装置、电子设备以及介质
US20210081358A1 (en) Background dataset maintenance
CN112558934B (zh) 一种基于编排控制流程业务开通的控制子任务引擎装置
CN102662725B (zh) 一种事件驱动的高并发流程虚拟机实现方法
CN106528853A (zh) 数据交互管理装置、跨库数据交互处理装置及方法
CN113298503A (zh) 一种面向政务的工作流管理***及其分库分表方法
CN101685452B (zh) 数据仓库调度方法及调度***
CN115374102A (zh) 数据处理方法及***
CN109885642B (zh) 面向全文检索的分级存储方法及装置
CN112379884A (zh) 基于Spark和并行内存计算的流程引擎实现方法及***
CN113672240A (zh) 一种基于容器的多机房批量自动化部署应用的方法及***
CN106156198A (zh) 基于分布式数据库的任务执行方法及装置
CN110134533B (zh) 一种可批量调度数据的***及方法
CN114816694A (zh) 一种多流程协作的rpa任务调度方法及装置
EP2541408B1 (en) Method and system for processing data for database modification
CN105677427A (zh) 一种模块升级的方法及装置
CN106204263B (zh) 交易运行控制方法和装置
CN109871394B (zh) 一种全量分布式高并发计算方法及装置
CN111176844A (zh) 一种金融数据实时在线批量优化方法及***
US10417051B2 (en) Synchronizing shared resources in an order processing environment using a synchronization component

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant