使用 Microsoft SQL Server 2000 和 Windows 2000 Datacenter Serve

发表于:2010-06-18来源:作者:点击数: 标签:SQLsqlSql分布式Datacenter
白皮书 摘要 小企业所有者通常知道他们所有客户的名称,尤其是顶级客户的名称。例如,小企业所有者可以很容易查看单个客户名称、付款地址以及这些客户的购买情况。小企业所有者通常与客户保持着密切的联系,以便随时了解客户对其业务的满意程度,并努力培养

白皮书

摘要

小企业所有者通常知道他们所有客户的名称,尤其是顶级客户的名称。例如,小企业所有者可以很容易查看单个客户名称、付款地址以及这些客户的购买情况。小企业所有者通常与客户保持着密切的联系,以便随时了解客户对其业务的满意程度,并努力培养与顶级客户的关系,以确保他们一直是自己的顶级客户。

相比之下,大型企业的所有者要想与客户保持这种灵活的接触就困难得多。这是因为,大型组织需要处理更多的复杂情况,它们不仅有更多的客户,而且有更多的雇员、产品、服务,最重要的是,还需要处理更多各种各样的文书工作和信息。这意味着,大型企业的所有者需要详细审阅更多的数据,才能确定有哪些最佳客户、哪些产品和服务客户更愿意同时购买,才能根据各个客户的购买习惯确定客户的总体需要。

仅在美国,Microsoft 就拥有超过一亿个客户,1“客户”是指从 Microsoft 分销商或零售商那里已经购买至少一个 Microsoft 产品的最终用户、注册为事件参加者的最终用户或订阅联机新闻快递的最终用户。Microsoft 的渠道关系要求公司通过各种独立的来源获得每个最终用户的名称和地址。Microsoft 依靠一组十分先进的工具和技术,也就是基于分布式数据仓库的高效 Microsoft® SQL Server 2000,来有效地管理与客户的关系。该系统每天能够加载 2 百万个以上的客户记录,但它只使用八台运行 Microsoft Windows® 2000 Datacenter Server 网络操作系统和 Microsoft SQL Server 2000 的计算机、两台运行 Microsoft Windows 2000 Advanced Server 网络操作系统的计算机、550 个硬盘驱动器、32 个磁盘控制器和大约 1 TB 与客户有关的数据。

同时,该数据仓库还包括 1 亿 5 千万条 SQL 事务记录,这些记录支持交叉表报表和图表化功能,便于管理者查看单个客户的综合情况并了解他们对 Microsoft 产品和 Microsoft 赞助的事件和新闻快递的兴趣。

对于 Microsoft 或其他任何大型组织来说,设计和部署分布式数据仓库环境以支持大型的全球客户关系管理 (CRM) 和决策支持系统 (DSS) 并不是件小事。没有一个符合实际的范例,要想计划、部署和扩展一个有效的系统将十分困难。本文档说明了 Microsoft 所面临的许多问题和挑战,以及它在扩展和部署其分布式数据仓库以支持 CRM 和 DSS 功能(这些功能以前需要有第三方的大型机环境的协助)时所采用的方法。

通过充分解释由 Microsoft 设计和支持小组完成的许多设计、开发和部署决策,本文档可以视作为 Microsoft 建立高度有效的分布式数据仓库所使用的方法范例。

业务要求

Microsoft 信息技术小组 (ITG) 确定了三项业务要求,推动数据仓库的设计和部署支持 CRM 和 DSS 功能。这些业务要求是:提高客户满意度、规模经济以及更加标准化和集成化的环境。

客户满意度

提高客户满意度的中心是 Microsoft 在 1999 年开始实施的全球 CRM 和 DSS 环境。这些环境是分布式数据仓库的中心部分,Microsoft 希望通过完整地使用这些环境,能够比以往更好地确定个人和组织正在使用哪些产品和服务。

