ETL流程及调度设计

1.1 ETL流程及调度设计(ETL Schedule)(PSP)
 ETL调度的目标
快速见效系统要抽取39家分行四个系统的数据进行加工处理,数据从下传文件到ODS库,ODS库到LDM,再计算PI值和汇总PI,整个ETL处理过程需按一定步骤和满足某些条件进行,某些关键的文件如汇率数据、机构表等都会影响整个ETL的处理,因此,快速见效的ETL处理流程将是一个比较复杂的过程。
考虑到将来ETL处理的多样性和复杂性,引入了Job的概念,将ETL处理过程分为一个一个的Job,Job可能是清洗\加载\转换,也可能是PI加工。为了对复杂的ETL处理过程更好的调度和监控,专门设计一个ETL调度系统。通过ETL调度系统的开发使用,将清晰、高效地通过Job调度的方式处理快速见效的ETL过程。

. ETL调度功能说明

调度维护
1) 调度系统参数维护,对调度系统的公共参数:期数、进程数、数据日期、本期开始日期和本期结束日期进行设置和修改。
2) 下传文件信息维护,维护所有区域的下传文件名称、文件状态、文件数据日期和对应区域的归属关系。
3) 作业步定义与维护,定义作业对应的实际ETL处理过程,生成作业编号,定义作业类型和作业的驱动关系,作业的运行所需要的条件。
4) 调度异常处理,对调度过程中出现的异常情况进行处理,提供错误查找、出错重跑功能。

日志管理
1) 调度过程日志,管理记录调度中的主要过程和异常信息,如调度开始、调度完成、数据库操作异常和读写文件异常的日志。
2) Job执行日志,管理记录Job执行信息的日志,提供该日志的查询、删除和执行状态重置功能。
3) Job详细事件日志,管理记录Job执行中的详细事件(清洗记录条数、数据库具体操作情况)的日志,提供对日志的查询、删除操作。

作业调度
正常情况下的作业调度,对整个ETL过程进行调度,提供分段提交处理和自动提交处理功能。

可调度的Job类型
1) C程序(清洗),ETL调度提供与C程序的接口,从而可以对C程序进行调度。
2) 用C封装的SQLLDR(加载),将ORACLE SQLLDR封装在C程序中进行调度。
3) PROC程序(合并、转换),对合并和转换过程,调度提供相应的接口,从而对ORACLE的PROC程序进行调度。
4) 存储过程(转换),将存储过程封装在PROC程序中进行调度。
5) DataStage(PI加工),调度系统提供了与DataStage的接口,可以对DataStage各个种类的Job进行调度。

 

 ETL总体流程图

 作业步(ETL_Step)的功能类型及数据处理
0. 文件FTP: 将各个分行的源业务系统(NLNS、SBS、NACS)的以预定的文件格式以FTP方式通过中行网络传输到QUICK WIN项目系统的ETL服务器。
1. 文件注册:0中FTP的源数据文件,经过解压缩后,必须在QUICK WIN项目系统中注册,只有经过文件注册过程后QUICK WIN项目系统才能确认“那些分行的源数据” 已经正确到达,ETL系统就可以相应的处理流程。
2. 数据清洗:从各分行FTP来的源数据文件,可能存在非法数据或冗余数据或者数据规则标准不统一,而且文件格式上也不能被QUICK WIN项目的ETL过程立即使用,因此必须对数据文件进行数据清洗(删除非法、冗余数据、统一数据规则标准、转换成QUICK WIN项目的ETL过程能“加载”处理的文件格式)。
3. 数据加载:将清洗后的数据(文件格式)通过SQL LOADER加载到ORACLE数据库相应的数据库表中。
4. ODS数据合并:将各个分行的相同类型的源业务系统数据合并到ORACLE数据库中同一张数据表中。
5. LDM数据加工:面向业务生产数据(ODS数据库表中的数据)根据“QUICK WIN分析模型”将数据转换、加工成面向分析主题的“分析型数据”。
6. PI加工:根据业务需求、业务规则和分析模型,从LDM数据表中加工出QUICK WIN所需的PI。
7. 报表加工:根据业务需求、业务规则和分析模型,从LDM数据表和PI表中中加工出QUICK WIN所需的报表。
8. ETL调度程序:调度ETL加工各个过程的运行。
9. 监控程序:监控ETL过程的运行状态(加工进度、加工效率、成功、警告、错误等)信息,及时向系统的运行维护人员报告系统运行状态。

 作业步(ETL_Step)的流程和依存关系。
