数据仓库和报告
在数据仓库和报告应用程序中经常使用复制完成以下操作:
- 合并数据,以便能够对其转换并移至数据仓库环境中。
- 将数据分发到只读数据库用于报告。
- 将数据分发到联机分析处理 (OLAP) 数据库。
尽管复制并不复制 Microsoft SQL Server 2005 Analysis Services (SSAS) 对象(例如维度或多维数据集),但它经常用于将联机事务处理 (OLTP) 数据库中的数据分发到临时数据库以及用于报告、决策支持和分析目的的数据库。
以下关系图显示了一个典型方案,其中将在线处理服务器中的数据复制到报告服务器和临时服务器进行 OLAP 和 ROLAP 分析。
Adventure Works Cycles 示例
Adventure Works Cycles 是一家虚构的制造公司,用于演示数据库概念和方案。 有关详细信息,请参阅示例和示例数据库。
Adventure Works Cycles 在包括生产部门和人力资源部门在内的许多部门中使用数据仓库和报告。
生产部门存储有关生产缺陷及许多其他质量和性能指标的历史数据。然后,将生产设备处的服务器中的数据复制到公司总部的临时服务器。在那里对数据进行转换并加载到 OLAP 多维数据集中进行分析。
人力资源部门目前使用第三方应用程序生成报告。他们计划用 Reporting Services 替换此应用程序。他们还打算扩展其报告功能并增加执行以下类型分析的能力:
- 薪酬福利分析,包括分析国际货币汇率的影响。
- 员工总数计划。
- 薪酬开支模拟和预测。
他们将新增一台在线服务器来处理整个公司增加的报告需求。然后将人力资源等部门的数据复制到这台中央只读报告服务器。
此方案的一般要求
数据仓库和报告应用程序通常有以下要求(必须有合适的复制方案满足这些要求):
- 系统必须保持事务的一致性。
- 系统的滞后时间应较短:在线处理服务器的更新应迅速到达临时服务器和报告服务器。
- 系统的吞吐量应较高:应能处理大量事务的复制。
- 在线处理服务器中的复制处理所需的开销应为最低。
- 数据更改沿从在线处理服务器到临时服务器和报告服务器一个方向流动。
- 临时服务器和报告服务器所需的数据可以是在线处理服务器中可用数据的子集。
用于此方案的复制类型
SQL Server 使用出版业术语来说明复制系统的组件。这些组件包括发布服务器、订阅服务器、发布、项目和订阅。
在上面的关系图中,在线处理服务器为发布服务器。在线处理服务器中的部分或全部数据包括在两个发布(一个用于临时服务器,一个用于报告服务器)中,每个数据表作为一个项目(项目也可以是其他数据库对象,例如存储过程)。临时服务器和报告服务器是其中一个发布的订阅服务器,各自接收架构和数据作为一个订阅。有关系统组件的详细信息,请参阅复制发布模型概述。
SQL Server 针对不同的应用程序要求提供不同的复制类型:快照复制、事务性复制以及合并复制。此方案最好用事务性复制来实现,事务性复制非常适合于处理前一部分中所述的要求。有关事务性复制的详细信息,请参阅事务复制概述和事务复制的工作机制。
按照设计,事务性复制可处理此方案下列主要要求:
- 事务的一致性
- 较短的滞后时间
- 大吞吐量
- 最低的开销
此方案需要考虑的首要选项是筛选。事务性复制允许筛选行和列,因此临时服务器和报告服务器上的表只包含您的应用程序需要的数据。有关详细信息,请参阅筛选已发布数据。
实现此方案的步骤
若要实现此方案,必须先创建一个发布和一些订阅,然后对各个订阅进行初始化。有关各步骤的详细信息,请单击下面的链接:
在对订阅进行了初始化且数据开始在发布服务器和订阅服务器之间流动之后,您可能需要查阅以下主题,了解常见管理任务和监视任务的有关信息: