- 青云网帮助电脑爱好者在各自领域取得成功!QQ群:77719397
- 友情链接,合作,联盟
在SQL Server 2008中用CDC提高BI报告的准确性
www.qy5566.cn 来源:未知 作者:admin 时间:2009-06-30 11:09 点击:次
核心提示:在大型商业智能系统或数据仓储上工作时,我们常常面临的问题就是数据及时性。本篇技巧向你介绍了SQL Server 2008中的BI特征:change data capture(CDC),CDC能基于来源处理系统中的数据改
在大型商业智能系统或数据仓储上工作时,我们常常面临的问题就是数据及时性。本篇技巧向你介绍了SQL Server 2008中的BI特征:change data capture(CDC),CDC能基于来源处理系统中的数据改变通知帮你在数据仓储或专用数据库实时更新数据。这在数据仓库和商业智能情况中是一个详细定义问题,但是是非常普遍的一个问题。
过去,SQL Server管理员和开发员对解决方案特别依赖,如自定义代码或用SQL复制得到同样的结果。微软SQL Server 2008 CDC包含以下性能:在ETL过程中解决数据潜伏期问题。由于数据管理和数据仓储中的ETL许多特性,微软知道今天才进入CDC这个领域。今天市场上的其他产品包括Attunity Integration Suite、Informatica PowerExchange CDC和 DataMirror最近都被IBM收购了。那些例子用SQL Server 2008 CDC提高数据源到数据库的数据及时性都是基于SQL Server 2008中的一些特征。
为什么要安装CDC?
这里是个很常见的情况:你已经通过从SSIS数据源下载数据安装了数据库或者数据仓库(SQL Server Integration Services)。事物分析师已经对数据业务报告建立了cube。每晚事物用户就会将数据填入数据仓库满足报告需要,你需要跟他们联系。 但是如果你已经开始预习给beta用户的解决方案,那么报告要求就有变化。现在的事务每小时运行一次报告。
所以,现在你不得不用ETL设计并且每小时更新数据。好的一面就是数据仓库、商业智能以及报告解决方案产生了实际效果并且还能收到。坏的一面就是也许你并没有为频繁更新设计或者架构系统。现在你面临的问题就是如何让数据更新越来越接近实际时间。这些问题涉及的范围从性能到可伸缩性然后再到流通问题。
CDC主要观念就是基于数据源的notification将数据从数据源迁到数据仓库(典型的是事务数据库系统),即当数据在源处进行更新的时候。这就是说不是每一种数据源订阅 CDC notifications都是合适的。股票贸易数据库或订单登陆系统中的高事务工作量就可能不是很理想。更加合适的可能就是数据源,如CRM客户数据、产品数据或者其他类型的查询数据。
怎样激活CDC?
在SQL Server 2008中激活CDC的方法为:首先配置数据库激活该性能。第二,确定文件组保存更改数据,最后就是确定哪个表将出现在CDC notifications中。
你可以用新的CDC以下两个函数cdc.fn_cdc_get_all_changes_ 和 cdc.fn_cdc_get_net_changes_查询更改数据。这两个函数之间主要的区别就是get all changes函数将所有变化,这些变化出现在日志序列码中的相应表的每个行里。而get net changes函数返回的却是反映该数据多个变化的一个行,所以你就不能收到包含上一个查询以后的每个变化这样一个截然不同的图。除了这些新函数之外,你就必须用CDC函数:sys.fn_cdc_map_time_to_lsn将LSNs映射到时间参数解释合适的LSN。
过去,SQL Server管理员和开发员对解决方案特别依赖,如自定义代码或用SQL复制得到同样的结果。微软SQL Server 2008 CDC包含以下性能:在ETL过程中解决数据潜伏期问题。由于数据管理和数据仓储中的ETL许多特性,微软知道今天才进入CDC这个领域。今天市场上的其他产品包括Attunity Integration Suite、Informatica PowerExchange CDC和 DataMirror最近都被IBM收购了。那些例子用SQL Server 2008 CDC提高数据源到数据库的数据及时性都是基于SQL Server 2008中的一些特征。
为什么要安装CDC?
这里是个很常见的情况:你已经通过从SSIS数据源下载数据安装了数据库或者数据仓库(SQL Server Integration Services)。事物分析师已经对数据业务报告建立了cube。每晚事物用户就会将数据填入数据仓库满足报告需要,你需要跟他们联系。 但是如果你已经开始预习给beta用户的解决方案,那么报告要求就有变化。现在的事务每小时运行一次报告。
所以,现在你不得不用ETL设计并且每小时更新数据。好的一面就是数据仓库、商业智能以及报告解决方案产生了实际效果并且还能收到。坏的一面就是也许你并没有为频繁更新设计或者架构系统。现在你面临的问题就是如何让数据更新越来越接近实际时间。这些问题涉及的范围从性能到可伸缩性然后再到流通问题。
CDC主要观念就是基于数据源的notification将数据从数据源迁到数据仓库(典型的是事务数据库系统),即当数据在源处进行更新的时候。这就是说不是每一种数据源订阅 CDC notifications都是合适的。股票贸易数据库或订单登陆系统中的高事务工作量就可能不是很理想。更加合适的可能就是数据源,如CRM客户数据、产品数据或者其他类型的查询数据。
怎样激活CDC?
在SQL Server 2008中激活CDC的方法为:首先配置数据库激活该性能。第二,确定文件组保存更改数据,最后就是确定哪个表将出现在CDC notifications中。
你可以用新的CDC以下两个函数cdc.fn_cdc_get_all_changes_ 和 cdc.fn_cdc_get_net_changes_查询更改数据。这两个函数之间主要的区别就是get all changes函数将所有变化,这些变化出现在日志序列码中的相应表的每个行里。而get net changes函数返回的却是反映该数据多个变化的一个行,所以你就不能收到包含上一个查询以后的每个变化这样一个截然不同的图。除了这些新函数之外,你就必须用CDC函数:sys.fn_cdc_map_time_to_lsn将LSNs映射到时间参数解释合适的LSN。
+ 相关文章 关键字:报告,准确性,提高,数据,CDC,SQL,
- ·上一篇:SQL数据操作基础(中级)7
- ·下一篇:在SQL Server 2008中使用T-SQL数据类型
CopyRight 2008-2009 www.qy5566.cn All Rights Reserved 赣ICP备09009866号
E-mail:epcos0607@sina.com QQ群:77719397
E-mail:epcos0607@sina.com QQ群:77719397

