欢迎投稿

今日深度:

ETL调度开发(5)——连接数据库执行数据库命令

ETL调度开发(5)——连接数据库执行数据库命令子程序,etl调度


ETL调度中读写数据信息,都需要连接数据库,下面的子程序通过传入的数据库连接字符串和数据库命令(或SQL)执行所需要的操作:

#!/usr/bin/bash
#created by lubinsu
#2014
source ~/.bash_profile
values=`sqlplus -S $1 << EOF
  set heading off feedback off pagesize 0 verify off echo off
    WHENEVER SQLERROR exit SQL.SQLCODE ROLLBACK 
    $2
    commit;
    exit 
EOF`
echo "${values}"

参数的参数依次是:数据库连接字符串,数据库命令(或SQL语句)


什是ETL调度系统?

.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. ETL调度功能图示

2. 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......余下全文>>
 

有人总结:“ETL是BI(商业智可以)的基础,调度是ETL的灵魂”问这究竟是个什理?

ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程
你想啊,数据的由来都是ETL实现的,以后所有的数据处理,不都是要依靠这些抽取来的数据。
这一块没有做好,后面的分析,展现就是来了大神,他也没有办法,就像巧妇难为无米之炊一样。
所以说ETL是BI商业智能的基础,
调度是ETL的灵魂,我们首先讲讲调度的功能。
2. 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
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2705.html NewsArticle ETL调度开发(5)——连接数据库执行数据库命令子程序,etl调度 ETL调度中读写数据信息,都需要连接数据库,下面的子程序通过传入的数据库连接字符串和数据库命令(或SQL)执行所...
评论暂时关闭