该分布式数据仓库的一项关键功能是帮助 Microsoft 全面了解每个客户的情况。因此,Microsoft 正在设法统一各种来自内部和外部信息源的客户信息。在数据仓库中,客户和 Microsoft 之间的每个“接触”都将记录在中心储存库中。这意味着,当客户购买产品然后注册该产品时(无论使用平寄邮件或电子邮件,还是通过订阅新闻快递或参加某项事件),都会产生一些交互操作的记录,从而为 Microsoft 提供了该客户的个人化综合信息。随着时间的推移,我们相信更有效率的 CRM 解决方案将帮助决策者更好了解客户关系,开发出更好的产品和服务,由此提高长期的客户满意度和忠诚度。

规模经济

Microsoft 是一家高度分散的企业,属下的 60 多个分支机构都有销售办事处。多年来,每个分支机构都投资建设独立的客户数据库解决方案,以满足其特定的需要。这些投资来源于每个分支机构的预算。例如,位于英国的分支机构每年为此花费了大约一百五十万美元。其他大型分支机构也需要做相同的投资,而少数几个较小的分支机构则不得不完全放弃对与客户相关的活动和事件有利的投资。这意味着,较小的分支机构通常无法用大分支机构的大手笔投资方式来培育与客户的关系。

分支机构还可能建立多个数据库以满足每个客户群的需求,或者建立不同的数据库以提供产品技术支持电话、产品注册、传出电话、营销等功能。每个独立的解决方案都需要对数据获取、数据处理、支持以及客户数据查询工具进行投资。由于单个投资通常只能使一个分支机构受益,所以传统的方法难于产生规模经济。

因此,Microsoft 设计和部署能够支持全球 CRM 和 DSS 的分布式数据仓库,其目的另一个方面是要努力利用规模经济,即仅用一个集中管理的解决方案来使所有分支机构的决策者都受益。

标准化

标准也是 Microsoft 设计和部署使用集中管理的分布式数据仓库的全球统一 CRM 和 DSS 环境行动的中心。过去,在如何实现 CRM 方面,即使存在一些标准,各个分支机构所使用的不同实施方案却很少使用这些标准。例如,某些分支机构开发了自定义代码的应用程序来支持销售、市场和客户支持小组。而其他分支机构则使用第三方应用程序,或者外包整个客户关系职能部门。

为了解决这个问题,Microsoft 启动了一项内部计划,开发出标准化的和可伸缩的 CRM 和 DSS 实现方法,使所有分支机构的决策者都能够从中受益。该过程的第一步是统一位于美国的各个独立系统的信息,并设计和部署作为本文主题的分布式数据仓库。

概述

由于 Microsoft 的客户数量庞大,仓库设计人员在规划解决方案时的首要决策之一是将客户信息分布在多个服务器上,其动机是获得强大功能。分布式设计允许多个服务器同时处理单独的任务(任务作为一个或多个 SQL 存储过程)。它还使扩展更容易,因为它支持识别那些可以划分成多个子任务的任务,而这些子任务又可以同时运行在多个服务器上。在编程级别上,这涉及到将 SQL 存储过程划分成两个或更多个新的存储过程,然后将这些存储过程加载在运行 SQL Server 2000 Enterprise Edition 的独立计算机上。

即使数据仓库已经作为分布式系统实施,每个服务器仍然能够与其他使用 Microsoft Cluster Service(包括在 Windows 2000 Datacenter Server 中)和存储区网络的服务器共享部分数据。每个群集服务器都执行专门的数据处理,然后通过把数据库放在某个群集磁盘资源中,来共享该处理的结果。随后,当另一个服务器请求共享的磁盘资源并重新加载共享的数据库时,系统将用更专门化的数据处理来继续执行后续的处理过程。

最后,决策者就能通过基于 Web 的活动管理及 DSS 工具来查看数据。使用这些工具,决策者就能根据特定配置文件查看客户列表,并根据实际选择的任一配置文件来生成活动和事件。到 2001 年 3 月,该数据仓库包含了大约 1 亿个 Microsoft 美国客户的信息,并且计划未来包括其他国家或地区的客户信息。

不管美国客户的信息是从什么地方收集到的,这些信息都会安全存储在位于华盛顿州 Redmond 的 Microsoft 总部的服务器中。这些系统每天 24 小时每周 7 天受到严格的安全措施保护。

