一种自动化处理增全量历史数据保存方法转让专利

申请号 : CN202311079132.3

文献号 : CN116795664B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓鹏邓红谢英杰谢娟杨雨洁代雄宋疆

申请人 : 四川省农村信用社联合社

摘要 :

本发明公开了一种自动化处理增全量历史数据保存方法,历史数据保存方法步骤如下:S1、建立统一的数据接口信息配置表;S2、建立作业日志记录表;S3、将数据源表信息录入接口信息配置表;S4、设计保存数据历史状态的公共算法;S5、基于公共算法生成调度任务,动态生成实例作业;S6、运行实例化作业;S7、数据加载完成,进行数据的校验;S8、数据校验完成,将执行情况记录在作业日志表,并将数据保存,达到自动化处理历史数据保存目的。

权利要求 :

1.一种自动化处理增全量历史数据保存方法,其特征在于,历史数据保存方法步骤如下:S1、建立统一的数据接口信息配置表,所述数据接口信息配置表包括主键、表名、接口编号、作业的算法类型、作业的初始化日期、数据的校验标志、数据的校验规则、增全量标志、接口有效标志、表主键、表分区,并保存相关元数据源表信息;

S2、建立作业日志记录表,用于记录作业运行日志;

S3、将数据源表信息录入接口信息配置表,将不同数据库类型的数据被统一转换成标准文件格式,执行 ETL 算法,并按照接口信息配置表将数据文件中的数据加载到对应的数据源; 运行实例化作业执行 ETL 算法,首次入仓需初始化数据,先判断作业是否为初始化作业,满足接口信息配置表的初始化日期等同当前作业批量日期且日志记录表无该作业记录,则作业执行 初始化算法,反之则作业日常运行;

S4、设计保存数据历史状态的公共算法,所述设计保存数据历史状态的公共算法;全量历史表公共算法,对存量数据和当日全量数据按照全字段关联对比,当日全量中不存在的数据则存量数据闭链,新数据直接插入,基于接口信息配置表元数据驱动,动态生成公共算法实例;

S5、基于公共算法生成调度任务,动态生成实例作业;

S6、运行实例化作业,根据所述数据接口信息配置表和日志记录表,动态获取数据源表信息和日志信息,依据算法执行进行数据抽取、转换和加载;

S7、数据加载完成,基于数据校验规则进行数据的校验;

S8、数据校验完成,将作业执行情况记录在作业日志表,并将数据保存至结果表,达到自动化处理历史数据保存目的。

2.根据权利要求1所述一种自动化处理增全量历史数据保存方法,其特征在于,所述日志记录表记录作业的业务日期、作业的开始运行时间、作业的结束运行时间、接口编号、表名。

3.根据权利要求1所述一种自动化处理增全量历史数据保存方法,其特征在于,基于公共算法自动生成调度任务和实例作业,自动生成调度任务和实例作业执行数据校验,通过校验数据的主键唯一性,校验数据的条数一致性,校验文件大小一致性进行数据校验。

4.根据权利要求1所述一种自动化处理增全量历史数据保存方法,其特征在于,执行实例作业抽取表数据信息,保存数据结果表,包括保存数据的历史状态、数据的加载日期、数据的开始日期、数据的有效日期。

5.根据权利要求1‑4任一项所述一种自动化处理增全量历史数据保存方法,其特征在于,自动化处理执行数据抽取、转换和加载,数据抽取、转换和加载步骤如下:S1、执行当前接口编号,从接口信息配置表中获取当前接口编号的元信息;

S2、判断当前执行的业务日期是否为该接口的初始化日期;

S3、取出日志记录表中该接口的上次执行记录;

S4、源数据将被加载到临时中间表一,存量数据将被加载到临时中间表二,判断元数据信息中的算法类型,选择对应的历史数据算法执行数据的处理过程,并合并到临时中间表三;

S5、临时中间表的数据合并更新到结果表;

S6、当数据被加载到结果表,根据元数据信息中的数据校验标志;

