加载中…
个人资料
心如止水
心如止水
  • 博客等级:
  • 博客积分:0
  • 博客访问:54,679
  • 关注人气:31
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

ETL的异常原因总结及其处理方法

(2011-05-07 09:50:41)
标签:

装载

数据源

表结构

it

分类: ETL

ETL的错误在整个抽取、转换、装载过程都可能出现,对ETL常见的异常原因进行归类,大体上有五种情况:

(1)硬件、OS、网络导致的异常:通常由外部环境造成的,并且往往是不可控的,主要关注以下几个方面

     网络中断:由于网络原因导致ETL中断,能做的就是重新装载;

     系统崩溃:ETL服务器不稳定,如果是非程序原因生成的崩溃,应进行重新装载数据;

     资源不足:对ETL处理大数据量造成资源耗尽而造成的ETL中断,应优化ETL过程后重新装载;

     连接故障:可能是开放给目标系统的时间窗没有按时打开、或外围系统本身的故障而造成连接异常,可采取反复尝试的方法;

(2)数据源数据的异常:包括源数据质量与传输,主要是数据源的变动造成的

     接口没有按照约定的数据周期进行供数:如在约定的周期,实际接口没有提供数据,应提交错误报告给接口方修正;

     数据源系统表结构或接口规格变动而没有同步:接口无法访问,建议对源表结构进行检测,一旦发生变化就终止装载;

     接口数据在约定的时间窗内没有完全获取数据:建设调大时间窗、优化ETL过程以缩短时间;

     接口数据内容不规范:源数据缺乏空值、外键等一致性检查,造成转换错误,建议在不影响数据逻辑的前提下,尽量最大限度接收而不是拒绝数据,并及时修正ETL过程进行适当处理。

(3)ETL过程处理导致的异常:主要是在ETL开发过程中产生的

     ETL规则错误:数据源到目标数据的映射关系的理解或表述错误,导致数据装载异常,应修改规则并实现;

     ETL实现错误:在正解的ETL规则下,具体实现没有按照规则设计或出现细节疏漏,应重新修改实现并重新装载;

(4)目标数据模型导致的异常:主要是因为数据结构发生变更造成ETL不可用,针对这种情况,应能够检测到结构变更并终止装载;

(5)开发、维护阶段人工干预导致的异常:原则上ETL不允许手工操作,但是有许多异常的处理却需要手工干预,所以不可避免会发生此类异常。为避免这类错误,首先要规范手工干预流程:

     限定手工干预只能运行某个流程,不允许运行单个过程;

     不允许使用临时的SQL语句操纵数据库,必须采用编写好的SQL脚本或存储过程;

     每一项手工操作必须留下操作记录。

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有