数据仓库基于如下 Microsoft 产品:

  • Windows 2000 Datacenter Server,包括 Microsoft Cluster Service2(要查看合格 OEM 的列表,请访问 http://www.microsoft.com/windows2000/guide/datacenter/overview/default.asp)作为连续的产品开发过程的一部分,Microsoft 的数据仓库设计人员和产品开发组正在评估在使用超过四个节点的配置下的 Windows 2000 Datacenter Server。本文档通过图例说明了正在评估的七节点群集的使用情况。
  • Windows 2000 Advanced Server,包括 Internet Information Service
  • Microsoft SQL Server 2000 Enterprise Edition

数据仓库中的数据来自各种内部和外部渠道,包括 microsoft.com Web 站点和 Dun&Bradstreet。利用每天能够添加 2 百万条记录的容量,该数据仓库几乎始终都在加载那些注册新产品、订阅新闻快递或参与公司事件的新老客户的信息。

因为数据仓库采用集中管理方式,所以它只需要相对少的维护资源。数据仓库的设计、部署以及目前的维护只需要 23 个人参加,在运行大约一年之后,它已经证明具有几个明显的优点。例如,数据仓库正在帮助提供更全面的美国客户的情况;以前,为了实施新功能和报表功能,以及为了制定培养与公司顶级客户的关系计划,需要做大量的外包安排工作,而现在这方面所花的时间正在减少。图 1 概述了 Microsoft 内部所使用的分布式设计,以及服务器及其功能。


图 1 Microsoft 技术支持 CRM 和 DSS 数据仓库设计的各种组合情况

内部数据仓库的使用者由两组主要决策者组成:确定市场趋势者和数据挖掘者。第一组观察各个市场段,并使用相当基本的报表进行交叉表报告和历史分析,例如,参加事件或订阅新闻快递之后购买了产品的人数。第二组则挖掘横向销售和纵向销售的机会,以便规划未来的活动和事件。

设计

由于分布式数据仓库的逻辑及物理结构对其分布式性质和可伸缩性起关键作用,因此下面将详细介绍 Microsoft 如何把数据仓库划分成逻辑层和物理层,并设计通过数据仓库的数据流。在这方面所做的工作是为了从各个分散的渠道获得客户名称和地址,这与利用现有客户的识别号相反。(要详细了解实施逻辑结构时所面临的问题,请参见“实施”一节。)

逻辑结构

在分布式数据仓库的逻辑结构设计过程中,工程师考虑了为符合业务要求而必须在系统中执行的主要事件,以及这些事件的执行顺序。

事件

工程师将六个数据仓库事件定义为主要事件:数据映射、标准化和匹配、操作数据存储、决策支持、活动管理和数据抑制。

数据映射。客户信息来自许多数据源,包括产品注册卡、事件注册卡、电子调查和订阅电子新闻快递。每个数据源既可以获得所有数据源共有的信息(例如“客户名称”),也可以获得给定数据源唯有的信息(例如“订阅起始日期”)。数据映射将数据字段在表中的位置标准化,以便(例如)客户的名称不会因为疏忽而存储到客户的地址字段。数据映射还对各种数据源提供的数据字段进行安排,以便每个输入文件都使用相同的数据字段格式。

标准化和匹配。与任何数据仓库一样,Microsoft CRM 和 DSS 数据仓库包括一些规定,以避免出现不必要的重复和冗余。例如,当客户更改地址、电话号码或职业信息时,数据仓库必须反映这些更改,而不能因疏忽去更新错误的记录(例如,更改另一个同名客户的记录),或者创建重复记录(例如,用原地址列出了一个客户,然后再用新地址列出该客户)。通过对每个更新记录以及所有新的客户记录使用标准化和匹配方法,数据仓库将确保建立一个完备和准确的单个客户信息记录。

操作数据存储。为了在准备永久存储时使数据均质化,数据仓库使用了基于星形构架格式的操作数据存储库 (ODS) 来获得灵活和永久的存储环境。从该环境中,DSS 和活动管理的“工厂处理”获得它们的数据。

工厂处理。在分布式数据仓库中,工厂处理涉及对 ODS 中的数据进行转换,以便适合进行报告、分析和活动管理等的活动。工厂处理的方法是,从 ODS 取得数据,并通过应用业务规则进行提炼,对其进行非规范化、聚合和分区处理,从而确保它有适合在数据集市中使用的格式。按照数据仓库的设计,在 ODS 和数据集市中,“单个客户”是最低一级的聚合。

决策支持。决策者必须能够统计正在注册产品、参与事件、加入新闻快递等的单个客户的数目。他们还必须能够观察给定市场段以确定纵向销售和横向销售的机会。出于这些原因,Microsoft CRM 和 DSS 数据仓库包括了灵活的 DSS 环境。

活动管理。决策者还必须能够邀请选中的客户参加公司赞助的事件,并使用批量电子邮件、平寄邮件或客户电话联系他们。出于该原因,数据仓库包括活动管理功能。

数据抑制。虽然 Microsoft 能够定期地以任何最实用的方式来联系数据仓库中的大多数客户是非常重要的,但某些客户却不喜欢与其联系,或者只愿意通过某些方式进行联系(例如,电子邮件而不是电话,或者平寄邮件而不是传真)。通过数据抑制,Microsoft CRM 和 DSS 数据仓库可以在判断要联系哪些客户以及何时以何种方式联系他们时考虑这些客户的要求。数据抑制是 Microsoft 在数据仓库中实施安全和隐私首选项的一个组件。该仓库不仅可以指示单个客户的首选联系和非联系信息,而且还能限制对敏感数据的访问,以便分析人员可以查看计算结果,而不用实际查看名称和地址。

事件顺序

定义数据仓库中的主要事件之后,设计工程师确定了这些事件发生的顺序。如图 2 所示,事件被按照数据负载、工厂处理和数据集市的生成进行分组。


图 2Microsoft CRM 和 DSS 数据仓库的逻辑结构

下面是数据流的简短摘要:

  • 数据安全地存储在 ODS 中,
  • 数据移动到工厂服务器,在这里使用 SQL 存储过程生成聚合和加速表,并且
  • 转换后的数据被移动到决策支持或活动管理的数据集市,其中使用相关的星形构架格式将数据存储起来。

利用该过程,通过应用业务逻辑和规则,使数据保持在系统中的移动,其中间结果可以供需要该数据来进行额外处理的各种服务器使用。该方法允许数据仓库中的每个服务器有一个专门的角色,并确保所有服务器保持忙碌状态。

物理结构

在 Microsoft CRM 和 DSS 数据仓库的物理结构的设计过程中,工程师考虑了逻辑结构、输入数据的数量、业务规则的复杂性以及高速计算机的可用性等因素。要最有效地利用硬件,并能够通过添加服务器进行扩展,工程师使用了分布式计算环境在建立逻辑结构之后对物理结构进行建模。

遵循在 90 年代初期流行起来的“适时”方法,该设计使组织(例如 Microsoft)能够仅在需要进一步处理时才应用财力资源。这种方法的另一个优点是,它使组织能够确实是在需要更多的计算能力时,才利用最先进和最强大的计算设备。图 3 说明 Microsoft 按照适时方法扩展数据仓库的方式。


图 3 使用“适时”方法扩展分布式数据仓库

物理结构还指定了需要多少服务器、每个服务器上需要运行什么产品以及如何处理联网和存储问题。对于 Microsoft CRM 和 DSS 数据仓库,该结构指定了八台在 Windows 2000 Datacenter Server 网络操作系统下运行 SQL Server 2000 Enterprise Edition 的服务器,和两台运行 Windows 2000 Advanced Server 网络操作系统用于中间层报表功能的服务器。系统要求 SQL Server 2000 Enterprise Edition 使用超过 3GB 的内存。图 4 说明了该部署情况,表 1 则详细说明了所使用的各种硬件配置。


图 4 分布式数据仓库的物理结构

表 1 Microsoft CRM 和 DSS 分布式数据仓库中所使用的硬件配置

主要服务器角色
处理器数
处理器速度
内存
SQL Server 数据库大小
标准化和匹配

 

4

 

500 MHz

 

4 GB

 

8 GB

 

ODS

 

8

 

550 MHz

 

4 GB

 

900 GB

 

活动管理工厂

 

8

 

550 MHz

 

4 GB

 

1100 GB

 

活动管理数据集市

 

8

 

550 MHz

 

4 GB

 

650 GB

 

活动管理数据集市

 

8

 

550 MHz

 

4 GB

 

650 GB

 

决策支持中间层

 

4

 

500 MHz

 

4 GB

 

8 GB

 

决策支持工厂

 

8

 

550 MHz

 

4 GB

 

600 GB

 

活动管理中间层

 

4

 

500 MHz

 

4 GB

 


 

决策支持数据集市

 

8

 

550 MHz

 

4 GB

 

300 GB

 

决策支持数据集市

 

8

 

550 MHz

 

4 GB

 

300 GB

 

目前,数据仓库使用了超过 550 个磁盘和 32 个磁盘控制器,组成总计 17.3 TB 未格式化的物理存储区。七台服务器正在使用 Microsoft Cluster Service(包括在 Windows 2000 Datacenter Server 中)和存储区网络 (SAN) 来共享接近 1 TB 的基于 SQL Server 2000 的数据,并使其可供其他运行 SQL Server 2000 的服务器全局使用。图 5 说明了 SAN 的逻辑体系结构,它使用逻辑单位数字 (LUN) 掩码功能。使用 Microsoft Cluster Service 来管理共享的逻辑驱动器。

crmdss5

图 5 逻辑 SAN 结构

数据流

为了与其他服务器共享专门化处理的中间结果,数据仓库利用了 Microsoft Cluster Service、SAN 和 SQL Server 2000 备份。SQL Server 2000 备份用来把数据库放在群集化的驱动器资源上,然后使用 Microsoft Cluster Service 根据对驱动器资源的请求并应用“故障转移”将该驱动器资源转移到另一台服务器。这时,其他服务器可以通过执行更专门化的 SQL 代码,立即重新加载数据库并继续执行其他专门处理。

分布式数据仓库中的服务器通过线缆连接到光纤通道控制的磁盘卷。它们还通过线缆连接到异步传输模式 (ATM) 网络。最初,生产支持人员通过在网络上复制数据实现在服务器之间共享数据。当仓库只包含几百万条客户记录时,该方法很有效,但是对于更大的数据集合,则不能很好地扩展使用该方法,因为复制操作需要花费数天的时间才能完成。现在,使用 SAN、SQL Server 2000 备份和 Microsoft Cluster Service 故障转移,等量数据的加载操作可以在数分钟内完成。

注意,尽管通常部署 Microsoft Cluster Service 是为了提高容错性和可用性,但在分布式数据仓库中这不是它的使用目的。实际上,使用它只是为了在群集节点之间共享基于 SQL 的数据。数据将连续加载到 ODS 中。每周,操作小组都要停止加载过程,并使用 SQL Server 备份工具将 ODS 备份到 SAN。一旦备份完成,小组将使用 Microsoft Cluster Administrator 应用故障转移,从包含备份的驱动器转移到决策支持工厂服务器,并在这里立即重新加载数据。

决策支持工厂使用 SQL 通过应用业务规则和数据转换继续处理该数据。该过程运行大约需要超过四天的时间。然后,工厂服务器将在启动 SQL Server 备份,把 ODS 派生的数据库备份到共享驱动器资源时,然后开始运行它当前的工厂处理。

备份完成后,将使用 Microsoft Cluster Service 应用故障转移,从共享驱动器资源转移到活动管理工厂服务器。一旦发生该操作,活动管理工厂服务器将使用 SQL Server 2000 还原数据库并开始处理数据,以支持活动管理。该处理过程将与决策支持工厂所执行的处理过程同时进行。

原文转自:http://www.ltesting.net