ETL Automation

4 篇文章 0 订阅

//
目录:
第一部分:ETL Automation简介
第二部分:ETL Automation架构
第三部分:ETL Automation环境变量说明
第四部分:ETL Automation目录结构说明
第五部分:ETL Automation服务说明
第六部分:ETL Automation知识库说明
第七部分:ETL Automation GUI工具
第八部分:ETL任务调度
第九部分:常见问题讨论
/
/
第一部分:ETL Automation简介
1、Teradata公司开发的ETL流程调度产品(product);
2、使用Perl程序开发,运行环境需要安装Perl软件及DBI、DBD插件;
3、C/S服务器架构
4、ETL Automaiton由以下几部分组成:
(1)、ETL Automation服务
(2)、ETL Automation目录架构
(3)、ETL Automation知识库
(4)、ETL Automation环境变量
(5)、ETL Administrator / ETL monitor管理工具(GUI)
第二部分:ETL Automation架构

第三部分:ETL Automation环境变量说明
变量名称

说明

举例说明

AUTO_DB

ETL知识库名称,默认为ETL

AUTO_DB=PETL

AUTO_DSN

ETL Automation连接数据库的ODBC DSN

AUTO_DSN=ETLDB

AUTO_HOME

ETL主目录路径

AUTO_HOME=D:\DWETL

AUTO_JOB_COUNT

ETL流程调用任务的最大并行数

AUTO_JOB_COUNT=10

AUTO_PERL

Perl的安装路径

AUTO_PERL=C:\PERL

AUTO_PRIMARY_SERVER

ETL Automation的主服务器标识:1-主Server 0-Client

AUTO_PRIMARY_SERVER=1

AUTO_SERVER

ETL服务器名称标识

AUTO_SERVER=DWLOAD

AUTO_SERVER_IP

ETL服务器的IP地址

AUTO_SERVER_IP=192.168.6.76

AUTO_SLEEP

ETL服务轮询的时间间隔

AUTO_SLEEP=60

第四部分:ETL Automation目录结构说明
/ETL (Automation 主目录)
|—/APP 存放ETL任务脚本。在此目录下先建子系统目录,然后建ETL任务目录
|—/DATA
|------/complete 存放已成功执行过的数据. 以系统名称以及日期来建立子目录
|------/fail
|---------/bypass 存放不须执行的档案.以系统名称以及日期来建立子目录
|---------/corrupt 存放大小不符合的档案. 以系统名称以及日期来建立子目录
|---------/duplicate 存放重复接收的档案. 以系统名称以及日期来建立子目录
|---------/error 存放执行作业过程中产生错误的档案. 以系统名称以及日期来建立子目录
|---------/unknown 存放未定义在 ETL Automation 机制中的档案. 以日期来建立子目录
|------/message 存放要发送讯息通知的控制文件
|------/process 存放正在执行中的作业所使用的数据文件及控制档
|------/queue 存放准备要执行的作业所使用的数据文件及控制档
|------/receive 用来接收各来源系统所传送来的数据文件及控制文件
|—/LOG 存放 ETL Automation 系统程序及各作业在执行时所产生的记录档案
|—/bin 存放 ETL Automation 系统程序的执行文件
|—/etc 存放 ETL Automation 机制的一些设定档案
|—/lock 存放 ETL Automation 系统程序及各作业在执行时所产生的 lock 档案
|—/tmp 临时缓冲目录,存放临时文件
第五部分:ETL Automation服务说明
服务名称

说明

etlagent.exe

负责执行远程操作的动作。另外该服务对应的日志文件能够提供一定的审

计功能。

etlclean.exe

负责执行数据清除 (House Keeping) 的动作

etlmaster.exe

负责处理由 etlrcv.pl 所交付的档案。etlmaster.exe 会找出档案所对应的作业

并在作业的执行条件满足时呼叫 etlslave_nt.pl 或 etlslave_unix.pl 来执行作业

etlmsg.exe

负责发送讯息通知 (Message Notification) 的动作,可选方式为短信或EMAIL

etlrcv.exe

负责处理从各来源系统所传送来的档案. 当档案通过检查后, 会将档案交由

etlmaster.exe来处理

etlwdog.exe

在主要服务器(Primary erver) 上是负责接收各次 要服务器 (Secondary

Server)所传送来的存活封包(Heartbeat Packet) 以判断各服务的状态并 更新

记录。而在发现有次要服务器未能在一段时间内送来存活封包的话, 则会认

定此次要服务器 为停止状态, 而会将当时正在此部次要服务器上执行的作

业的状态设成失败(Failed)。 而在次要服务器(Secondary Server)上则是定时

发送存活封包(Heartbeat Packet) 至主要服务器 (Primary Server)上以通知目前

次要服务器的状态

etlschedule.exe

负责提交定时任务作业的动作

1、etlrcv

2、etlmas

3、etlschedule