S7、将本作业的开始时间,结束时间,业务日期,接口编号记录到日志表中;

S8、程序执行成功,程序正常退出。

说明书 :

一种自动化处理增全量历史数据保存方法

技术领域

[0001] 本发明涉及大数据技术领域,尤其涉及一种自动化处理增全量历史数据保存方法。

背景技术

[0002] 当前保存数据历史状态的方法一般基于数据接口开发对应的ETL(Extra‑Transform‑Load)程序, ETL程序对开发人员技能要求高,开发周期长,效率低,维护成本高,并且容易导致性能问题,未能充分发挥数据库的数据处理能力,不适用于大量接口的批量开发和维护,在当前大数据时代下,数据来源多,接口标准不统一,此方法存在的问题尤为突出,亟需一种代码接口标准统一、能复用适用于多接口的方法屏蔽大数据平台底层产品之间的差异,规范开发流程,降低开发门槛,提升开发效率。
[0003] 当前ETL(Extra‑Transform‑Load)程序主要缺点:数据结构复杂,数据来源多样,需要为每个系统单独定制数据的导入程序,不便于维护和新增来源;当前技术方法,通常需要为每个数据接口单独开发转换代码,进行数据的抽取、转换、加载过程,复杂且繁琐;数据处理过程往往涉及到多个处理算法,一般直接嵌入代码中,不利于算法的灵活使用和代码维护;在ETL程序系统中,会产生大量的临时表等,不同的临时表生命周期可能不同,多数通过手工的方式进行管理,容易产生纰漏,并且工作量巨大;在ETL程序系统数据处理涉及到不同的场景,比如首次处理,程序异常退出后的重新执行,以及程序的正常批处理,不同场景执行数据的抽取、转换、加载过程不同,多数方法单独设计每个接口的处理过程,并且需要单独执行。
[0004] 本发明提供一种自动化处理增全量历史数据保存方法,将所有数据源以统一接口标准导入数据仓库进行数据完整性校验,通过抽象业务代码基于增量、全量进行ETL处理,自动选择历史算法、自动管理数据周期,支持数据初始化和重跑逻辑执行历史数据保存方法。

发明内容

[0005] 本发明的目的就在于为了解决上述问题而提供一种自动化处理增全量历史数据保存方法,将所有数据源以统一接口标准导入数据仓库进行数据完整性校验,通过抽象业务代码基于增量、全量进行ETL处理,自动选择历史算法、自动管理数据周期,支持数据初始化和重跑逻辑执行历史数据保存方法。
[0006] 本发明通过以下技术方案来实现上述目的:
[0007] 一种自动化处理增全量历史数据保存方法,历史数据保存方法步骤如下:
[0008] S1、建立统一的数据接口信息配置表,并保存相关元数据源表信息;
[0009] S2、建立作业日志记录表,用于记录作业运行日志;
[0010] S3、将数据源表信息录入接口信息配置表;
[0011] S4、设计保存数据历史状态的公共算法,基于接口信息配置表元数据驱动,动态生成公共算法实例;
[0012] S5、基于公共算法生成调度任务,动态生成实例作业;
[0013] S6、运行实例化作业,根据所述数据接口信息配置表和日志记录表,动态获取数据源表信息和日志信息,依据算法执行进行数据抽取、转换和加载;
[0014] S7、数据加载完成,基于数据校验规则进行数据的校验;
[0015] S8、数据校验完成,将作业执行情况记录在作业日志表,并将数据保存至结果表,达到自动化处理历史数据保存目的。
[0016] 进一步说明,所述建立数据接口信息配置表,所述数据接口信息配置表包括主键、表名、接口编号、作业的算法类型、作业的初始化日期、数据的校验标志、数据的校验规则、增全量标志、接口有效标志、表主键、表分区信息。
[0017] 进一步说明,所述建立日志记录表,所述日志记录表主要记录作业的业务日期、作业的开始运行时间、作业的结束运行时间、接口编号、表名、作业运行状态信息。
[0018] 进一步说明,所述录入接口信息配置表,将不同数据库类型的数据被统一转换成标准文件格式,执行ETL算法,并按照接口信息配置表将数据文件中的数据加载到对应的数据源表。
[0019] 进一步说明,运行实例化作业执行ETL算法,首次入仓需初始化数据,先判断作业是否为初始化作业,满足接口信息配置表的初始化日期等同当前作业批量日期且日志记录表无该作业记录,则作业执行初始化算法,反之则作业日常运行。
[0020] 进一步说明,作业日常运行需判断作业是否为重跑作业,判断当前作业的批量日期等同日志记录表的批量日期,若是,则执行重跑作业,作业重跑,应从结果表中取出当日已插入和更新的数据,避免重复加载;若否,判断当前作业的批量日期等同日志记录表的批量日期+1,若是,则执行日常作业,若否,则作业不连续,将导致数据不连续,程序退出。
[0021] 进一步说明,所述设计保存历史数据状态公共算法,所述增量历史表公共算法,对存量有效数据与当日数据按照主键关联比对,识别变化数据,存量数据闭链,插入新数据,对物理删除的数据直接进行闭链,使数据更新频繁,增量规模适中的表数据分布更合理,执行ETL任务效率更高。
[0022] 进一步说明,所述设计保存历史数据状态公共算法,所述全量历史表公共算法,对存量数据和当日全量数据按照全字段关联对比,当日全量中不存在的数据则存量数据闭链,新数据直接插入,使数据更新频繁,数据来源为全量的表数据分布更合理,执行ETL任务效率更高。
[0023] 进一步说明,所述设计保存历史数据状态公共算法,所述增量流水表(有更新)公共算法,取比较范围到当前日期内的存量有效数据与当日数据按照主键关联比对,识别变化数据,存量数据闭链,并插入新数据,用于数据量规模庞大、在一段时间内频繁更新的数据,其优点是保证大规模数据的执行效率,缺点是更新的时间有限制。
[0024] 进一步说明,所述设计保存历史数据状态公共算法,所述增量流水表(无更新)公共算法,以覆盖当日分区的形式直接插入当日数据,用于数据量规模庞大、数据无更新的表,执行效率高,缺点是不能更新数据。
[0025] 所述全量流水表公共算法,将目标表数据清空后,当日的数据全部插入目标表,只存储最新的数据,优点是跟数据规模无关、执行效率高,缺点是不能保留历史数据。
[0026] 进一步说明,所述基于公共算法自动生成调度任务和实例作业,自动生成调度任务和实例作业执行数据校验,通过校验数据的主键唯一性,校验数据的条数一致性,校验文件大小一致性进行数据校验。
[0027] 进一步说明,所述执行实例作业抽取表数据信息,保存数据结果表,包括保存数据的历史状态、数据的加载日期、数据的开始日期、数据的有效日期。
[0028] 进一步说明,所述自动化处理执行数据抽取、转换和加载,数据抽取、转换和加载步骤如下:
[0029] S1、执行当前接口编号,从接口信息配置表中获取当前接口编号的元信息;
[0030] S2、判断当前执行的业务日期是否为该接口的初始化日期;
[0031] S3、取出日志记录表中该接口的上次执行记录;
[0032] S4、源数据将被加载到临时中间表一,存量数据将被加载到临时中间表二,判断元数据信息中的算法类型,选择对应的历史数据算法执行数据的处理过程,并合并到临时中间表三;
[0033] S5、临时中间表的数据合并更新到结果表;
[0034] S6、当数据被加载到结果表,根据元数据信息中的数据校验标志;
[0035] S7、将本作业的开始时间,结束时间,业务日期,接口编号记录到日志表中;
[0036] S8、程序执行成功,程序正常退出。
[0037] 本发明的有益效果在于:
[0038] 1、本发明提供一种自动化处理增全量历史数据保存方法,数据导入标准化:将所有数据源以统一接口标准的方式导入数据仓库并进行数据完整性校验;
[0039] 2、本发明提供一种自动化处理增全量历史数据保存方法,代码开发简单化:基于元数据驱动的低代码开发,抽象公共代码,仅关注具体的业务代码,而无需要重复开发其它过程;
[0040] 3、本发明提供一种自动化处理增全量历史数据保存方法,数据处理算法配置化:基于数据变化方式增量、全量进行ETL处理时,自动从配置中选择对应的历史数据处理算法;
[0041] 4、本发明提供一种自动化处理增全量历史数据保存方法,生命周期管理参数化:以参数化设计数据的生命周期,自动管理数据的生命周期;
[0042] 5、本发明提供一种自动化处理增全量历史数据保存方法,数据处理场景一体化支持数据初始化以及逻辑重跑数据的不同场景且无需单独设计不同程序执行历史数据保存方法。

附图说明

[0043] 图1历史数据保存方法步骤流程图;
[0044] 图2执行初始化及重跑实例作业流程图;
[0045] 图3执行增全量保留历史数据算法作业流程图;
[0046] 图4执行数据校验作业流程图;

具体实施方式

[0047] 下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切采用本发明构思的发明创造均在保护之列。
[0048] 如图1‑4所示,一种自动化处理增全量历史数据保存方法,历史数据保存方法步骤如下:
[0049] S1、建立统一的数据接口信息配置表,并保存相关元数据信息;
[0050] S2、建立作业日志记录表,用于记录作业运行日志,作业日志记录表可独立导出日志数据信息;
[0051] S3、将数据源表信息录入接口信息配置表;
[0052] S4、设计保存数据历史状态的公共算法,基于接口信息配置表元数据驱动,动态生成公共算法实例;
[0053] S5、基于公共算法生成调度任务,动态生成实例作业;
[0054] S6、运行实例化作业,根据所述数据接口信息配置表和日志记录表,动态获取数据源表信息和日志信息,依据算法执行进行数据抽取、转换和加载;
[0055] S7、数据加载完成,基于数据校验规则进行数据的校验;
[0056] S8、数据校验完成,将作业执行情况记录在作业日志表,并将数据保存至结果表,达到自动化处理历史数据保存目的。
[0057] 进一步说明,所述建立数据接口信息配置表,所述数据接口信息配置表包括主键、表名、接口编号、作业的算法类型、作业的初始化日期、数据的校验标志、数据的校验规则、增全量标志、接口有效标志、表主键、表分区信息。
[0058] 进一步说明,所述建立日志记录表,所述日志记录表主要记录作业的业务日期、作业的开始运行时间、作业的结束运行时间、接口编号、表名、作业运行状态信息。
[0059] 进一步说明,所述录入接口信息配置表,将不同数据库类型的数据被统一转换成标准文件格式,执行ETL算法,并按照接口信息配置表将数据文件中的数据加载到对应的数据源表。
[0060] 进一步说明,如图2所示,运行实例化作业执行ETL算法,包括保证数据的有效性和保证数据的一致性,通过以下算法进行保证:判断作业是否为初始化作业,满足接口信息配置表的初始化日期等同当前作业批量日期且日志记录表无该作业记录,则作业执行初始化算法;若否,判断当前作业的批量日期等同日志记录表的批量日期加1,判断当前作业的批量日期等同日志记录表的批量日期,若是,则执行重跑算法作业,应从结果表中取出当日已插入和更新的数据,避免重复加载;若否,判断当前作业的批量日期等同日志记录表的批量日期加1,若是,则执行日常作业;若否,作业不连续,将导致数据不连续,程异常退出。
[0061] 进一步说明,所述设计保存历史数据状态公共算法,保存历史数据ETL公共算法可为增量历史表公共算法、全量历史表公共算法、增量流水表(有更新)公共算法、增量流水表(无更新)公共算法或全量流水表公共算法:
[0062] 所述增量历史表公共算法,对存量有效数据与当日数据按照主键关联比对,识别变化数据,存量数据闭链,插入新数据,对物理删除的数据直接进行闭链,使数据更新频繁,增量规模适中的表数据分布更合理,执行ETL任务效率更高;
[0063] 所述全量历史表公共算法,对存量数据和当日全量数据按照全字段关联对比,当日全量中不存在的数据则存量数据闭链,新数据直接插入,使数据更新频繁,数据来源为全量的表数据分布更合理,执行ETL任务效率更高;
[0064] 所述增量流水表(有更新)公共算法,取比较范围到当前日期内的存量有效数据与当日数据按照主键关联比对,识别变化数据,存量数据闭链,并插入新数据,用于数据量规模庞大、在一段时间内频繁更新的数据,其优点是保证大规模数据的执行效率,缺点是更新的时间有限制;
[0065] 所述增量流水表(无更新)公共算法,以覆盖当日分区的形式直接插入当日数据,用于数据量规模庞大、数据无更新的表,执行效率高,缺点是不能更新数据;
[0066] 所述全量流水表公共算法,将目标表数据清空后,当日的数据全部插入目标表,只存储最新的数据,优点是跟数据规模无关、执行效率高,缺点是不能保留历史数据;
[0067] 进一步说明,所述基于公共算法自动生成调度任务和实例作业,自动生成调度任务和实例作业执行数据校验,通过校验数据的主键唯一性,校验数据的条数一致性,校验文件大小一致性进行数据校验。
[0068] 进一步说明,所述执行实例作业抽取表数据信息,保存数据结果表,包括保存数据的历史状态、数据的加载日期、数据的开始日期、数据的有效日期。
[0069] 进一步说明,所述自动化处理执行数据抽取、转换和加载,数据抽取、转换和加载步骤如下:
[0070] S1、执行当前接口编号,从接口信息配置表中获取当前接口编号的元信息,包括主键、算法类型、初始化日期、校验条件、增全量标识、分区;
[0071] S2、如图2所示,执行实例作业S101到数据校验S301,判断当前执行的业务日期是否为该接口的初始化日期,若是,则执行初始化算法,数据将被初始化加载进结果表,当结果表数据加载完成,执行(数据抽取、转换和加载步骤)S6中部分,若否,则执行(数据抽取、转换和加载步骤)S3中部分;
[0072] S3、如图2所示,执行实例作业S101到数据装入临时表S201,取出日志记录表中该接口的上次执行记录,若当前执行的业务日期为上次执行记录中的业务日期,则执行重跑算法,取出之前已装入的数据,然后执行(数据抽取、转换和加载步骤)S4中部分;若当前执行的业务日期为上次执行记录中的业务日期加1,则执行非重跑算法,直接执行(数据抽取、转换和加载步骤)S4中部分;若其他情况,代表数据处理过程不连续,程序异常退出;
[0073] S4、如图3所示,数据装入临时表S201到根据算法类型对临时表的数据处理S203,源数据将被加载到临时中间表一,存量数据将被加载到临时中间表二,判断元数据信息中的算法类型,选择对应的历史数据算法执行数据的处理过程,并合并到临时中间表三;
[0074] S5、如图3所示,根据算法类型对临时表的数据处理S203到数据校验S301,临时中间表的数据合并更新到结果表;
[0075] S6、如图4所示,S301到记录日志S303,当数据被加载到结果表,根据元信息中的数据校验标志,和数据校验条件,进行数据校验,校验通过,程序执行(数据抽取、转换和加载步骤)S7,校验通过,程序异常退出;
[0076] S7、如图4所示,记录日志S303到程序执行成功S304,将本作业的开始时间,结束时间,业务日期,接口编号等记录到日志表中;
[0077] S8、程序执行成功,程序正常退出。
[0078] 以上所披露的仅为本发明的优选实施而已,当然不能以此来限定本发明的权利要求范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。