编辑: 南门路口 | 2015-06-25 |
06 M-Power eNew 本篇文章版权为倍?资讯股份有限公司所有,未经书面同意,严禁复制、转载 Page
1 of
3 再谈 Sunopsis C Changed Data Capture 当我们在前几期的电子报?,介绍?一个以开放式技术 Java 所开发的?质资?库整合工 具--- Sunopsis 之后,收到相当多?者的回应.
其中很多用户都关心一个问题,而这也是传 统ETL 工具难以解决的一个问题: 『在一个资??庞大的系统上,要如何持续的、且有效?的 将?动资?转入资?仓储(Data Warehouse)之中?』本文将就此议题,讨?并介绍 Sunopsis 的解决方案 --- Changed Data Capture 机制,也就是所谓的 CDC. CDC 的基本概? 让我们?假设一个?况:你打算替一个运作中的线上销售系统建?一个资?仓储.一旦建 ?后,还要每天持续?断的将关帐后的当日总结资?也转入资?仓储.你可能使用某种 ETL 工具、或者自己开发相关的转换程式. 在第一次建? Data Warehouse 的时候,你的工具把线上销售系统的资?全部载入,经过 转换成资?仓储的格式后,汇入到资?仓储之中.轻愉快,搞定!之后每天也依循?似?程, 先将线上资?全部载入,分析出哪些是当日?动的资?,转换后汇入 Data Warehouse,又搞 定!看?这个工作似乎并?怎麽困难 . 但是有过相关经验的人一下子就可以告诉你问题症结所 在: 『线上资?全部载入』 . 『全部』到底是多少?如果只有几
十、或几百 Mega,那当然没?麽问题;
但随著资?? 的?断增加,几百 Giga、甚至 Tera 的?出现的时候,你还能平心静气的喝著咖啡、对著萤幕 上动也?动的转换程序,笑著?一?『Piece of Cake』吗?因此才有? CDC 概?的提出. 『Changed Data Capture』 ,从字面上就能看出?,他所关注的只有『?动资?』 ,绝? 会傻傻的将 『全部资?』 都载入,也因此确保?执?效?.实务上常?的 CDC 实作方法很多, 有些会根 Timestamp ?位当作判断?动资?的依,有些则是以精心设计过的 Flag 指标为 基准.但这些方法都已经被证明多多少少有些瑕疵.Sunopsis 采用?名为『Journal』的CDC 实作法,以下将为各位做个简单的介绍. Sunopsis CDC 的应用架构 有点?似 SQL Server 的Replication,Snopsis 使用?『发?(Publish)』与『订阅 (Subscribe)』这样的架构.这其中又分成三个主要的工作阶段: 1. 订阅者订阅某个主题 M-Power eNews December
06 M-Power eNew 本篇文章版权为倍?资讯股份有限公司所有,未经书面同意,严禁复制、转载 Page
2 of
3 在这?的『订阅者(Subscriber)』多半指的是某个要执?资?整合的程序(Process). 此程序会把他所关心的资??动当作一个『主题(Topic)』 、并『订阅』此主题未?所有的 新资讯. 2. CDC 开始发?某主题的最新动态 Sunopsis 的CDC 机制身为一个『发?商(Publisher)』 ,会在侦测到有人订阅?某主 题之后,开始持续的监控该主题是否有任何资?的?动,并将捕捉到的?动资?发送给订 阅者. 3. 订阅者阅?发?给他的资? 订阅者?是阅??发送给他的讯息,用专业术语??,叫做此讯息『被消费 (Consumed)』?.此资讯一经消费,发?商就会认定订阅者已经取得此新资讯,将?就 ?会再对订阅者提供此资讯. 上述的步骤是基本步骤.实际运作上,在发?商把资讯发送给订阅者这一段,会有?种? 同的处?方式.第一种方式叫批次运作模式(Batch)、或资?摘采模式(Pull).?如某应用程式 会每隔五分钟去将网站上这段时间内所产生的订单资?『整批』的『摘取』到ODS 系统;