ETL是企业数据仓库构建过程中的一个核心步骤Y我们可以借助于ETL
工具来高效地完成数据抽取转换和加载工作之所以需要ETL工具Y
主要有以下几个原因X
??
1??当数据来自不同的物理主机Y这时候如果使用SQL语句去处理的
话Y就显得比较吃力且开销也更大]
??
2??数据来源可以是各种不同的数据库或者文件Y这时候需要先把它
们整理成统一的格式后才可以进行数据的处理Y这一过程用代码实现
显然有些麻烦]
??
3??在数据库中我们当然可以使用存储过程去处理数据Y但是Y处理
海量数据的时候Y存储过程显然比较吃力Y而且会占用较多数据库的
资源Y这可能会导致数据库资源不足Y进而影响数据库的性能。
在选择ETL工具时主要考虑如下因素X
??对平台的支持程度]
??抽取和装载的性能是不是较高Y且对业务系统的性能影响大不
大,高不高]。
??对数据源的支持程度]。
??是否具有良好的集成性和开放性]。
??数据转换和加工的功能。
??是否具有管理和调度的功能。
CDC解决方案包括变化捕捉代理变化数据服务和变化分发机制三个
组成部分
??
1??变化捕捉代理变化捕捉代理是一个软件组件Y它负责确定和捕
捉发生在操作型数据存储源系统中的数据变化可以对变化捕捉代理
进行专门优化Y使它适用于特定的源系统Y比如使用数据库触发器]
也可以使用通用的方法Y比如数据日志比较。
变化数据服务变化数据服务为变化数据捕捉的成功实现提供了
一系列重要的功能Y包括过滤排序附加数据生命周期管理和审
计等表6-4给出了每个功能的解释。
变化分发机制变化分发机制负责把变化分发到变化的消费者??通
常是ETL程序??那里变化分发机制可以支持一个或多个消费者Y并且提
供了灵活的数据分发方式Y包括推(push)或拉(pull)的方式Pull方式需要
消费者周期性地发送请求Y通常采用标准接口实现Y比如ODBC或JDBC
Push方式需要消费者一直监听和等待变化的发生Y一旦捕捉到变化Y就立
刻转移变化的数据Y通常采用消息中间件来实现变化分发机制的另一个
重要功能就是提供动态返回和请求旧的变化的能力Y从而满足重复处理和
恢复处理等任务。
变化数据捕捉技术有两个典型的应用场景X面向批处理的CDC
??
pull CDC??和面向实时的CDC??
push CDC??
1.面向批处理的CDC
在这种场景中YETL工具周期性地请求变化Y每次都接收批量数据Y
这些批量数据是在上次请求和这次请求之间所捕捉到的变化变化
分发请求可以采取不同的频度Y比如一天两次或每隔15分钟1次。
对于许多组织而言Y提供变化数据的一种比较好的方式是以数据表的记
录的形式表示这种方式可以使ETL工具通过标准接口??比如ODBC??的
方式无缝地访问变化数据CDC则需要维护上次变化分发的位置和分发
新的变化
这种应用场景和传统的ETL很相似Y不同的是Ypull CDC只需要转移变化
的数据Y并不需要转移所有的数据Y这就极大地减少了资源消耗Y也消
除了传统ETL过程的宕机时间。
面向批处理的CDC技术简单Y很容易实现Y因为它和传统的ETL很相似Y
并且使用现有的技术当企业对时间延迟以分钟或小时来进行衡量时Y
采取这种方式比较可行。
这种场景满足零延迟的要求Y变化分发机制一旦探测到变化Y就把变化
push给ETL程序Y这通常是通过可靠的传输机制来实现的Y比如事件分发