用于数据仓库的数据更新方法、系统及电子设备与流程

文档序号:22833526发布日期:2020-11-06 16:23阅读:124来源:国知局
用于数据仓库的数据更新方法、系统及电子设备与流程

本发明涉及数据仓库技术领域,尤其涉及用于数据仓库的数据更新方法、系统及电子设备。



背景技术:

随着企业各项业务的飞速发展及信息化建设的不断深入,产生了日益庞大的历史数据,由于各业务系统之间相互独立导致了业务不集成、流程不互通、数据不共享等问题,这些问题对企业进行数据的分析利用、挖掘以及报表开发等工作带来了非常大的困难。在此情况下,为了实现企业全局数据的系统化运作管理,挖掘数据价值,为企业开发类似于决策支持系统、智能商务系统、经营分析系统等的深度应用奠定基础,企业会开始着手建立数据仓库,将相互分离的业务系统的数据源整合在一起。

但是在数据仓库实施过程中,存在着不同的业务系统提供的数据内容、格式、质量千差万别,以及多个业务系统同时更新到数据仓库时数据更新量过大且更新任务不好调度等问题,为数据仓库的数据更新带来一定的难度。



技术实现要素:

本发明的目的在于提供用于数据仓库的数据更新方法、系统及电子设备,以解决不同的业务系统提供的数据内容、格式、质量千差万别,以及多个业务系统同时更新到数据仓库时数据更新量过大且更新任务不好调度等问题。

为了实现上述目的,本发明提供如下技术方案:

一种用于数据仓库的数据更新方法,包括:

以数据源系统中的数据表单为单位创建数据更新的任务流;

将所述任务流一一对应的转化为数据处理程序,分别部署到etl系统上;

通过所述etl系统生成每个数据源系统的任务流调度表,并依据所述任务流调度表执行各任务流对应的数据处理程序,将所有数据源系统中的数据表单更新到数据仓库中。

优选地,以数据源系统中的数据表单为单位创建数据更新的任务流的方法包括:

对任务阶段和数据源系统的数据表单分别进行编号;

利用任务阶段的编号和数据源系统的数据表单的编号对每个任务进行统一格式的编码,一个任务对应执行一个数据表单的一个任务阶段;

将用于更新同一数据表单的任务作为一个任务流,同时生成所述任务流的任务信息表及任务依赖表。

具体地,所述任务阶段包括数据检测阶段、数据加载阶段、数据处理阶段和数据备份阶段,或者同时包括起始阶段和/或结束阶段。

进一步地,所述任务信息表包括对应的任务流中所有任务的编码、调度周期、归属条线及处理阶段;

所述任务依赖表包括对应的任务流中所有任务根据所处的任务阶段所决定的前后依赖关系。

较好地,所述数据处理程序包括数据检测模块程序、数据加载模块程序、数据处理模块程序和数据备份模块程序,或者同时包括起始模块程序和/或结束模块程序。

优选地,通过所述etl系统生成数据源系统的任务流调度表,并依据所述任务流调度表执行各任务流对应的数据处理程序,将数据源系统中的数据表单更新到数据仓库中的方法包括:

启动所述etl系统,获取待更新数据的日期,并检测数据源系统当前日期的数据是否送达;

若当前日期数据已经送达,则根据etl系统的任务执行并发数、任务流的优先级,以及任务流的任务信息表和任务依赖表生成数据源系统的任务流调度表和任务流执行结果表,通过依据所述任务流调度表按顺序执行所有任务流对应的数据处理程序,将数据源系统中的数据表单更新到数据仓库中,将任务流对应的数据处理程序的执行结果更新到任务执行流结果表中;

若当前日期数据未送达,则刷新etl系统等待数据源系统当前日期的数据送达。

具体地,采用并行处理的方式执行所述数据处理程序。

进一步地,实时监控所有数据处理程序的执行过程,当任一数据处理程序执行出错时,根据预设的任务错误处理级别执行包括等待人工处理、自动跳过错误任务或重新执行的处理方式。

一种用于数据仓库的数据更新系统,包括任务创建模块、任务部署模块和任务执行模块,其中,

所述任务创建模块用于以数据源系统中的数据表单为单位创建数据更新的任务流;

所述任务部署模块用于将所述任务流一一对应的转化为数据处理程序,分别部署到etl系统上;

