一种数据抽取、转换、加载etl的方法和设备的制造方法

文档序号:9217343阅读:1324来源:国知局
一种数据抽取、转换、加载etl的方法和设备的制造方法
【技术领域】
[0001]本发明涉及数据处理领域,特别是一种数据抽取、转换、加载ETL的方法和设备。
【背景技术】
[0002]ETL (Extract-Transform-Load,抽取-转换-加载)技术用来将数据从来源端经过抽取、转换、加载至目的端,为企业实现数据向信息的转换,使得企业最大化地利用已存在的数据资源,节省更多的时间和资金,抓住制定关键商业决策的最佳契机。
[0003]ETL进行数据处理的过程为:
[0004]先读取配置数据库中的基本对象配置,按照各模板的配置依次从源数据中抽取数据。抽取模板配置对象相关的数据后,包括时间段,对象状态等信息,将其存储到临时数据库中;
[0005]将抽取数据存储到临时数据库后,再根据一定的转换规则,对抽取的数据进行转换。数据转换完成后再对其进行一些必要的处理,清除那些不正确的,不完整的数据,再对数据的格式等进行加工,最后加载到第三方数据库中;
[0006]当数据加载到第三方数据库完毕后,在一定时间内再将临时数据库中相关用表删除掉,减少数据占用率。

【发明内容】

