《ETL流程数据流图及ETL过程解决方案.ppt》由会员分享,可在线阅读,更多相关《ETL流程数据流图及ETL过程解决方案.ppt(43页珍藏版)》请在三一办公上搜索。
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模式-异构,两种模式的比较-特点,两种模式的比较-环境,ETL定义模式及比较ETL过程问题分析 现状分析,目录,ETL过程
3、,ETL过程:数据抽取数据清洗数据转换数据加载ETL的问题,ETL过程-0层DFD,1层-数据抽取,1层-数据清洗,1层-数据转换,1层-数据加载,ETL过程-数据抽取,数据来源文件系统,业务系统抽取方式根据具体业务进行全量或增量抽取抽取效率将数据按一定的规则拆分成几部分进行并行处理抽取策略根据具体业务制定抽取的时间、频度,以及抽取的流程,ETL过程-数据清洗,清洗规则:数据补缺对空数据、缺失数据进行数据补缺操作,无法处理的作标记数据替换对无效数据进行数据的替换格式规范化将源数据抽取的数据格式转换成为便于进入仓库处理的目标数据格式主外键约束通过建立主外键约束,对非法数据进行替换或导出到错误文件
4、重新处理,转换规则数据合并多用表关联实现,大小表关联用lookup,大大表相交用join(每个字段加索引,保证关联查询的效率)数据拆分按一定规则进行数据拆分行列互换排序/修改序号去除重复记录数据验证:lookup,sum,count实现方式在ETL引擎中进行(SQL无法实现的)在数据库中进行(SQL可以实现),ETL过程-数据加载,ETL定义模式及比较ETL过程问题分析 现状分析,目录,ETL执行时的异常处理,数据异常将错误信息单独输出,继续执行ETL,错误数据修改后再单独加载中断ETL,修改后重新执行ETL原则:最大限度接收数据环境异常对于网络中断等外部原因造成的异常,设定尝试次数或尝试时间
5、,超数或超时后,由外部人员手工干预其他异常例如源数据结构改变、接口改变等异常状况,应进行同步后,再装载数据,ETL设计规范,DI开发规范ETL开发首要确定的是流程的执行顺序及条件;其次是具体表映射关系的定义,在数据库性能允许的情况下,应该尽可能使用sql语句进行处理对于具体映射和流程的命名,应该以维护方便为前提:映射:以目标表名命名流程:以流程要实现的功能命名不允许使用临时的SQL语句操纵数据库,必须编写好的SQL脚本或存储过程限定手工干预只能运行某个流程,不允许运行单个过程每一项手工操作必须留下记录,设计规范SQL语句应书写规范,关键字全部大写,同时应增加注释例如:/*表名:BSL_EMP_
6、STATUS 作者:CASEY 日期:2007-12-17 描述:人员状态中间表*/对于自定义列,列名应采用标准后缀数字类型,*_NO字符类型,*_CODE,常见问题的分析,字符集问题缓慢变化维处理增量、实时同步的处理错误数据的检测变化数据的捕获抽取异常中止的处理,一、字符集问题,字符集定义字符集是字符(包含字母,数字,符号和非打印字符等)以及所指定的内码所组成的特定的集合。是基于某种操作系统平台和某种语言集支持的。语言集的集合被称为语言组,它可能包含一种或多种语言。,C/S字符集转换直接转换对于同一语言组的不同字符集之间,可以直接进行字符的转换,不会产生乱码通过Unicode转换Unicod
7、e支持超过650种语言的国际字符集 Unicode系统缺省字符集utf-8,不同语言组的字符集进行直接转换的时候会出现乱码!,异构库字符集转换 假设案例:源数据库为Oracle 10g,字符集zhs 16gbk目标数据库Sybase IQ,字符集为x,locales.dat文件对应操作系统下字符集设置为y x=cp936,y=cp936 结果:直接转换出现乱码。因为sybase目前支持的中文字符集有cp936、eucgb、gb18030、UTF-8方案:利用unicode进行转换ODBC利用字符集设置为UTF-8的中间库,二、缓慢变化维处理,缓慢变化维定义在现实世界中,维度的属性并不是静态的,
8、会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维。处理方式不保留历史数据 保留历史数据起始-结束日期字段标识真/假状态字段标识版本号字段标识代理键字段标识自增序列构造算法保留且分析历史信息添加新的维度列(数据增多,维度列增多),三、增量、实时同步的处理,整表匹配同一个库中进行写触发器客户是否允许创建触发器是否影响数据库性能读数据库日志Oracle:设定物化视图日志,四、断点续传,利用源表的索引机制,抽取时按”数据块”顺序抽取 采取DBLink的机制,结合oracle自身机制优化效率 生成本地文件块,FTP传输减少对带宽影响。若中断,流程控制自动回滚加载当前数据块
9、,ETL工具大都支持异常中止后读取断点重新加载的处理支持对变化数据的捕获与目标数据库松耦合,存储过程与ETL,存储过程:数据库内部利用索引的查找、排序、优化,不涉及输出、转换等操作ETL:异构数据源或减少数据库负荷、sql嵌套的情况如果仓库中同时需要明细和汇总数据,在仓库汇总;如果仓库不需要明细数据,ETL服务器上先排序然后汇总,减少业务系统负荷。数据库不适合做大数据量汇总的话,排序后按排序键汇总,并行处理加动态分区(ETL厂商高性能汇总的机理),ETL定义模式及比较ETL过程问题分析 现状分析,目录,ETL工具厂商,目前ETL工具来源:数据库厂商自带的ETL工具,如OWB等;第三方工具提供商,如Informatic等;开源ETL工具,如kettle;,ETL和数据集成工具:ETL和数据集成的工作量占BI项目的40%,但是ETL工具约占BI市场的9%,其中很多应用是采用手工编码方式,ETL工具仍有待普及,?,?,谢 谢!,