所述任务执行模块用于通过所述etl系统生成每个数据源系统的任务流调度表,并依据所述任务流调度表执行各任务流对应的数据处理程序,将所有数据源系统中的数据表单更新到数据仓库中。

一种电子设备,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述用于数据仓库的数据更新方法。

与现有技术相比,本发明提供的用于数据仓库的数据更新方法、系统及电子设备具有以下有益效果:

本发明提供的用于数据仓库的数据更新方法,首先以数据源系统中的数据表单为单位创建数据更新的任务流,然后将所述任务流一一对应的转化为数据处理程序,分别部署到etl系统上,可以利用etl系统同时对多个数据源系统的数据表单进行更新,同时etl系统的数据清洗功能实现了不同的业务系统数据的内容、格式、质量的统一;最后通过所述etl系统生成任务流调度表,并依据所述任务流调度表执行各任务流对应的数据处理程序,将所有数据源系统中的数据表单更新到数据仓库中,利用任务流调度表实现了多个业务系统同时更新到数据仓库时每个数据源系统中任务流的有序调度。

本发明提供的用于数据仓库的数据更新系统,采用上述用于数据仓库的数据更新方法,解决了不同的业务系统提供的数据内容、格式、质量千差万别,以及多个业务系统的数据同时更新到数据仓库时数据更新量过大且更新任务不好调度等问题。

本发明提供的电子设备,能够执行前述用于数据仓库的数据更新方法,实现了不同的业务系统数据的内容、格式、质量的统一,以及多个业务系统的数据同时更新到数据仓库时任务的有序调度。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例中用于数据仓库的数据更新方法的流程示意图;

图2为本发明实施例中以数据源系统中的数据表单为单位创建数据更新的任务流的方法示意图;

图3为本发明实施例中一种etl系统的应用示意图;

图4为本发明实施例中电子设备的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。

实施例一

请参阅图1,本实施例提供的用于数据仓库的数据更新方法,包括:

以数据源系统中的数据表单为单位创建数据更新的任务流;

将任务流一一对应的转化为数据处理程序,分别部署到etl系统上;

通过etl系统生成每个数据源系统的任务流调度表,并依据任务流调度表执行各任务流对应的数据处理程序,将所有数据源系统中的数据表单更新到数据仓库中。

本实施例提供的用于数据仓库的数据更新方法中,将以数据源系统中的数据表单为单位创建数据更新的任务流转化为数据处理程序后,分别部署到etl系统上,可以利用etl系统同时对多个数据源系统的数据表单进行更新,提高了数据更新的效率,同时利用etl系统的数据清洗功能实现了不同的业务系统数据的内容、格式、质量的统一;最后通过所述etl系统生成任务流调度表,并依据所述任务流调度表执行各任务流对应的数据处理程序,将所有数据源系统中的数据表单更新到数据仓库中,利用任务流调度表实现了多个业务系统同时更新到数据仓库时每个数据源系统中任务流的有序调度。

请参阅图2,本实施例提供的用于数据仓库的数据更新方法中,以数据源系统中的数据表单为单位创建数据更新的任务流的方法包括:

对任务阶段和数据源系统的数据表单分别进行编号;

利用任务阶段的编号和数据源系统的数据表单的编号对每个任务进行统一格式的编码,一个任务对应执行一个数据表单的一个任务阶段;

将用于更新同一数据表单的任务作为一个任务流,同时生成任务流的任务信息表及任务依赖表。

其中,任务阶段包括数据检测阶段、数据加载阶段、数据处理阶段和数据备份阶段,或者同时包括起始阶段和/或结束阶段。任务信息表包括对应的任务流中所有任务的编码、调度周期、归属条线及处理阶段;任务依赖表包括对应的任务流中所有任务根据所处的任务阶段所决定的前后依赖关系。

