专家解读微软并行数据仓库

日期: 2011-08-03 作者:Denny Cherry翻译:孙瑞 来源:TechTarget中国 英文

微软并行数据仓库(Parallel Data Warehouse,简称PDW)去年同SQL Server 2008 R2一同发布,该产品设计初衷是为了同Oracle Exadata和Teradata等展开竞争。PDW真正意义上实现了混合工作负载的能力,用户可以在使用熟悉的SQL Server数据库引擎的情况下,将数据从多个物理服务器上进行扩展。   并行数据仓库并不是一款软件系统产品,在购买之后你不能简单地将其安装在硬件上。PDW最基本的配置是双机架,其中一个机架是管理服务器,作为管理节点、控制节点、lzone节点和备份节点。

另一个机架将存放所谓的计算节点,用来真正存储数据,我们将其称为一个数……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

微软并行数据仓库(Parallel Data Warehouse,简称PDW)去年同SQL Server 2008 R2一同发布,该产品设计初衷是为了同Oracle Exadata和Teradata等展开竞争。PDW真正意义上实现了混合工作负载的能力,用户可以在使用熟悉的SQL Server数据库引擎的情况下,将数据从多个物理服务器上进行扩展。

  并行数据仓库并不是一款软件系统产品,在购买之后你不能简单地将其安装在硬件上。PDW最基本的配置是双机架,其中一个机架是管理服务器,作为管理节点、控制节点、lzone节点和备份节点。另一个机架将存放所谓的计算节点,用来真正存储数据,我们将其称为一个数据机架,它里面是一个10核芯片服务器(具体情况具体分析)和专有的SAN存储设备。对PDW进行扩展十分简单,添加更多的数据机架即可。

  控制节点提供了一系列的功能,最重要的是,它们提供了查询并行数据仓库的功能。你连接到控制节点时,并不是使用熟悉的SQL Server Management Studio(SSMS),而是使用一款第三方工具——Nexus Chameleon,它是包含在PDW安装之内的。由于SSMS不能够直接连接到PDW控制节点,因此用户在使用PDW之前需要熟悉这款工具。

  运行在控制节点上的是一个特殊版本的SQL Server数据库,它能够将Transact-SQL查询送到PDW计算节点来执行。事实上,来自数据仓库的数据并不会存储在这个实例上,取而代之,它会存放数据库设置方面的元数据,并提供暂存空间作为临时数据库。

  除了处理数据查询请求之外,控制节点还会处理你的数据加载过程。数据加载能够通过几种不同的方式来完成,最简单的一种就是使用Business Intelligence Development Studio (BIDS)工具和最新SQL Server集成服务(SSIS)的目标连接对象,后者是特别针对PDW研发出的产品;另外一种方式是将数据加载到所谓的磁头停放区(landing zone),然后使用一个新的工具叫做DWLOADER来批量加载数据到PDW。DWLOADER的工作原理同bcp工具非常相似,它可以将数据快速地加载到目标table中。

  许多人认为,微软并行数据仓库同SQL Server或者Oracle的分区表相类似,虽然二者的概念听上去很像,但实际上有着很大的差别。分区表是指你讲特定区域的数据分割到单独的分区上,这样在查询的时候就可以只查询一个分区就够了;而PDW中的原理则是截然相反的,你是将当前数据推送到系统中的每一个计算节点上,这样当你查询数据的时候实际是由多个计算节点来响应数据请求的。

  因此,当使用所有的计算节点时,你可以增加CPU的数量并提高一次生成的I/O总数。这样的设计增加了大量的计算资源,可以很大程度上减小响应时间。之前需要几天来完成的操作,在使用PDW时仅需几分钟,传统SQL Server实例无法运行的报表,PDW可以快速地完成。

  但是并行数据仓库并不是万能的,它也有自身的缺点。比如在PDW运行插入insert操作会比传统SQL Server更慢,由于数据插入PDW时,每一行都需要进行检测才能够决定存储在哪些计算节点上。当在PDW内部创建一个表时,你需要明确数据是否需要复制到所有存储节点上;往往一个维度表可以这样设置。

  第二个表设置选项将用来在计算节点之间发布数据,并具体根据每一列来决定。当数据加载之后,声明过的列被hash,而hash值将同一个内部表进行比较,以决定哪个控制节点存储该数据。由于数据是通过控制节点来加载到系统之内的,所以必须经过hash过程。然后行数据将从控制节点转移到计算节点进行存储。

  另外一个PDW的缺点就是聚合功能。根据编写的查询,所有被聚合的数据需要从计算节点转移到控制节点,并存储在临时数据库中,当转移完成后再进行聚合。如果数据量非常大的话,这个过程将是非常耗费时间的,因为数据的转移需要网络连接来完成。在一定程度上,用户可以避免此类情况的发生,因此我们需要对表进行特别的设计,并重新审视我们的查询语句。如果你打算做一个聚合日志,那么一定要确保彻底测试所有的查询。

  并行数据仓库的基础架构是高度冗余的, PDW内几乎所有的组件都有备份内建在几家之内。两个管理节点作为并行数据仓库的主控制器可以允许系统管理员对其他服务器进行相应配置(PDW拥有自身的动态目录,可以将机器同其他任何组策略进行隔绝)。控制节点起到了一个主动/被动Windows集群的作用,计算节点也可以配置为一个单独的集群,因此如果物理服务器宕机,PDW将不会失去所有的CPU计算资源。

  微软的并行数据仓库是一个非常强大的系统,企业可以根据自身需求将其的价值发挥到最大。但记住PDW并不是SQL Server实例的替代品,二者在工作原理上并不相同。企业在购买并行数据仓库之前,一定要理解本文中所讲到的内容,以避免操作不当带来的不必要的麻烦。

翻译

孙瑞
孙瑞

相关推荐