欢迎来到天天文库
浏览记录
ID:38558816
大小:932.00 KB
页数:43页
时间:2019-06-14
《ETL流程数据流图及ETL过程解决方案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、关于ETL相关问题的解决办法◇ETL定义◇模式及比较◇ETL过程◇问题分析◇现状分析目录ETL定义ETL定义涉及以下内容:ETL定义ETL前提ETL原则ETL定义定义:数据的抽取(Extract)、转换(Transform)、装载(Load)的过程目标:数据优化。以最小代价(包括对日常操作的影响和对技能的要求)将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据ETL的前提确定ETL范围通过对目标表信息的收集,确定ETL的范围选择ETL工具考虑资金运行的平台、对源和目标的支持程度、可编程的灵活性、对源数据变化的监测、数据处理时间的控制、管理和调度功能、对异常情况的处理确
2、定解决方案抽取分析、变化数据的捕获、目标表的刷新策略、数据的转换及数据验证ETL过程中应尽量遵循以下原则:应尽量利用数据中转区对运营数据进行预处理。保证数据的安全性、集成与加载的高效性。ETL的过程应是主动“拉取”,而不是从内部“推送”,其可控性将大为增强。流程化的配置管理和标准协议数据质量的保证正确性、一致性、完整性、有效性、可获取性◇ETL定义◇模式及比较◇ETL过程◇问题分析◇现状分析目录ETL模式及比较两种模式异构同构模式比较的维度:特点环境ETL模式-同构ETL模式-异构两种模式的比较-特点异构(Asynchronous)同构(Synchronous)比同构模式提供了更好
3、的数据处理性能,需要更少的处理时间,因为通过网络传输文件的速度比直接通过数据库存取数据要快很多。要避免性能瓶颈问题,解决办法是缩小每次抽取的时间粒度,例如将抽取周期定为每日抽取,这样可以保证每次抽取的增量数据数目是很少量的。在数据抽取过程中,应尽量避免本次抽取定义的时间区间内的源数据在抽取过程中同时产生变动的情况。即抽取的理想状况是抽取的同时源数据系统的数据是静止的,没有增、删、改的情况伴随发生。对于ODS系统来说,数据不会频繁地发生变动;而对于OLTP系统来说,应该选择源数据变化较少的时段完成抽取工作。与异构方式类似,应避免抽取时间区间和源数据系统的生产时段相重合。如果源数据系统
4、时刻都有新数据插入,一种解决办法是设置一个时间区间,定义每次抽取的开始和结束时间值:本次抽取的开始时间为上次抽取的结束时间,本次抽取的结束时间为机器系统时间(Sysdate)或者是目前数据库系统中已有记录的最大时间戳值。实际上就是定义某个时间区间内的源数据的快照(Snapshot),这样就可以避免重复装载的情况发生。除此之外,还应该充分考虑源和目标两套数据库系统的Down机的时间因素。需要两套ETL包,一个用来抽取,一个用来装载,两个包都需要由专门的系统管理人员监视是否装载过程会发生错误。只需要一个ETL软件包。系统管理人员也只需要监视一套系统。源和目标之间没有直接的联系。只要中间
5、过渡的文本文件结构不发生变化,源和目标的结构即使改变而不会对ETL流程产生很大的影响。源和目标的关系是被绑定在具体的映射中的。当源或者目标的结构发生变化,相对应的映射也要做修改。异构(Asynchronous)同构(Synchronous)当ETL错误发生时,可以采用简单的处理办法修复数据:当抽取失败时,修正问题并重新从源中抽取;当装载过程发生问题,回滚(Rollback),返回上一次装载的状态并再次运行装载的程序。必要时甚至可以将数据仓库系统恢复到某一个时点的状态并批量地装载文本文件。与异构模式类似,当ETL错误发生也可以采用相应手段来修复数据。例如,倘若源数据库中保留了所有历史
6、记录,ETL程序可以根据设定的时间区间修复上一次装载失败的数据。前提是必须先删除上一次装载失败从而在目标库中产生的垃圾数据,回滚(Rollback),返回到上一次加载数据前的状态。可以根据目标表的主键来确定装载过程中插入或更新记录的策略,如果源记录的主键是新的,那么就插入该记录;如果源记录的主键在目标数据库中已经存在,那么就用源记录更新目标记录。这样就可以避免多次重复装载的情况发生。同时,适当调大装载的时间区段也不会发生数据重复加载的情况。需要有专门的核查(Audit)程序来监控数据传输或者装载过程是否有失败或者记录缺失的情况发生。直接拷贝(directcopy),可以避免传送过程
7、中的许多错误。可以在源和目标库中运行Sum和Count等聚合函数来对数据质量进行校验。能够简化查错troubleshooting的过程,由于在中间步骤生成文本文件,实际上是所要抽取的源数据的快照(Snapshot)。问题发生时,可以很容易地确定是哪一个环节发生了问题,源,目标还是网络传输?与异步模式相比,查错过程比较复杂。源数据的不断变化导致问题难以定位。很难判断问题究竟是由于抽取程序还是由于源数据的变化引起的(上一次抽取的数据是什么?)。异构(Asynchronou
此文档下载收益归作者所有