CN106951315B - 一种基于etl的数据任务调度方法及系统 - Google Patents
一种基于etl的数据任务调度方法及系统 Download PDFInfo
- Publication number
- CN106951315B CN106951315B CN201710162185.XA CN201710162185A CN106951315B CN 106951315 B CN106951315 B CN 106951315B CN 201710162185 A CN201710162185 A CN 201710162185A CN 106951315 B CN106951315 B CN 106951315B
- Authority
- CN
- China
- Prior art keywords
- data
- task
- layer
- etl
- dwsdata
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供的基于ETL的数据任务调度方法,ETL数据的调度系统包括get层、dwsdata层、dwpdata层和dwpmart层;接收数据业务对应的数据源数据,在系统指定的数据分层创建数据任务,并指定该数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,即指定使用四个数据分层中的哪些层来完成该数据业务。进行数据分层后,被调度起来的数据任务会调用相应的系统资源,未被调度的数据任务不会调用相应的系统资源,因此,实现合理充分利用系统资源。而且,在执行数据任务的过程中,当出现上游任务的数据出错导致下游任务失败时,能够快速准确地确定失败任务的位置信息;以便系统维护人员根据失败任务的位置快速找到相应的日志信息并快速恢复数据。
Description
技术领域
本申请属于数据任务调度技术领域,尤其涉及一种基于ETL的数据任务调度方法及系统。
背景技术
ETL(Extract-Transform-Load,抽取、转换、加载)技术用来描述将数据从来源端经过抽取、转换、加载至目的端的过程。
ETL技术发展很早,早起都是集成到各大数据库产品当中,作为一个小功能,非常简单。随着数据规模不断增大、复杂度不断升高,出现了ETL工具,但是,仅支持传统的数据库接口和文本文件接口。随着大数据快速发展,出现一些开源的ETL工具,但是稳定性不是很高,经常出现未知假死状态,并且也没有较好的大数据领域实践,所能承载的数据量达不到大数据级别。传统ETL调度系统无法合理充分使用系统资源,而且,无法准确定位错误数据导致的影响范围。
发明内容
有鉴于此,本申请的目的在于提供一种基于ETL的数据任务调度方法及系统,以实现充分使用系统资源,并准确定位错误数据导致的影响范围,以及精准恢复数据。本申请提供的技术方案如下:
第一方面,本申请提供一种基于ETL的数据任务调度方法,包括:
获取数据业务对应的数据源数据;
根据所述数据源数据创建数据任务,并指定与所述数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,上游数据分层和下游数据分层是get层、dwsdata层、dwpdata层和dwpmart层中的任意一个;
根据所述数据任务的依赖关系顺序执行相应的数据任务;
在执行数据任务过程中,当出现上游任务的数据出错导致下游任务失败时,确定失败任务的位置信息。
可选地,若所述数据业务需要依次经过get层、dwsdata层、dwpdata层和dwpmart层四个数据分层进行处理,则所述根据所述数据任务的依赖关系顺序执行相应的数据任务,包括:
所述数据源数据流入所述get层,在所述get层将所述数据源数据同步存储到ETL服务器中;
所述数据源数据从所述get层流入所述dwsdata层,在所述dwsdata层将所述数据源数据导入数据库中;
所述数据源数据从所述dwsdata层流入dwpdata层,在所述dwpdata层按照业务主题清洗所述数据源数据;
清洗后的数据从所述dwpdata层流入dwpmart层,在所述dwpmart层将所述清洗后的数据转换为业务需要的数据结构。
可选地,所述方法还包括:
按照指定时间间隔读取所述ETL数据任务调度系统的状态信息,所述状态信息包括CPU负载信息、内存使用率、磁盘IO信息以及任务执行的状态;
将所述任务执行状态按照预设时间间隔推送给指定即时通讯账号,以及,将出现异常或高负载的状态信息以推送信息方式发送给所述指定即时通信账号,所述推送信息的类型是文本和图片中的至少一种;
当出现所述失败任务时,将所述失败任务的任务名称和任务状态推送给指定即时通信账号。
可选地,所述方法还包括:
将所述新任务添加到未执行作业列表及作业列表中,所述未执行列表用于记录ETL调度系统中所有未执行的任务,所述作业列表用于记录所述ETL调度系统中的所有任务。
可选地,所述方法还包括:
判断所述数据源数据的数据类型,所述数据类型包括数据库类型和文本类型;
当所述数据源数据是文本类型时,将所述数据源数据自动导入ETL调度系统的数据库中。
可选地,所述方法还包括:
确定出所述失败任务所在的数据分层及失败任务名称后,抓取所述数据分层中所述失败任务名称对应的日志内容,以使系统维护人员根据所述日志内容确定失败原因。
第二方面,本申请提供一种基于ETL的数据任务调度系统,包括:
获取单元,用于获取数据业务对应的数据源数据;
任务创建单元,用于根据所述数据源数据创建数据任务,并指定与所述数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,上游数据分层和下游数据分层是get层、dwsdata层、dwpdata层和dwpmart层中的任意一个;
任务执行单元,用于根据所述数据任务的依赖关系顺序执行相应的数据任务;
错误定位单元,用于在所述任务执行单元执行数据任务过程中,当出现上游任务的数据出错导致下游任务失败时,确定失败任务的位置信息。
可选地,若所述数据业务需要依次经过get层、dwsdata层、dwpdata层和dwpmart层四个数据分层进行处理,则所述根据所述数据任务的依赖关系顺序执行相应的数据任务,具体用于:
所述数据源数据流入所述get层,在所述get层将所述数据源数据同步存储到ETL服务器中;
所述数据源数据从所述get层流入所述dwsdata层,在所述dwsdata层将所述数据源数据导入数据库中;
所述数据源数据从所述dwsdata层流入dwpdata层,在所述dwpdata层按照业务主题清洗所述数据源数据;
清洗后的数据从所述dwpdata层流入dwpmart层,在所述dwpmart层将所述清洗后的数据转换为业务需要的数据结构。
可选地,所述系统还包括:
状态收集单元,用于按照指定时间间隔读取所述ETL数据任务调度系统的状态信息,所述状态信息包括CPU负载信息、内存使用率、磁盘IO信息以及任务执行的状态;
状态消息推送单元,用于将所述任务执行状态按照预设时间间隔推送给指定即时通讯账号,以及,将出现异常或高负载的状态信息以推送信息方式发送给所述指定即时通信账号,所述推送信息的类型是文本和图片中的至少一种;
错误消息推送单元,用于当出现所述失败任务时,将所述失败任务的任务名称和任务状态推送给指定即时通信账号。
可选地,还包括:
任务添加单元,用于将所述新任务添加到未执行作业列表及作业列表中,所述未执行列表用于记录ETL调度系统中所有未执行的任务,所述作业列表用于记录所述ETL调度系统中的所有任务。
本申请实施例提供的基于ETL的数据任务调度方法,将ETL数据的调度系统分成四个数据分层,分别是get层、dwsdata层、dwpdata层和dwpmart层,接收数据业务对应的数据源数据,在系统指定的数据分层创建数据任务,并指定该数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,即指定使用四个数据分层中的哪些层来完成该数据业务。进行数据分层后,被调度起来的数据任务会调用相应的系统资源(例如,CPU、内存等),未被调度的数据任务不会调用相应的系统资源,因此,实现合理充分利用系统资源。而且,在执行数据任务的过程中,当出现上游任务的数据出错导致下游任务失败时,能够快速准确地确定失败任务的位置信息(例如,所在的数据分层和任务节点),以便系统维护人员根据失败任务的位置快速找到相应的日志信息并快速恢复数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一种基于ETL的数据任务调度系统的数据流图;
图2是本申请实施例一种基于ETL的数据任务调度方法的流程图;
图3是本申请实施例另一种基于ETL的数据任务调度方法的流程图;
图4是本申请实施例又一种基于ETL的数据任务调度方法的流程图;
图5是本申请实施例一种基于ETL的数据任务调度系统的框图;
图6是本申请实施例另一种基于ETL的数据任务调度系统的框图;
图7是本申请实施例又一种基于ETL的数据任务调度系统的框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1和图2,图1示出了本申请实施例一种基于ETL数据任务调度系统的数据流图,图2示出了本申请实施例一种基于ETL的数据任务调度方法的流程图。
如图1所示,本实施例首先将ETL数据任务调度系统按照数据仓库架构划分成get层、dwsdata层、dwpdata层和dwpmart层四个数据分层。每个数据业务会经过这四个数据分层的至少一个数据分层完成,具体经过哪些数据分层来完成可以根据数据业务的需求来设定。
其中,get层的目的是将同构或异构的数据源数据同步一份到ETL服务器中;dwsdata层的目的是数据源数据导入数据库或数据集群中;dwpdata层的目的是按照业务主题清洗出不同功能的数据;dwpmart层的目的是将数据转换成业务能识别的结构,以及,将数据转换成报表格式。
每个数据分层处理数据任务的过程均包括以下流程:
1)创建任务;当接收上一数据分层发送的数据流时,创建新任务;
新建任务时,可以设置一些基本选项,例如,执行周期、任务创建时间、容许错误数、脚本、上游依赖任务、下游依赖任务等。
2)加入作业列表和未执行作业列表;将创建的新任务加入未执行作业列表和作业列表中;
从作业列表中能够搜索到ETL调度系统中的所有任务;未执行作业列表是ETL调度系统中所有未执行的任务,例如,可以看到指定时间内未执行和正在运行或者等待失败的任务。
需要说明的是,作业列表和未执行作业列表是ETL调度系统的,列表中包含每个数据分层的相应任务。
3)按照指定执行方式和指定周期执行相应的数据任务。
指定执行方式包括按关联关系执行和单个任务执行两种方式;
按关联关系执行,从未执行作业列表中确定起始任务和指定日期,到达指定日期后,系统会按照依赖关系执行相应的任务;
单个任务执行,指定具体日期和任务后,在指定日期之后,执行指定任务,指定任务可以是任意一个未执行的任务。与按关联关系执行方式不同的是,此种方式执行完指定任务后就结束,不会执行指定任务依赖的下游任务。
如图2所示,数据任务调度过程包括以下步骤:
S110,获取数据业务对应的数据源数据。
数据源数据是数据源系统中的数据,即进入ETL调度系统之前的数据。
在本申请一种可能的实现方式中,获得数据源数据后,首先确定数据源数据是数据库类型还是文本文件类型,如果是文本文件类型,则可以通过自助导入数据功能将文本格式数据自动导入到ETL调度系统的数据库中。
S120,根据数据源数据创建数据任务,并指定与数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个;上游数据分层和下游数据分层是get层、dwsdata层、dwpdata层和dwpmart层中的任意一个。
接收到数据源数据的数据分层,创建数据任务,创建任务时,指定该任务依赖的上游数据分层任务和/或下游数据分层任务,即指定利用ETL调度系统中的哪些数据分层处理该数据业务。
例如,当get层接收到数据源数据时,仅需要指定新建任务的下游数据分层任务,其中,get层任务的下游数据分层可以是dwsdata层、dwpdata层和dwpmart层中的任一层;
又如,当dwpdata层接收到数据时,需要指定上游数据分层任务和下游数据分层任务;其中,上游数据分层可以是get层或dwsdata层;下游数据分层是dwpmart层。
又如,当dwpmart层接收到数据时,仅需要指定新建任务的上游数据分层任务,其中,上游数据分层可以是get层、dwsdata层、dwpdata层中的任一层。
S130,根据所述数据任务的依赖关系顺序执行相应的数据任务。
根据数据任务的依赖关系顺序执行相应的数据任务,例如,数据业务指定依次通过get层和dwpmart层处理,则执行该数据业务在get层的数据任务后执行dwpmart层的相应数据任务。
S140,在执行数据任务过程中,当出现上游任务的数据出错导致下游任务失败时,确定失败任务的位置信息。
每个数据分层中的每个数据任务都有数据容错功能,由于有清晰的数据分层,当系统中出现上游任务的数据出错导致的后续任务失败或错误时,能够准确定位失败任务出现在哪一个数据分层,从而快速定位到出错任务,因此,使系统维护人员根据失败任务的位置尽快找到相应的日志信息并进行数据恢复,而且,此过程并不影响与失败任务没有依赖关系的任务。
本申请实施例提供的基于ETL的数据任务调度方法,将ETL数据的调度系统分成四个数据分层,分别是get层、dwsdata层、dwpdata层和dwpmart层,接收数据业务对应的数据源数据,在系统指定的数据分层创建数据任务,并指定该数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,即指定使用四个数据分层中的哪些层来完成该数据业务。进行数据分层后,被调度起来的数据任务会调用相应的系统资源(例如,CPU、内存等),未被调度的数据任务不会调用相应的系统资源,因此,实现合理充分利用系统资源。而且,在执行数据任务的过程中,当出现上游任务的数据出错导致下游任务失败时,能够快速准确地确定失败任务的位置信息(例如,所在的数据分层和任务节点),以便系统维护人员根据失败任务的位置快速找到相应的日志信息并快速恢复数据。
请参见图3,示出了本申请实施例另一种基于ETL的数据任务调度方法的流程图,本实施例中数据业务需要依次经过get层、dwsdata层、dwpdata层和dwpmart层四个数据分层的处理,如图3所示,该方法包括以下步骤:
S210,数据源数据流入get层,在所述get层将所述数据源数据同步存储到ETL服务器中。
获得数据源数据后,数据首先流入get层,get层将数据源数据同步一份到ETL服务器中,避免由于网络原因影响数据源系统性能
S220,数据源数据从get层流入dwsdata层,在dwsdata层将数据源数据存入数据库中。
get层将数据源数据同步到ETL服务器中后,数据流入dwsdata层,在dwsdata层将数据导入数据库或集群中。
S230,数据源数据从dwsdata层流入dwpdata层,在dwpdata层按照业务主题清洗数据源数据。
dwsdata层将数据导入数据库或集群后,数据流入dwpdata层,dwpdata层按照业务主题清洗出不同功能的数据表。
S240,清洗后的数据从dwpdata层流入dwpmart层,在dwpmart层将清洗后的数据转换为业务需要的数据结构。
经过dwpdata层清洗后的数据流入dwpmart层,在dwpmart层将数据转换为业务能识别的数据结构,以便数据业务使用这些数据;以及将数据转换成报表格式,以便将数据加入报表中呈现给用户。
本实施例提供的基于ETL的数据任务调度方法,将ETL数据的调度系统分成四个数据分层,分别是get层、dwsdata层、dwpdata层和dwpmart层,接收数据任务并获取对应的数据源数据,数据流入get层,在get层将数据源数据同步一份到ETL服务器中;然后,数据流入dwsdata层,在dwsdata层将数据存入数据库中,接着,数据流入dwpdata层按照业务主题清洗出不同功能的数据,然后,数据流入dwpmart层将所述清洗后的数据转换为业务需要的数据结构。进行数据分层后,任务到达的数据层会调度相应的系统资源,未接收到任务的数据分层不会调度系统资源,从而实现合理充分利用系统资源。
请参见图4,示出了本申请实施例又一种基于ETL的数据任务调度方法的流程图,本实施例在图2所示实施例的基础上增加了健康监控流程,在ETL调度系统运行过程中,健康监控流程负责监控系统的状态(正常、异常等),通过指定即时通信软件向系统维护人员推送消息。
如图4所示,健康监控流程包括以下步骤:
S310,按照指定时间间隔读取ETL数据任务调度系统的状态信息。
指定时间间隔可以根据实际情况设定。
在本申请一种可能的实现方式中,该状态信息包括:CPU负载信息、内存使用率、磁盘IO信息以及任务执行的状态。
S320,将任务执行状态按照预设时间间隔推送给指定即时通讯账号。
预设时间间隔可以根据实际需求设定。例如,系统默认将每天的任务执行的状态推送出去。推送信息的类型可以是自定义文字和/或图片。
S330,处理所述状态信息,并将异常和高负载的功能单元信息推送给指定即时通信账号。
根据预设规则处理采集到的系统的状态信息,将状态异常或高负载的功能单元的信息推送给系统维护人员。通过指定的即时通信方式推送给系统维护人员,例如,微信。
S340,当出现失败任务时,将失败任务的任务名称和任务状态推送给指定即时通信账号。
当ETL调度系统中出现失败任务时,通过指定即时通信方式将失败任务的任务名称和任务状态推送给系统维护人员。
需要说明的是,图4仅仅是一个示意性的流程图,S310~S340可以在图2所示的任意步骤后执行。
本实施例提供的基于ETL的数据任务调度方法,采用全局的健康监控技术,不仅可以对ETL服务器的硬件状态进行监控,还可以对每个调度任务进行跟踪和状态监控;而且,采集到的状态信息通过即时通信软件推送给系统维护人员,此种方式实时性高,方便系统维护人员快速处理异常。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
相应于上述的基于ETL的数据任务调度方法实施例,本申请还提供了基于ETL的数据任务调度系统实施例。
请参见图5,示出了本申请实施例一种基于ETL的数据任务调度系统的框图,如图5所示,该系统包括:获取单元110、任务创建单元120、任务执行单元130和错误定位单元140;
获取单元110,用于获取数据业务对应的数据源数据。
数据源数据是数据源系统中的数据,即进入ETL调度系统之前的数据。
在本申请一种可能的实现方式中,获得数据源数据后,首先确定数据源数据是数据库类型还是文本文件类型,如果是文本文件类型,则可以通过自助导入数据功能将文本格式数据自动导入到ETL调度系统的数据库中。
任务创建单元120,用于根据所述数据源数据创建数据任务,并指定与所述数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,上游数据分层和下游数据分层是get层、dwsdata层、dwpdata层和dwpmart层中的任意一个。
接收到数据源数据的数据分层,创建数据任务,创建任务时,指定该任务依赖的上游数据分层任务和/或下游数据分层任务,即指定利用ETL调度系统中的哪些数据分层处理该数据业务。
任务执行单元130,用于根据所述数据任务的依赖关系顺序执行相应的数据任务。
根据数据任务的依赖关系顺序执行相应的数据任务,例如,数据业务指定依次通过get层和dwpmart层处理,则执行该数据业务在get层的数据任务后执行dwpmart层的相应数据任务。
若所述数据业务需要依次经过get层、dwsdata层、dwpdata层和dwpmart层四个数据分层进行处理,则所述根据所述数据任务的依赖关系顺序执行相应的数据任务,具体用于:
所述数据源数据流入所述get层,在所述get层将所述数据源数据同步存储到ETL服务器中;所述数据源数据从所述get层流入所述dwsdata层,在所述dwsdata层将所述数据源数据导入数据库中;所述数据源数据从所述dwsdata层流入dwpdata层,在所述dwpdata层按照业务主题清洗所述数据源数据;清洗后的数据从所述dwpdata层流入dwpmart层,在所述dwpmart层将所述清洗后的数据转换为业务需要的数据结构。
错误定位单元140,用于在所述任务执行单元执行数据任务过程中,当出现上游任务的数据出错导致下游任务失败时,确定失败任务的位置信息。
每个数据分层中的每个数据任务都有数据容错功能,由于有清晰的数据分层,当系统中出现上游任务的数据出错导致的后续任务失败或错误时,能够准确定位失败任务出现在哪一个数据分层,从而快速定位到出错任务,因此,使系统维护人员根据失败任务的位置尽快找到相应的日志信息并进行数据恢复,而且,此过程并不影响与失败任务没有依赖关系的任务。
本申请实施例提供的基于ETL的数据任务调度系统,将ETL数据的调度系统分成四个数据分层,分别是get层、dwsdata层、dwpdata层和dwpmart层,接收数据业务对应的数据源数据,在系统指定的数据分层创建数据任务,并指定该数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个,即指定使用四个数据分层中的哪些层来完成该数据业务。进行数据分层后,被调度起来的数据任务会调用相应的系统资源(例如,CPU、内存等),未被调度的数据任务不会调用相应的系统资源,因此,实现合理充分利用系统资源。而且,在执行数据任务的过程中,当出现上游任务的数据出错导致下游任务失败时,能够快速准确地确定失败任务的位置信息(例如,所在的数据分层和任务节点),以便系统维护人员根据失败任务的位置快速找到相应的日志信息并快速恢复数据。
请参见图6,示出了本申请实施例另一种基于ETL的数据任务调度系统的框图,本实施例在图5所示实施例的基础上还包括:状态收集单元210、状态消息推送单元220和错误消息推送单元230;
状态收集单元210,用于按照指定时间间隔读取所述ETL数据任务调度系统的状态信息。
所述状态信息包括CPU负载信息、内存使用率、磁盘IO信息以及任务执行的状态。
状态消息推送单元220,用于将所述任务执行状态按照预设时间间隔推送给指定即时通讯账号,以及,将出现异常或高负载的状态信息以推送信息方式发送给所述指定即时通信账号,所述推送信息的类型是文本和图片中的至少一种。
预设时间间隔可以根据实际需求设定。例如,系统默认将每天的任务执行的状态推送出去。推送信息的类型可以是自定义文字和/或图片。
错误消息推送单元230,用于当出现所述失败任务时,将所述失败任务的任务名称和任务状态推送给指定即时通信账号。
根据预设规则处理采集到的系统的状态信息,将状态异常或高负载的功能单元的信息推送给系统维护人员。通过指定的即时通信方式推送给系统维护人员,例如,微信。
当ETL调度系统中出现失败任务时,通过指定即时通信方式将失败任务的任务名称和任务状态推送给系统维护人员。
本实施例提供的基于ETL的数据任务调度系统,采用全局的健康监控技术,不仅可以对ETL服务器的硬件状态进行监控,还可以对每个调度任务进行跟踪和状态监控;而且,采集到的状态信息通过即时通信软件推送给系统维护人员,此种方式实时性高,方便系统维护人员快速处理异常。
请参见图7,示出了本申请实施例又一种基于ETL的数据任务调度系统的框图,本实施例在图5所示实施例的基础上还可以包括:数据类型判断单元310、自动导入单元320、任务添加单元330和日志抓取单元340。本实施例还可以在图6所示实施上增加以上单元,此处不再赘述。
数据类型判断单元310,用于判断数据源数据的数据类型,所述数据类型包括数据库类型和文本类型。
自动导入单元320,用于当数据源数据是文本类型时,将数据源数据自动导入ETL调度系统的数据库中。
任务添加单元330,用于当任务创建单元创建完数据任务后将创建的任务自动添加到作业列表和未执行作业列表中。
所述未执行列表用于记录ETL调度系统中所有未执行的任务,所述作业列表用于记录所述ETL调度系统中的所有任务。
日志抓取单元340,用于确定出失败任务所在的数据分层及失败任务名称后,抓取所述数据分层中所述失败任务名称对应的日志内容,以使系统维护人员根据所述日志内容确定失败原因。
当错误定位单元确定出失败任务所在的数据分层及失败任务名称后,利用该日志抓取单元抓取失败任务对应的日志内容,以使系统维护人员根据日志内容确定失败原因,并根据任务之间的依赖关系快速恢复数据。
本实施例提供的基于ETL的数据任务调度系统,当出现上游任务的数据出错导致下游任务失败时,能够快速准确地确定失败任务的位置信息(例如,所在的数据分层和任务节点),以便系统维护人员根据失败任务的位置快速找到相应的日志信息并快速恢复数据;数据恢复后,根据任务之间的依赖关系重新调度因为该失败任务影响的下游任务。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (8)
1.一种基于ETL的数据任务调度方法,其特征在于,基于ETL的数据任务调度系统从上至下依次划分为get层、dwsdata层、dwpdata层和dwpmart层四个数据分层,所述方法包括:
获取数据业务对应的数据源数据;
根据所述数据源数据创建数据任务,并指定与所述数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个;其中,上游数据分层是所述数据任务当前所在数据分层的上级数据分层中的任意一个,所述下游数据分层是所述数据任务当前所在数据分层的下级数据分层中的任意一个;
根据所述数据任务的依赖关系顺序执行相应的数据任务;
在执行数据任务过程中,当出现上游任务的数据出错导致下游任务失败时,确定失败任务的位置信息;
其中,若所述数据业务需要依次经过get层、dwsdata层、dwpdata层和dwpmart层四个数据分层进行处理,则所述根据所述数据任务的依赖关系顺序执行相应的数据任务,包括:
所述数据源数据流入所述get层,在所述get层将所述数据源数据同步存储到ETL服务器中;
所述数据源数据从所述get层流入所述dwsdata层,在所述dwsdata层将所述数据源数据导入数据库中;
所述数据源数据从所述dwsdata层流入dwpdata层,在所述dwpdata层按照业务主题清洗所述数据源数据;
清洗后的数据从所述dwpdata层流入dwpmart层,在所述dwpmart层将所述清洗后的数据转换为业务需要的数据结构。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照指定时间间隔读取所述ETL数据任务调度系统的状态信息,所述状态信息包括CPU负载信息、内存使用率、磁盘IO信息以及任务执行状态;
将所述任务执行状态按照预设时间间隔推送给指定即时通讯账号,以及,将出现异常或高负载的状态信息以推送信息方式发送给所述指定即时通信账号,所述推送信息的类型是文本和图片中的至少一种;
当出现所述失败任务时,将所述失败任务的任务名称和任务状态推送给指定即时通信账号。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将新任务添加到未执行作业列表及作业列表中,所述未执行作业列表用于记录ETL调度系统中所有未执行的任务,所述作业列表用于记录所述ETL调度系统中的所有任务。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
判断所述数据源数据的数据类型,所述数据类型包括数据库类型和文本类型;
当所述数据源数据是文本类型时,将所述数据源数据自动导入ETL调度系统的数据库中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定出所述失败任务所在的数据分层及失败任务名称后,抓取所述数据分层中所述失败任务名称对应的日志内容,以使系统维护人员根据所述日志内容确定失败原因。
6.一种基于ETL的数据任务调度系统,其特征在于,所述系统从上至下依次划分为get层、dwsdata层、dwpdata层和dwpmart层四个数据分层,所述系统包括:
获取单元,用于获取数据业务对应的数据源数据;
任务创建单元,用于根据所述数据源数据创建数据任务,并指定与所述数据任务关联的上游数据分层任务和下游数据分层任务中的至少一个;其中,上游数据分层是所述数据任务当前所在数据分层的上级数据分层中的任意一个,所述下游数据分层是所述数据任务当前所在数据分层的下级数据分层中的任意一个;
任务执行单元,用于根据所述数据任务的依赖关系顺序执行相应的数据任务;
错误定位单元,用于在所述任务执行单元执行数据任务过程中,当出现上游任务的数据出错导致下游任务失败时,确定失败任务的位置信息;
其中,若所述数据业务需要依次经过get层、dwsdata层、dwpdata层和dwpmart层四个数据分层进行处理,则所述根据所述数据任务的依赖关系顺序执行相应的数据任务,具体用于:
所述数据源数据流入所述get层,在所述get层将所述数据源数据同步存储到ETL服务器中;
所述数据源数据从所述get层流入所述dwsdata层,在所述dwsdata层将所述数据源数据导入数据库中;
所述数据源数据从所述dwsdata层流入dwpdata层,在所述dwpdata层按照业务主题清洗所述数据源数据;
清洗后的数据从所述dwpdata层流入dwpmart层,在所述dwpmart层将所述清洗后的数据转换为业务需要的数据结构。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
状态收集单元,用于按照指定时间间隔读取所述ETL数据任务调度系统的状态信息,所述状态信息包括CPU负载信息、内存使用率、磁盘IO信息以及任务执行的状态;
状态消息推送单元,用于将所述任务执行状态按照预设时间间隔推送给指定即时通讯账号,以及,将出现异常或高负载的状态信息以推送信息方式发送给所述指定即时通信账号,所述推送信息的类型是文本和图片中的至少一种;
错误消息推送单元,用于当出现所述失败任务时,将所述失败任务的任务名称和任务状态推送给指定即时通信账号。
8.根据权利要求6所述的系统,其特征在于,还包括:
任务添加单元,用于将新任务添加到未执行作业列表及作业列表中,所述未执行作业列表用于记录ETL调度系统中所有未执行的任务,所述作业列表用于记录所述ETL调度系统中的所有任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710162185.XA CN106951315B (zh) | 2017-03-17 | 2017-03-17 | 一种基于etl的数据任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710162185.XA CN106951315B (zh) | 2017-03-17 | 2017-03-17 | 一种基于etl的数据任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951315A CN106951315A (zh) | 2017-07-14 |
CN106951315B true CN106951315B (zh) | 2020-05-22 |
Family
ID=59472643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710162185.XA Active CN106951315B (zh) | 2017-03-17 | 2017-03-17 | 一种基于etl的数据任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951315B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107643956B (zh) * | 2017-08-22 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 定位异常数据的异常起源的方法和装置 |
CN109241042B (zh) * | 2018-07-24 | 2020-12-08 | 新华三大数据技术有限公司 | 数据处理方法、装置以及电子设备 |
CN109344145B (zh) * | 2018-09-07 | 2022-12-27 | 北明软件有限公司 | 一种基于数据标准规范的数据清洗方法、装置和系统 |
CN110968486A (zh) * | 2018-09-29 | 2020-04-07 | 北京国双科技有限公司 | 一种脚本运行方法及装置 |
CN110287245B (zh) * | 2019-05-15 | 2021-03-19 | 北方工业大学 | 用于分布式etl任务调度执行的方法及系统 |
CN111666324B (zh) * | 2020-05-18 | 2023-06-27 | 新浪技术(中国)有限公司 | 一种关系型数据库之间的etl调度方法及装置 |
CN111651460A (zh) * | 2020-06-11 | 2020-09-11 | 上海德易车信息科技有限公司 | 一种数据治理方法、装置、电子设备及可读存储介质 |
CN112559161A (zh) * | 2021-02-19 | 2021-03-26 | 北京搜狐新媒体信息技术有限公司 | 一种任务调度方法及系统 |
CN117076542B (zh) * | 2023-08-29 | 2024-06-07 | 中国中金财富证券有限公司 | 数据处理方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度系统及方法 |
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
CN104317843A (zh) * | 2014-10-11 | 2015-01-28 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941397B2 (en) * | 2004-02-25 | 2011-05-10 | International Business Machines Corporation | Dynamically capturing data warehouse population activities for analysis, archival, and mining |
US8380657B2 (en) * | 2008-09-19 | 2013-02-19 | Oracle International Corporation | Techniques for performing ETL over a WAN |
-
2017
- 2017-03-17 CN CN201710162185.XA patent/CN106951315B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度系统及方法 |
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
CN104317843A (zh) * | 2014-10-11 | 2015-01-28 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106951315A (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951315B (zh) | 一种基于etl的数据任务调度方法及系统 | |
CN109684053B (zh) | 大数据的任务调度方法和系统 | |
CN109947746B (zh) | 一种基于etl流程的数据质量管控方法和系统 | |
Mi et al. | Toward fine-grained, unsupervised, scalable performance diagnosis for production cloud computing systems | |
US8938421B2 (en) | Method and a system for synchronizing data | |
CN111181767A (zh) | 一种面向复杂系统的监控和故障自愈系统及其方法 | |
JP4458493B2 (ja) | ログ通知条件定義支援装置とログ監視システムおよびプログラムとログ通知条件定義支援方法 | |
CN109495308A (zh) | 一种基于管理信息系统的自动化运维系统 | |
CN108881477B (zh) | 一种基于分布式的文件采集监控的方法 | |
CN106874159A (zh) | 一种集群式自动化测试方法 | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
CN107025224B (zh) | 一种监控任务运行的方法和设备 | |
US10860454B2 (en) | Analyzing large-scale data processing jobs | |
CN108804215A (zh) | 一种任务处理方法、装置以及电子设备 | |
CN102479113A (zh) | 异常自适应处理方法及系统 | |
CN117130730A (zh) | 面向联邦Kubernetes集群的元数据管理方法 | |
CN110780981B (zh) | 一种hadoop大数据平台的任务调度管理系统及方法 | |
CN115168457A (zh) | 一种基于元数据管理的可视化处理方法和可视化处理装置 | |
CN107451056B (zh) | 监听接口测试结果的方法及装置 | |
CN105025179A (zh) | 呼叫中心座席的监控方法及系统 | |
CN112506957A (zh) | 工作流依赖关系的确定方法及装置 | |
CN117149909A (zh) | 数据同步方法、装置、存储介质及处理器 | |
JP2006059108A (ja) | 情報システム開発試験支援システム | |
CN112765188B (zh) | 配置信息处理方法、配置管理系统、电子设备及存储介质 | |
US8631391B2 (en) | Method and a system for process discovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |