第291章 冬瓜(1 / 2)

离语 semaphore 2020 字 14天前

ETL是企业数据仓库构建过程中的一个核心步骤Y我们可以借助于ETL</p>

工具来高效地完成数据抽取转换和加载工作之所以需要ETL工具Y</p>

主要有以下几个原因X</p>

�0�5</p>

1�0�6当数据来自不同的物理主机Y这时候如果使用SQL语句去处理的</p>

话Y就显得比较吃力且开销也更大]</p>

�0�5</p>

2�0�6数据来源可以是各种不同的数据库或者文件Y这时候需要先把它</p>

们整理成统一的格式后才可以进行数据的处理Y这一过程用代码实现</p>

显然有些麻烦]</p>

�0�5</p>

3�0�6在数据库中我们当然可以使用存储过程去处理数据Y但是Y处理</p>

海量数据的时候Y存储过程显然比较吃力Y而且会占用较多数据库的</p>

资源Y这可能会导致数据库资源不足Y进而影响数据库的性能。</p>

。</p>

在选择ETL工具时主要考虑如下因素X</p>

�6�1对平台的支持程度]</p>

�6�1抽取和装载的性能是不是较高Y且对业务系统的性能影响大不</p>

大,高不高]。</p>

�6�1对数据源的支持程度]。</p>

�6�1是否具有良好的集成性和开放性]。</p>

�6�1数据转换和加工的功能。</p>

�6�1是否具有管理和调度的功能。</p>

CDC解决方案包括变化捕捉代理变化数据服务和变化分发机制三个</p>

组成部分</p>

�0�5</p>

1�0�6变化捕捉代理变化捕捉代理是一个软件组件Y它负责确定和捕</p>

捉发生在操作型数据存储源系统中的数据变化可以对变化捕捉代理</p>

进行专门优化Y使它适用于特定的源系统Y比如使用数据库触发器]</p>

也可以使用通用的方法Y比如数据日志比较。</p>

变化数据服务变化数据服务为变化数据捕捉的成功实现提供了</p>

一系列重要的功能Y包括过滤排序附加数据生命周期管理和审</p>

计等表6-4给出了每个功能的解释。</p>

变化分发机制变化分发机制负责把变化分发到变化的消费者�0�5通</p>

常是ETL程序�0�6那里变化分发机制可以支持一个或多个消费者Y并且提</p>

供了灵活的数据分发方式Y包括推(push)或拉(pull)的方式Pull方式需要</p>

消费者周期性地发送请求Y通常采用标准接口实现Y比如ODBC或JDBC</p>

Push方式需要消费者一直监听和等待变化的发生Y一旦捕捉到变化Y就立</p>

刻转移变化的数据Y通常采用消息中间件来实现变化分发机制的另一个</p>

重要功能就是提供动态返回和请求旧的变化的能力Y从而满足重复处理和</p>

恢复处理等任务。</p>

变化数据捕捉技术有两个典型的应用场景X面向批处理的CDC</p>

�0�5</p>

pull CDC�0�6和面向实时的CDC�0�5</p>

push CDC�0�6</p>

1.面向批处理的CDC</p>

在这种场景中YETL工具周期性地请求变化Y每次都接收批量数据Y</p>

这些批量数据是在上次请求和这次请求之间所捕捉到的变化变化</p>

分发请求可以采取不同的频度Y比如一天两次或每隔15分钟1次。</p>

对于许多组织而言Y提供变化数据的一种比较好的方式是以数据表的记</p>

录的形式表示这种方式可以使ETL工具通过标准接口�0�5比如ODBC�0�6的</p>

方式无缝地访问变化数据CDC则需要维护上次变化分发的位置和分发</p>

新的变化</p>

这种应用场景和传统的ETL很相似Y不同的是Ypull CDC只需要转移变化</p>

的数据Y并不需要转移所有的数据Y这就极大地减少了资源消耗Y也消</p>

除了传统ETL过程的宕机时间。</p>

面向批处理的CDC技术简单Y很容易实现Y因为它和传统的ETL很相似Y</p>

并且使用现有的技术当企业对时间延迟以分钟或小时来进行衡量时Y</p>

采取这种方式比较可行。</p>

这种场景满足零延迟的要求Y变化分发机制一旦探测到变化Y就把变化</p>

push给ETL程序Y这通常是通过可靠的传输机制来实现的Y比如事件分发</p>