[0007]有鉴于此,本发明提供了一种数据抽取、转换、加载ETL的方法和设备,解决了传统ETL工具不支持多数据源、复杂的数据逻辑、综合成本大等问题。本发明提出的技术方案是:
[0008]一种数据抽取、转换、加载ETL的方法,该方法包括:
[0009]服务器确定有效数据抽取、转换、加载ETL任务,并判断所述有效ETL任务是否满足执行条件;
[0010]如果满足执行条件,发送携带所述有效ETL任务的任务标识的执行请求报文给客户端,使得所述客户端根据所述有效ETL任务的任务标识确定匹配的ETL任务脚本语言文件并执行,所述匹配的ETL任务脚本语言文件嵌套有包含具体业务逻辑的数据库命令;
[0011]接收所述客户端返回的携带所述有效ETL任务的执行结果的执行应答报文。
[0012]一种数据抽取、转换、加载ETL的方法,该方法包括:
[0013]客户端接收并保存服务器发送的携带任务标识的数据抽取、转换、加载ETL任务脚本语言文件;
[0014]客户端接收服务器发送的携带任务标识的执行请求报文,根据所述执行请求报文携带的任务标识确定匹配的ETL任务脚本语言文件,并执行所述匹配的ETL任务脚本语言文件,所述匹配的ETL任务脚本语言文件嵌套有包含具体业务逻辑的数据库命令;
[0015]所述匹配的ETL任务脚本语言文件执行结束后,发送携带执行结果的执行应答报文给所述服务器。
[0016]一种服务器设备,该服务器设备用于数据抽取、转换、加载ETL,该设备包括:
[0017]处理模块,用于确定有效数据抽取、转换、加载ETL任务,并判断所述有效ETL任务是否满足执行条件;
[0018]发送模块,用于,如果所述处理模块判断所述有效ETL任务满足执行条件,发送携带所述有效ETL任务的任务标识的执行请求报文给客户端,使得所述客户端根据所述有效ETL任务的任务标识确定匹配的ETL任务脚本语言文件并执行,所述匹配的ETL任务脚本语言文件嵌套有包含具体业务逻辑的数据库命令;
[0019]接收模块,用于接收所述客户端返回的携带所述有效ETL任务的执行结果的执行应答报文。
[0020]一种客户端设备,该客户端设备用于数据抽取、转换、加载ETL,该设备包括:
[0021]接收模块,用于接收并保存服务器发送的携带任务标识的数据抽取、转换、加载ETL任务脚本语言文件;
[0022]还用于接收服务器发送的携带任务标识的执行请求报文;
[0023]处理模块,用于根据所述执行请求报文携带的任务标识确定匹配的ETL任务脚本语言文件,并执行所述匹配的ETL任务脚本语言文件,所述匹配的ETL任务脚本语言文件嵌套有包含具体业务逻辑的数据库命令;
[0024]发送模块,用于所述匹配的ETL任务脚本语言文件执行结束后,发送携带执行结果的执行应答报文给所述服务器。
[0025]综上所述,本发明提出的技术方案中,服务器进行任务调度,客户端执行ETL任务,并将执行结果反馈给服务器,客户端执行ETL任务时采用脚本语言代替ETL工具对数据进行抽取、转换、加载,实现了消耗非常小的资源来完成大数据量的处理加工,使得ETL任务执行起来更加容易实现,并能支持复杂的数据逻辑处理,且降低了 ETL数据处理的成本,提高了 ETL数据处理的性能。
【附图说明】
[0026]图1为本发明技术方案的组网结构图;
[0027]图2为本发明技术方案的流程图;
[0028]图3为本发明实施例的流程图;
[0029]图4为本发明实施例中的服务器设备结果图;
[0030]图5为本发明实施例中的客户端设备结构图。。
【具体实施方式】
[0031]现有技术中,ETL的实现有两种方式:一种是借助ETL工具实现,一种是通过SQL (Structured Query Language,结构化查询语言)方式实现。然而,本发明的发明人在发掘本发明的过程中发现,借助ETL工具缺少灵活性,不支持复杂的数据处理逻辑,通过SQL方式实现ETL时编码复杂,对技术要求高,不易实现。
[0032]为解决上述问题,本发明提出一种数据抽取、转换、加载ETL方法,本发明实施例的技术方案是:
[0033]图1为本发明技术方案的组网结构图,如图1所示,服务器进行任务调度,客户端1、客户端2实现ETL任务的执行。图2为本发明技术方案的流程图,如图2所示,该方法包括:
[0034]步骤201:服务器确定有效数据抽取、转换、加载ETL任务,并判断所述有效ETL任务是否满足执行条件。
[0035]本步骤中,服务器端保存有多个ETL任务,当ETL任务未被禁用时,服务器视作该ETL任务为有效ETL任务,否则为无效ETL任务。
[0036]只有满足执行条件的有效ETL任务才会被服务器制定客户端去执行,其中,服务器判断有效ETL任务是否满足执行条件的方法为:
[0037]如果服务器判断有效ETL任务的下次执行时间小于或等于当前时间,和/或,有效ETL任务的执行触发条件已成立,则判断该有效ETL任务满足执行条件。
[0038]S卩,每个有效ETL任务的执行条件为下述三种情况中的任一种:(I)有效ETL任务的下次执行时间小于或等于当前时间;(2)有效ETL任务的执行触发条件已成立;(3)有效ETL任务的下次执行时间小于或等于当前时间,并且该有效ETL任务的执行触发条件已成立。
[0039]服务器记录每个有效ETL任务的下次执行时间,并周期性判断该有效ETL任务是否到达下次执行时间,如果有效ETL任务的下次执行时间小于或等于当前时间,说明该有效ETL任务的下次执行时间已到达甚至已超时,则该有效ETL任务再执行时间上满足了执行条件;当某个有效ETL任务是一组串行ETL任务中的非首任务时,该有效ETL任务的执行需要依赖该串行ETL任务中另一个有效ETL任务执行结束才能执行,例如,有效ETL任务1、有效ETL任务2组成一组串行ETL任务,且有效ETL任务I执行成功后才能执行有效ETL任务2,则有效ETL任务2的执行条件包括执行触发条件,当有效ETL任务I执行成功后,月艮务器根据有效ETL任务I的执行结果将有效ETL任务2的执行触发条件配置为已成立,有效ETL任务2才满足执行触发条件这个执行条件。
[0040]步骤202:如果满足执行条件,服务器发送携带有效ETL任务的任务标识的执行请求报文给客户端,使得客户端根据该有效ETL任务的任务标识确定匹配的ETL任务脚本语言文件并执行,该匹配的ETL任务脚本语言文件嵌套有包含具体业务逻辑的数据库命令。
[0041]本步骤中,服务器将满足执行条件的有效ETL任务的任务标识携带于执行请求报文中发送给对应的客户端,本步骤之前,服务器已将该有效ETL任务的具体内容用脚本语言文件发送给某个客户端进行保存,当该客户端后续接收到服务器发送的执行请求报文后,根据该执行请求报文携带的有效ETL任务标识确定匹配的ETL任务脚本语言文件,并执行该文件,进行相应的数据抽取、转换和加载。
[0042]步骤203:服务器接收客户端返回的携带有效ETL任务的执行结果及该有效ETL任务的任务标识的执行应答报文。
[0043]本步骤中,服务器接收客户端返回的执行应答报文携带的有效ETL任务的执行结果为任务执行成功或失败,该应答报文中的任务标识用于服务器判断其携带的执行结果所属的ETL任务。
[0044]更进一步地,服务器判断该有效ETL任务是否存在下一级串行ETL任务,如果是,根据该有效ETL任务的执行结果将相应下一级串行ETL任务的执行触发条件配置为已成立,具体地:
[0045]如果该有效ETL任务执行成功,则将依赖该有效ETL任务执行成功后执行的下一级串行ETL任务的执行触发条件配置为已成立;
[0046]如果该有效ETL任务执行失败,则将依赖该有效ETL任务执行失
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1