1) 清洗类型的Job的运行依赖于相应下传文件的状态,必须是在下传文件检查及登记后才能进行清洗Job的调度。
2) ODS层加载类型Job的运行依赖于相应的清洁文件是否由清洗程序生成,即相应的清洗Job是否正确运行完成。
3) 从ODS到LDM的数据转换依赖ODS层的相关数据是否齐备,即相应的加载Job是否正确运行完成。
4) PI加工的进行依赖LDM层数据,即相应的转换Job是否正确运行完成。
5) 根据数据依赖关系,分区域进行作业调度,各区域之间的ETL处理可以并行处理。

作业调度方式
2. 调度策略
采取条件驱动的策略来进行Job的调度,Job一满足驱动条件便开始运行。针对快速见效系统的ETL情况,定义四种类型的驱动条件:
1) 前导Job驱动
ETL过程中各个操作需按一定次序进行,前导Job表示ETL过程中先要进行处理的Job,Job的前导Job可以有多个,前导Job驱动的图示如下:

当下传文件未下传完毕时,下传文件清洗不能进行,因此,下传文件通常作为清洗文件的驱动条件,当系统检测到下传文件已下传并正确后,便可进行相应的清洗,驱动Job执行的下传文件可能有多个

3) 时间驱动
当到达某个时点时,Job便开始运行,图示:

每个Job只要满足了驱动关系后,便开始以后台方式运行。这样便实现了不同区域和同一区域的Job的最大限度的并行。考虑系统资源的情况,可以事先设定最大并行数

 

定义数据转换流程中检查点和核对点

 

1) 下传文件,下传文件与源系统数据进行比较检查,核对下传数据准确性。
2) 清洁文件,将清洁文件与下传文件进行比较检查,从而可判断清洗处理过程的正确性。
3) ODS库表,将ODS库表中的数据与下传文件中数据进行比较检查,从而可判断加载处理过程的正确性。
4) LDM库表,将LDM库表中的数据与ODS库表中数据进行比较检查,从而可判断转换处理过程的正确性。
5) PI值,将PI值与LDM层相关的库表进行比较检查,从而可判断PI计算处理过程的正确性。

 日志信息设计
1) 调度过程日志。以文件的方式存在,用于记录Job调度中的主要过程和异常信息,如调度开始、调度完成、数据库操作异常和读写文件异常。
2) Job执行日志。数据库表方式存在,给Job的调度提供必要的信息,是Job调度策略计算的依据,调度模块和Job之间的接口之一。
3) Job详细事件日志。数据库表方式存在,记录ETL处理过程中的详细信息,如清洗记录成功条数、失败条数或数据库操作情况(INSERT\UPDATE\DELETE)。


 给出异常处理设计:所有被拒绝的行、可接受的错误数以及合理退出的方式



 通知设计:重要信息(成功/失败)的通知
1. 成功退出
1) 分段提交方式,当分段提交的当次任务都正确完成,即Job运行状态临时表中登记的作业状态全部为完成时,退出ETL调度。
2) 自动提交方式,当当期所有的任务都正确完成,即Job运行状态表中登记的作业状态全部为完成时,退出ETL调度。

2. 失败退出
1) 关键作业异常,关键作业运行异常时,影响剩下的作业不能运行时,则退出ETL调度。
2) 超过ETL时限,当超过预先设定的ETL 时限时,退出ETL调度。
3) 数据库异常,当不能正常操作数据库时,退出ETL调度。
4) 操作系统异常,当发生操作系统异常,导致程序不能正常运行,如文件系统异常导致读写文件错时,需要退出ETL调度。
5) 手工退出,需要人为干预ETL调度的时候,能以手工操作的方式退出ETL调度。

 给出各个阶段号说明 给出表格:表6-N ETL_Step编号表(ETL控制参数)

 ETL 调度优先级别
按Job驱动关系进行Job的调度,前导Job优先于后续Job。

 ETl流程及调度模块说明
 模块概要说明
模块概要说明(总体层次)
模块名称 模块编号 开发工具/环境 模块功能说明 备注
作业调度 J01 AIX+Shell+C ETL调度主模块,负责整个ETL过程的调度处理。 维护员
作业管理 J02 EXECL+BRIO+C 定义作业步对应的实际ETL处理过程,生成作业编号,定义作业类型和作业的驱动条件。 管理员
异常重跑 J03 AIX+Shell+C 当ETL运行出现异常时,提供断点重跑机制。 维护员
参数管理 J04 Brio EIS 调度系统的公共参数:期数、进程数、数据日期、本期开始日期和本期结束日期进行设置和修改。 管理员
日志管理 J05 BrioSDK,EIS 包括调度过程日志、Job执行日志和Job详细事件日志的查询和删除。 管理员