例如需要接入的数据主要来源于四个系统:账务核心、会员、供应链金融、消费金融,现对这4个系统进行编号,账务核心编号为1、会员编号为2、供应链金融编号为3、消费金融编号为4,后续有新接入系统按照5、6……依次往后进行编号,在系统编号的基础上,对每个数据源系统的所有数据表单也要进行编号,如账务核心系统1有100个数据表单,则该系统中100个数据表单的编号为1001-1100。每个数据文件从检测到最后加载完成总共要经过4个处理阶段,对这4个处理阶段分别进行编号,数据文件检测阶段编号为1,数据文件加载阶段为2、数据处理阶段为3、数据备份阶段为4,还可以包括起始阶段0和结束阶段5。然后利用任务阶段的编号和数据源系统的数据表单的编号对每个任务进行统一格式的编码,一个任务对应执行一个数据表单的一个任务阶段,例如账务核心系统1中第一个数据表单需要经过检测、加载、处理、备份四个阶段,那么账务核心系统1中第1个数据表单检测阶段对应的任务编号可以为sn_10011,其中sn_代表项目代码,第一位数字的1代表账务核心系统1,第二到四位数字的001代表第1个数据表单,第五位1代表检测阶段,以此类推,账务核心系统1中第1个数据表单加载阶段对应的任务的编号为sn_10012,账务核心系统1中第1个数据表单处理阶段对应的任务的编号为sn_10013,账务核心系统1中第1个数据表单备份阶段对应的任务的编号为sn_10014,上述四个4个任务构成了一个任务流。将任务流中所有任务的编码、调度周期、归属条线及处理阶段生成任务信息表。

此外,由于一个任务流的处理过程是由多个任务共同协作完成的,任务的处理是按顺序来的,先执行的任务被称为前置任务,用来决定这个任务流是否执行,后执行的作业被称为后续任务。一个任务流中只有当前置任务先处理成功后才会继续执行后一个任务,所以各个任务之间的前后依赖关系很重要。例如,可以为每个数据源系统都设置一个起始任务,起始任务的后续任务是检测任务,检测任务的后续是加载任务,加载任务的后续是处理任务,再后面是备份任务和结束任务。在任务信息表中添加开始阶段和结束阶段的标志性任务,有利于任务流的有序执行,根据任务信息表中的信息,分析任务流中各个任务前后的依赖关系生成任务依赖表。

通过以数据源系统中的数据表单为单位创建数据更新的任务流的方式,在遵循etl架构的基础上,为数据源系统中的每一张数据表单设计一个任务流,方便于利用etl系统的数据抽取接口将多个数据源系统的数据表单同时更新到数据仓库中,其中每一个数据源系统中多个数据表单也可以同时更新到数据仓库中,提高了数据更新的效率。

相对应地,将任务流一一对应的转化为数据处理程序时,每个数据处理程序包括数据检测模块程序、数据加载模块程序、数据处理模块程序和数据备份模块程序,或者同时包括起始模块程序和/或结束模块程序,分别用于实现数据表单更新到数据仓库中时的各个处理阶段,该数据处理程序可以使用shell+sql实现,也可以采用java实现。

本实施例提供的用于数据仓库的数据更新方法中,通过所述etl系统生成数据源系统的任务流调度表,并依据所述任务流调度表执行各任务流对应的数据处理程序,将数据源系统中的数据表单更新到数据仓库中的方法包括:

启动etl系统,获取待更新数据的日期,并检测数据源系统当前日期的数据是否送达;

若当前日期数据已经送达,则根据etl系统的任务执行并发数、任务流的优先级,以及任务流的任务信息表和任务依赖表生成数据源系统的任务流调度表和任务流执行结果表,通过依据任务流调度表按顺序执行所有任务流对应的数据处理程序,将数据源系统中的数据表单更新到数据仓库中,将任务流对应的数据处理程序的执行结果更新到任务执行流结果表中;

若当前日期数据未送达,则刷新etl系统等待数据源系统当前日期的数据送达。

请参阅图3,本领域技术人员应该知道的是,etl系统即为实现数据抽取(extract)、转换(transform)、加载(load)的系统,将其设置于数据源系统和数据仓库之间,实现了不同的业务系统数据的内容、格式、质量的统一。

其中,数据抽取是把数据从数据源系统中抽取出来的过程,在数据抽取时需要配置抽取规则,包括:

1.确认所有的数据源系统;

2.定义数据抽取的接口,并对每个源系统及其数据表单中的每个字段进行详细说明;

3.确定数据抽取方式,例如:是主动抽取还是源系统推送?是全量抽还是增量抽?是每日抽还是每月抽?

本发明实施例中采用的etl系统支持多数源、跨平台的数据抽取,同时抽数过程支持参数化、可视化配置。