第六部分:ETL Automation知识库说明
知识库是ETL Automation最重要的组件之一。
包括但不限于以下信息存储在ETL知识库中:ETL服务器标识、 ETL任务的定义、任务之间的关系、任务运行状态历史、ETL记录日志、ETL文件接收日志及ETL事件日志等。
ETL知识库中比较重要的表如下:
1、ETL服务器配置表:ETL_Server
2、ETL子系统表:ETL_Sys
3、任务定义表:ETL_Job、ETL_Job_Source、ETL_Job_TimeWindow;
4、任务关系表:ETL_Job_Dependency、ETL_Job_Stream、ETL_RelatedJob
5、任务运行状态历史表:ETL_Job_Status
6、ETL记录日志表:ETL_Record_Log
7、ETL文件接收表:ETL_Received_File
8、ETL事件表:ETL_Event
第七部分:ETL Automation GUI工具
ETL Automation GUI工具包括ETL Administrator和ETL Monitor。
ETLAdmin用来定义并管理在 ETL Automation 中的作业及作业关连性。ETLMonitor用来监看ETL服务器的状态、作业的执行状态及其它异常情况。

由于GUI工具使用Java语句编写,因此在运行工具之前,必须安装Java的运行环境(Runtime Environment ),需要安装的Java运行环境版本为1.3.1及以上。
你可以至 Sun 的网站去下载最新的 Java 执行环境版本。
第八部分:ETL任务调度
ETL Automation通过控制文件对ETL任务自动调度
文件命名规则
作业的脚本文件与控制文件的命名必须与ETL Automation资料库表中的相关定义一致。其对应关系如下表所示:

文件或目录

资料库中的对应表和字段

作业目录名

ETL_Job.Etl_Job

作业脚本名

ETL_Job.Etl_Job

receive目录下的控制文件名

ETL_Job_Source.Source

queue目录下的控制文件名

ETL_Job_Source. Conv_File_Head

process目录下的控制文件名

ETL_Job_Source. Conv_File_Head

第九部分:常见问题讨论
1、通过Automation调度作业时,作业为何无法启动?
ETL Automation的系统程序,以及所有作业脚本在正常执行时,都会在目录 H O M E / e t l / l o c k 下 生 成 一 个 . l o c k 文 件 , 因 此 当 重 复 启 动 一 个 系 统 程 序 或 作 业 脚 本 时 , 都 会 首 先 检 查 到 l o c k 目 录 下 已 经 有 相 应 的 . l o c k 文 件 , 这 就 避 免 了 程 序 或 作 业 的 重 复 调 用 。 也 可 以 通 过 E T L M o n i t o r 工 具 观 察 到 这 一 错 误 。 解 决 方 法 : 将 目 录 HOME/etl/lock下生成一个.lock文件,因此当重复启动一个系统程序或作业脚本时,都会首先检查到lock目录下已经有相应的.lock文件,这就避免了程序或作业的重复调用。 也可以通过ETL Monitor工具观察到这一错误。 解决方法:将目录 HOME/etl/lock.locklock.lockETLMonitorHOME/etl/lock下的对应文件清除。
2、Automation的作业调度性能为何会下降?
当Automation的receive、queue、process等目录下积压的控制文件过多时,或者资料库表ETL_Job_Queue中存储的记录过多时,etlrcv、etlmas以及etlschedule等进程的执行效率会降低,从而使得Automation对作业的调度能力显著下降。
例如在EMS项目组,曾出现过作业由pending状态转为running状态耗时45分钟的情况。
解决方法:加强对Automation目录结构的维护,对运行失败的作业及时进行处理,避免由于作业失败而导致上述目录中的控制文件产生积压。同时要尽量减少资料库表ETL_Job_Queue中的记录数。
3、有数据文件的作业加载失败后,为何无法重新启动?
当作业带有需要处理的数据文件时,在读取数据文件之前,Automation会首先将该数据文件的信息存入到资料库表ETL_Received_File中。
由于数据文件格式错误导致作业失败后,Automation会自动将数据文件移入error目录。之后,当数据文件的格式修改无误,并将数据文件和控制文件重新移入receive目录后,作业仍然无法执行。
解决方法:将资料库表ETL_Received_File中的对应记录删除。
4、定时触发的作业突然开始执行,且执行完后还会再次反复执行。
这是由于从库表ETL_TimeTrigger中直接删除了该作业的定时触发记录,而没有同步更新ETL_Job表中TimeTrigger字段的值。
Etlschedule进程首先检查ETL_Job表,认为当前作业是时间触发的。随后检查ETL_TimeTrigger表时,无法找到该作业的触发时间,此时默认其为0,而当前时间通常大于等于0,因此系统认为触发条件满足,该作业被不断触发。
解决方法:更新ETL_JOB表,同时将ETL_Job_Queue中已插入的对应记录删除。并且今后尽量通过GUI工具操作,避免直接对资料库表进行update。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值