模块概要说明(明细层次)
模块名称 模块编号 模块类型 开发环境 模块功能说明 备注
CTLINIT J01_01 作业调度 AIX,PROC 检查输入参数和驱动关系,初始化资源令牌状态/Job运行状态/下传文件状态。
UNCOMPR J01_02 作业调度 AIX,PROC,SHELL 检测下传目录下的压缩/打包的文件,并将这些文件解压缩/展开,之后移动到非下传目录下。
FILEREG J01_03 作业调度 AIX,PROC 根据下传文件控制表 检查各文件头的控制信息,将检查结果记录在下传文件控制表中。
CHKREGJOB J01_04 作业调度 AIX,PROC 扫描Job运行状态(或临时)表看所有(或本次提交需要完成的)Job是否完成,根据Job执行日志信息登记完成的Job(在Job运行状态表登记)。
CALREGJOB J01_05 作业调度 AIX,PROC 根据Job运行状态/下传文件状态/ Job驱动关系计算可已运行的Job,并在Job运行状态表中将这些Job登记为“就绪“状态。
JOBRUN J01_06 作业调度 AIX,PROC,SHELL 依据当前进程数/资源令牌占用清况发出调度一个Job运行的命令,并登记Job运行状态为“正运行“。
CRTJOB J02_01 作业管理 EXECL 生成作业列表和作业对应的驱动条件。
CHKJOB J02_02 作业管理 PROC 检查作业列表的合法性,包括驱动关系的合理性检查。
RERUN J03_01 异常重跑 AIX,PROC,SHELL 当ETL运行出现异常时,提供断点重跑机制。
PARADM J04_01 参数管理 BRIO EIS,SQLPLUS,SHELL 调度系统的公共参数:期数、进程数、数据日期、本期开始日期和本期结束日期进行设置、修改及查询。
LOGADM J05_01 日志管理 BRIO EIS,SQLPLUS 包括调度过程日志、Job执行日志和Job详细事件日志的查询和删除。




 ETL流程及调度的模块设计说明表(设计阶段)
见附件《ETL调度详细设计.doc》
 给出ETL流程及调度的程序设计说明表(实现阶段):参见 “1.15节”

1.2 ETL监控(ETL Monitor) (PSP)
 ETL监控结构设计,图示说明















 ETL监控主要功能概述
1) ETL调度检测下传文件状态,并登记到下传文件状态表中,通过Hyperion Client设计对下传文件状态查询的BQY文档,发布到Hyperion Performance Suite 8 Server,再通过Http或直接通过ODBC进行BQY查询来获取下传文件状态,从而实现了文件传输监控功能。
2) 当某个区域的某些文件清洗完成时,ETL调度在Job运行状态表中登记该区域相应清洗Job的状态(异常或完成);当文件加载、转换或加工完成时,ETL调度同样方式在Job运行状态表中登记相应Job的状态,通过设计对Job运行状态查询的BQY,并发布到Hyperion Performance Suite 8 Server,再通过Http或直接通过ODBC进行BQY查询来获取Job的当前状态,从而实现了加载、转换和加工的监控功能。
3) 对Job的执行情况(开始时间、结束时间)的监控通过设计查询Job执行日志表的BQY文档来实现,对Job的详细事件的监控通过设计查询Job详细事件日志表的BQY来实现。
4) 对调度的整体情况的监控,则可直接通过TELNET查看调度过程日志,便能知道调度的完成情况和异常情况(数据库错、参数非法或操作系统错等)。

 ETL监控模块说明:
 ETL监控的模块概要说明
模块概要说明(明细层次)
模块名称 模块编号 模块类型 开发环境 模块功能说明 备注
FILEMON J06_01 ETL监控 BRIO,EIS 监控各个区域的下传文件传输情况和文件状态。
JOBMON J06_02 ETL监控 BRIO,EIS 对各个区域的清洗、加载、转换和加工过程的完成情况进行监控。
EVTMON J06_03 ETL监控 BRIO,EIS 对JOB的执行开始时间、结束时间和JOB运行过程中的详细操作情况进行实时监控。
MAINMON J06_04 ETL监控 BRIO,EIS 对调度的整体情况的监控,包括调度成功完成、异常退出、数据库错、参数情况和操作系统出错进行监控。

 给出ETL监控的模块设计说明表(设计阶段):参见 “1.15节“
BQY设计,略
 给出ETL监控的程序设计说明表(实现阶段):参见 “1.15节”

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12122734/viewspace-689356/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12122734/viewspace-689356/