从数据源系统中抽取的数据不一定都满足数据仓库的存储要求,例如数据格式的不一致、数据输入错误、数据不完整等等,因此有必要对抽取出的数据进行数据转换。数据转换的过程包括:

1.空值处理:根据业务实际需求,可以把空值过滤掉或者替换为特定值;

2.规范数据格式:比如把所有日期格式化成yyyymmdd等;

3.验证数据准确性:根据业务提供的规则,对源系统的数据做准确性验证;

4.数据标准化:不同的源系统定义的编码可能不一样,在抽取的时候做编码标准化处理,比如统一证件类型:01-身份证、02-护照、03-港澳通行证等等;

5.数据拆分:根据实际需求做数据拆分,如将身份证拆分成出生日期、性别、出生地等。

数据抽取、转换完之后,就需要将数据加载到数据仓库中,例如:如果全量方式则直接覆盖,如果增量方式则根据增量规则加载到数据库。

在具体实施过程中,任务流的优先级可以认为设置或修改,任务流调度表也会对应修改,除了利用任务流调度表按顺序执行所有任务流对应的数据处理程序,实现将数据源系统中的数据表单更新到数据仓库中之外,还可以采用定时调度、信号文件触发、依赖触发等方式进行任务流的调度,同时任务支持手工触发,当前置任务异常时,可以手工调起后续依赖任务。

在数据处理程序的执行过程中,可以采用并行处理的方式执行所有任务流对应的数据处理程序,即数据处理程序支持多线程并发处理,根据系统资源情况调整任务流的并发数,以提高数据处理程序的执行效率,进而加快数据仓库的数据更新速度。此外,etl系统的服务器支持分布式部署、横向扩展,当数据源系统数据很大或者一个数据源系统中的任务流数量突然增加时可以通过增加硬件资源保证任务正常运行以及任务运行效率。

本实施例提供的用于数据仓库的数据更新方法中,还要实时监控所有数据处理程序的执行过程,当任一数据处理程序执行出错时,根据预设的任务错误处理级别执行包括等待人工处理、自动跳过错误任务或重新执行的处理方式,此外,还可以利用调度日志记录数据处理程序执行过程中错误信息。通过监控数据处理程序的执行情况及支持对错误任务的手工处理,大大提高了数据更新到数据仓库中的效率,管理更为方便快捷。

实施例二

一种用于数据仓库的数据更新系统,包括任务创建模块、任务部署模块和任务执行模块。其中,任务创建模块用于以数据源系统中的数据表单为单位创建数据更新的任务流;任务部署模块用于将任务流一一对应的转化为数据处理程序,分别部署到etl系统上;任务执行模块用于通过etl系统生成每个数据源系统的任务流调度表,并依据任务流调度表执行各任务流对应的数据处理程序,将所有数据源系统中的数据表单更新到数据仓库中。

本发明提供的用于数据仓库的数据更新系统,采用上述实施例一中的用于数据仓库的数据更新方法,解决了不同的业务系统提供的数据内容、格式、质量千差万别,以及多个业务系统的数据同时更新到数据仓库时数据更新量过大且更新任务不好调度等问题。与现有技术相比,本发明实施例提供的用于数据仓库的数据更新系统的有益效果与上述实施例一提供的用于数据仓库的数据更新方法的有益效果相同,且该用于数据仓库的数据更新系统中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。

实施例三

一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一提供的用于数据仓库的数据更新方法。

下面参考图4,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图4所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(rom)中的程序或者从存储装置加载到随机访问存储器(ram)中的程序而执行各种适当的动作和处理。在ram中,还存储有电子设备操作所需的各种程序和数据。处理装置、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。

通常,以下系统可以连接至i/o接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。

本发明提供的电子设备,采用上述实施例一中的用于数据仓库的数据更新方法,实现了不同的业务系统数据的内容、格式、质量的统一,以及多个业务系统的数据同时更新到数据仓库时任务的有序调度。与现有技术相比,本发明实施例提供的电子设备的有益效果与上述实施例一提供的用于数据仓库的数据更新方法的有益效果相同,且该电子设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,任务部署模块还可以被描述为“用于将任务流一一对应的转化为数据处理程序并分别部署到etl系统上的模块”。

应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1