五分钟教会你用ETL工具拉取泛微eteams信息 我们现在需要拉取eteams部门的成员列表信息并入库,进入平台流程设计页面,拉取泛微以及库表输出组件并进行连线,填写泛微的相关信息和选择输出库表后,点击保存完成流程设计了,整个过程只需要三步,不需要自己编写任何的代码。通过使用合适的ETL工具可以提高数据处理的效率、准确性和安全性,降低了数据管理的复杂性,有助于组织更好地利用数据来做出决策、分析趋势和推动业务增长。借助ETLCloud,用户可以快速、高效地构建数据管道,实现数据的采集、清洗、转换和加载,从而加速数据的变现过程,提升业务决策的准确性和效率。 阅读详情

相关推荐

ETL集成PowerJob调度系统技术方案

随着企业数字化转型的加速,数据量呈爆炸式增长,数据的抽取、转换和加载(ETL)过程变得愈发复杂和重要。为了高效管理和调度ETL任务,确保数据处理的及时性和准确性,本文提出将PowerJob调度系统与ETL系统进行深度集成的技术方案。通过该方案,可以实现ETL任务的自动化调度、实时监控和灵活管理,提升数据处理效率,为企业决策提供有力支持。通过将PowerJob调度系统与ETL系统进行深度集成,可以实现ETL任务的高效管理和自动化执行。

song0394的专栏 1055

5- ETL-ETL实现方法

  ETL的实现有多种方法,常用的有三种:      一种是借助ETL工具(如Oracle的OWB、SQLServer2000的DTS、SQLServer2005的SSIS服务、Informatic等)实现      一种是SQL方式实现      一种是ETL工具和SQL相结合   两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少...

yaoyelinger0912的博客 1186

Azure Data Factory ETL设计调度最佳实践

在Azure Data Factory中设计调度ETL过程时,最佳实践包括合理选择调度触发器、优化任务的并行度、设计增量加载、做好错误处理和重试机制、利用数据流进行复杂数据转换、确保数据质量以及通过监控和日志记录进行实时监控。通过遵循这些最佳实践,可以提升ETL过程的效率、可靠性和可维护性。

weixin_30777913的博客 1402

ETL流程介绍&常用实现方法

目录一、概述二、使用步骤1.引入库2.读入数据总结 一、概述         ETL是英文Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。常见于数据仓库开发中将数据由业务系统归集到数据仓库(DW: DataWarehouse)或者数据集市的过程。ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计

weixin_42508236的博客 8123

ETL讲解(很详细!!!)

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。   ETL设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候...

heihei2017的博客 978

mysql到hive调度工具_调度工具(ETL+任务流)

1.区别ETL作业调度工具和任务流调度工具kettle是一个ETL工具,ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)。kettle中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。所以他的重心是用于数据oozie是一个工作流,Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic ...

weixin_39689687的博客 1446

ETL数据平台实现思路

八维数据平台应运而生,旨在为企业提供一套全面的数据管理和分析解决方案,通过集成多种数据源管理、接口配置、项目和任务管理、规则与流程控制、用户权限管理以及数据分析和服务监测功能,帮助企业实现数据驱动的决策支持和业务流程自动化。ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。

2303_78788923的博客 2148

一个较为详细的ETL系统实现方案

ETL流程调度设计ETL Schedule)(PSP) 1. ETL调度的目标 快速见效系统要抽取39家分行四个系统的数据进行加工处理,数据从下传文件到ODS库,ODS库到LDM,再计算PI值和汇总PI,整个ETL处理过程需按一定步骤和满足某些条件进行,某些关键的文件如汇率数据、机构表等都会影响整个ETL的处理,因此,快速见效的ETL处理流程将是一个比较复杂的过程。 考虑到将来ETL处理的...

z453588的博客 6509

集团公司数字化转型及数据资源中心建设方案:蓝图规划、总体流程、数据模型设计、数据区定位与数据模型设计流程、基础区数据模型设计、用户标签数据模型设计、数据开发体系框架、数据统一调度管理、ETL调度平台

大家好!我今天要介绍的主题是:集团公司数字化转型及数据资源中心建设方案我们今天主要从以下几个方面展开介绍:蓝图规划总体流程数据模型设计数据区定位与数据模型设计流程基础区数据模型设计用户标签数据模型设计我们今天主要从以下几个方面展开介绍:数据开发体系框架数据统一调度管理ETL调度平台一站式开发平台数据治理平台下面介绍蓝图规划。首先,数字化转型旨在提升我们的业务运营效率。通过引入数字技术,我们可以优化业务流程,减少不必要的浪费,从而降低运营成本。同时,数字化转型也能让我们更快地获取数据、分析数据,进而做出更加明

weixin_44094929的博客 1099

java etl 开源框架_开源的ETL工具

这里记录一些开源的ETL工具:1、KettleKettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。2、taskctlTASKCTL是ETL调度领域专业的调度产品,适合各行业企业级、项目级ETL调度平台建设。该产品概念新颖...

weixin_33087827的博客 3367

说说ETL调度工具TASKCTL的五宗最

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33862041的博客 295

WebKettle:构建强大ETL生态的技术解析

在数据驱动的时代,高效可靠的ETL(Extract, Transform, Load)工具是企业处理海量数据的核心引擎。WebKettle作为一款基于Kettle(Pentaho Data Integration)的Web化ETL平台,凭借其可视化设计、任务调度与监控能力,为数据集成流程提供了完整的解决方案。本文将通过分析WebKettle的核心界面与功能特点,展现其如何简化ETL开发与运维流程

gitblog_00984的博客 425

数据编排革命:Apache DolphinScheduler让ETL流程管理变得如此简单

在当今数据驱动的时代,企业面临着海量数据处理和复杂ETL流程管理的巨大挑战。Apache DolphinScheduler作为一款开源的数据编排与工作流调度平台,通过直观的可视化界面和强大的自动化能力,彻底改变了传统数据处理的繁琐模式。无论你是数据工程师、业务分析师还是运维人员,都能轻松上手这个高效的ETL流程自动化工具。🚀 ## 为什么选择数据编排平台? 传统的数据处理方式往往依赖于手动编

gitblog_00219的博客 377

Hive ETL自动化实战:6大清洗策略×4种转换技巧×DolphinScheduler全链路调度方案

根据《2023数据工程效能白皮书》,‌67%的ETL任务失败‌源于手工脚本管理混乱。本文基于某金融集团PB级交易数据治理经验,结合用户画像构建、电商订单清洗、日志异常检测等核心场景,深度解析‌Hive全流程ETL设计范式‌,揭秘‌DolphinScheduler分布式调度‌与‌万亿级数据容错方案‌。

CSDN博客专家,领域包括但不限于:AI、大数据、Python、架构师,有合作、课程、问题、疑惑请私信博主 1661

数据仓库高效运维:ETL调度与任务管理实战落地指南

按照预设时间、依赖关系、优先级,自动驱动数据抽取、转换、加载任务有序、高效、可靠执行的过程。分布式架构保证高可用、高并发分层依赖保证任务有序执行增量同步提升运行效率并发控制保证系统稳定。

✨ 欢迎来到【Seal ^_^ 的CSDN博客】!✨ 4718

webkettle —— 专业级BS架构的ETL开发与调度工具

webkettle —— 专业级BS架构的ETL开发与调度工具 【下载地址】webkettle专业级BS架构的ETL开发与调度工具 webkettle是一款专业级BS架构的ETL开发与调度工具,旨在为用户提供高效、便捷的数据处理解决方案。它集成了模型设计、任务调度、定时执行、日志管理等七大核心模块,支持拖拽式数据流设计,...

gitblog_06772的博客 485

ETL DataStage实现

自开始知道数据库,就知道有数据仓库这个东西,数据仓库中一关键环节就是ETL。可是三四年过去了,由于没有接触数据仓库这个东西,对ETL自然是一知半解,更别提实现了。从2007年9月份开始,要做数据仓库项目了,接触了ETLETL中要用DS实现,项目中没有人会,组长要我一个月内,边工作边自学DS,然后给大家讲怎么用DS实现ETL。想起初学时的困难和迷惑,和现在一些同学的疑问,本人从开发的角度,简单介绍一下用DS实现ETL。由于本人的知识和经验的局限,自然有很多错误和不足,希望大家指正,共同进步,给初进入者一个参

dazheng 1万+

ETL调度开发(1)——编写说明

前言: 在数据库运行维护过程中经常会需要在系统之间进行文件传输,对数据进行抽取、转换、整合等操作。并且在数据整合之后进行统计调度,这里将会对本人开发的一个ETL调度进行详细的说明。 需求概述: 调度分为如下方式: ü  一个是SHELL编写的ETL调度,支持小时、日、周、月文件的调度。 ü  一个是流程调度,主要是根据配置表调用指定过程,并发执行。 进程描述: 文

Big data enthusiast 2495
上一篇: DW(数据仓库)建模--模型标准化
下一篇: ETL调度
cuixie7913
博客等级 码龄10年 10粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值