数据仓库专用引擎分析_第1页
数据仓库专用引擎分析_第2页
数据仓库专用引擎分析_第3页
数据仓库专用引擎分析_第4页
数据仓库专用引擎分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据仓库专用引擎-Teradata RDBMS对于国内数据库人士来说,Teradata也许还不象DB2、Oracle那么熟悉。但在国外,由于它驱动着世界上几乎一半的数据仓库,并且世界上最大的几十个数据仓库均采用它作为核心引擎,因此,Teradata几乎成了数据仓库引擎的代名词。对国内一些用户来说,一个自然的问题是:Teradata是什么?最简单的回答就是:它是一个关系数据库管理系统。既然如此,为什么要用Teradata而不使用那些传统的商用数据库系统比如Oracel来建立数据仓库呢?我们知道,商用数据库基本上是针对OLTP应用而开发出来的,由于数据仓库有其固有的特点,这些传统的商用数据库不一定适合来驱动数据仓库应用,因为每种产品都有其强项和弱项,不可能面面俱到。而Teradata则是专门用来处理大量数据、针对决策支持应用而设计出来的,它具有很强的并行处理能力和扩展能力。下面我们将从Teradata的发展过程开始来介绍它的基本特点,从这些特点我们可以理解为什么说它是数据仓库的专用引擎。1.1.1 Teradata简介Teradata是专门针对决策支持应用而设计的,早在1983年就推出了世界上第一个基于海量并行处理技术(MPP)的商用系统。长期以来,NCR公司投入了大量的人力、财力,对Teradata作了许多增强和优化,使得其更适合于进行海量数据的综合分析和处理。Teradata从早期基于硬件的封闭系统发展成运行于UNIX环境、基于虚拟处理器(VPROC)技术的关系型数据库管理系统。特别值得强调的是,著名的评估机构Gartner Group于1994年将Teradata评为“商用并行处理的领导者”,1996年进一步指出,“只有NCR的Teradata证明了其可扩展性”。我们知道,对于一个实际应用的数据仓库而言,并行处理能力和可扩展性是至关重要的两大因素,而Teradata正是通过其大量的实际应用而获此殊荣的。在数据库专业杂志“数据库编程与设计” (Database Programming & Design)每年的评选数据库十二大产品(Database Dozen)的活动中,Teradata已经连续第7年入选。在1999年的评选中,该杂志认为,“Teradata代表了数据库技术的发展方向”。2000年初,Gartner Group发表了著名的ASEM(Application Server Enterprise Model)评估报告,分别针对OLTP和数据仓库两个应用领域对目前市场上各大供应商进行了综合评估,评估指标非常全面,涵盖了产品特点、专业技术服务能力以及成功应用案例等各个方面。在数据仓库领域,NCR公司在系统性能、可扩展能力、容易管理、专业技术服务、成功案例等关键指标方面名列第一,并且最后总分第一。其中Teradata RDBMS就是一个非常重要的产品之一。其它一些专业评估机构如MetaGroup等,都对NCR的Teradata数据仓库解决方案给予了极高的评价。1.1.2 Teradata的基本结构Teradata采用了一种先进的虚拟处理器技术,称为VPROC (Virtual Processor)。VPROC有两种,即PE(Parsing Engine,分析引擎,负责与外部的接口、查询的优化、任务调度等)和AMP (Access Module Processor,存取模块处理器,负责完成数据处理操作)。其基本设想是:如果将一个复杂的任务分解成多个简单的子任务,每个虚拟处理器执行一个或几个简单的子任务,最后将各虚拟处理器的执行结果汇总,那么总的执行时间就能大大缩短。图8-14 Teradata内部并行处理机制Teradata同时支持SMP和MPP,在一个单节点的SMP系统中,其基本结构可以用下图8-15来表示:图8-15 Teradata在SMP结点内的逻辑结构对于MPP系统,每个节点中的结构和图21是相同的。从图中可以看到,系统与外界的接口有以下两种:网关:所有支持TCP/IP协议的计算机可以通过网络与Teradata相联,其交易请求和处理结果都是通过网关进行交互的。通道:对于一些封闭主机系统(Mainframe),Teradata提供了一种通道(Channel)直联的方式进行信息的交互,即与主机的通道直接联接,速度非常快。交易请交通过网关或通道进入系统后,将传递给分析引擎PE (Parsing Engine)。PE是由软件实现的,是一种虚拟处理器(Virtual Processor),简称为VPROC。PE主要由分析器(Parser)、优化器(Optimizer)和调度器(Dispatcher)组成,分析器分解接收到的SQL交易请求,进而由优化器产生最优的查询方案,由调度器控制查询的执行过程。当多个用户同时访问系统时,Teradata能够通过PE在各节点间自动平衡负载,不需要数据库管理员DBA或者系统管理员的干预。经PE处理的交易请求通过一个高速的信息传递层传至存取模块单元AMP(Access Module Processor)。AMP也是一种虚拟处理器,它控制所有与数据库有关的操作。每个AMP只负载磁盘阵列的一部分磁盘,数据的分配是利用HASH机制经过AMP均匀分布到各磁盘上的,因此,数据库中一个表的各条记录可能分布在不同的磁盘上。这个过程完全自动进行,而对一般商用OLTP DBMS来说,这个过程主要是由DBA控制的。各个AMP并行处理,互不相关,交易处理结果在信息传递层汇总后,直接返回给应用程序,不需要在某个结点进行进一步的处理,因此不存在单个结点的瓶颈问题。每个节点中PE和AMP的数目可以由DBA进行配置。从逻辑上来看,各PE和AMP具有自已独用的内存和CPU,是一种完全无共享结构(Share Nothing Architecture)。1.1.3 Teradata的基本特点Teradata的各项特点可以从以下几个方面来进行概括1.1.3.1 数据自动分配Teradata中只有一种基于HASH算法的数据分配机制,当要插入一条记录时,根据主索引计算出相应的AMP,该条记录即通过此AMP存到其对应的磁盘上。由于主索引值的不同,一个表的各条记录将通过各AMP均匀地分布到各个磁盘上。分配过程完全自动进行,不需要DBA干预,这一点和其它OLTP DBMS有很大的区别。Teradata的HASHING算法经过长期的发展,已经十分完善。它采用了一个类似矩阵的HASH MAP,将计算出来的HASH值通过此矩阵的映射与AMP进行联系。这样,当重新配置AMP数时,只需要变动HASH MAP,速度非常快。对于OLTP系统而言,其查询的特点是预先知道要回答什么样的问题,因此,DBA会根据业务问题的特点把数据按照相应的规律进行分配,例如把数据按照时间的不同分配到不同的硬盘上。这种由DBA手工进行的数据分配机制对OLTP系统而言是有意义的,也确实能提高系统性能。但对数据仓库系统来说,其查询往往比较复杂而且具有不确定性,不同的业务部门可能会提出各种不同的问题,如果再按照一种规律进行数据的分配,则有可能对某些问题系统的响应速度很快,而对另外一些问题的反应则很慢。在Teradata数据库中,通过选择合适的主索引就可以保证数据在各磁盘上的自动均匀分配,使得其并行处理性能得以充分的发挥,特别适合于数据仓库环境下各种不确定的、动态的业务问题。另一方面,所有记录的插入、更新都按同样的HASHING算法进行,使得各磁盘上的数据总是混合存储而且是均衡的,不存在“有序”或者“无序”的概念,因而也就不存在数据库的重组问题(Reorganization)。对于传统的OLTP RDBMS而言,投产运行一段时间后系统性能常常因某种原因(如不断追加记录后造成数据存储不平衡)下降,这时就要考虑对数据库的重组。这是一项非常耗时而且需要经验丰富DBA参与的工作。在Teradata中,由于不存在数据库重组这类的工作,使得其管理十分简单。1.1.3.2 强大的并行处理能力和复杂查询处理能力Teradata最显著的特色之一是其强大的并行处理能力,这也是为什么说它是数据仓库专用引擎的主要原因之一。其实现方式被称为多维并行处理机制,简单描述如下:查询并行(Query并行):这种并行处理是基于上面介绍的HASHING数据分配机制实现的。每个AMP都是一个VPROC,各自独立负责一部分数据的处理,相互之间没有关系,每个节点一般配置4至16个这样的VPROC。所有关系运算如表的搜索、索引检索、投影、选择、联接、聚集、排序等都是由各个VPROC并行进行的。步内并行(Within-a-Step并行):一个SQL查询进入系统后,首先由优化器进行优化处理,分解成一些小的步骤(Step),然后再分发给各VPROC进行处理。一个步骤可能非常简单,如“搜索一个表并返回结果”,也可能非常复杂,如“按照某条件搜索两个表,然后联接,结果投影到某几个列,对它们加和(SUM)后返回结果”。象这种复杂查询将处理多个关系运算,每个关系运算在一个VPROC内将启动多个进程来实现并行处理,称为步内并行。多步并行(Multi-Step并行):上面说过,一个SQL被分解成多个小的步骤,这些步骤的执行将同时进行,称为多步并行。优化器分解一个SQL查询请求的原则是尽可能使各步独立。在目前所有的DBMS产品中,只有Teradata实现了多步并行。下图8-16以一个复杂查询的实例形象地说明了Teradata的多维并行处理机制。图8-16 Teradata内部并行处理机制说明这里假设系统配置有4个虚拟处理器(VPROC),某个复杂查询被优化器分解成了7个步骤,图中SUPPLIERS、PARTS、PARTSUPP等为数据库中表的名字。在每个步骤执行时,4个VPROC同时处理与各自相关的数据块,例如搜索SUPPLIERS表(步骤1.1),该表的记录是通过HASH算法均匀分布在四个VPROC各自负责的磁盘中的,搜索时4个VPROC将同时进行,把相关的记录搜索出来,这就是所谓的查询并行;步骤1.1和1.2、2.1和2.2也是同时执行的,这是所谓的多步并行;步骤2.2(或步骤1.2)中包含有三个操作,它们借助于一种管线(Pipeline)的机制实现了步内的并行处理。除了上面描述的多维并行处理机制外,Teradata还作了进一步的优化和扩展,使得处理复杂查询时响应速度进一步加快。举例来说,在多用户环境下,一个部门中许多用户的查询常常是大同小异的,经过优化器分解后,它们具有一些相同的步骤,由于每个步骤的执行结果会在一个系统缓冲区中暂存,相同的步骤往往只需要执行一次即可。从而大大减少了磁盘I/O,提高了响应速度。我们知道,对于OLTP系统来说,由于其查询相对简单,依靠建立适当的索引就能保证查询的速度,从而对RDBMS并行处理的能力要求不高。但对于数据仓库来说,它主要提供的是OLAP应用,许多业务问题相当复杂,如果依靠索引来提高查询速度,将存在两方面的问题:一是索引过多会占用太多的磁盘空间,增加系统的复杂性和管理成本。许多OLTP RDBMS用于数据仓库时,其磁盘使用率(Disk Ratio,指数据库大小与真正的用户数据的比例)在5以上,有时甚至高达10,原因就在于此。而基于Teradata建立的数据仓库,磁盘使用率一般在1.5至3之间。二是建立一个索引意味着事先定义好一些与之相关的问题,当提出其它问题时常常需要建立另外的索引。也就是说,索引只能解决那些预先定义好的问题,如一些业务报表等。而数据仓库除了要产生大量的业务报表外,另一个主要的应用就是回答那些不能预知的、动态的业务查询,我们称这种动态查询为Ad-hoc查询。你无法想象当管理人员提出一个问题时,DBA回答说:“对不起,我没想到你会提这个问题,请稍等一些,我建个索引就可以了”。因此,RDBMS具有强大的并行处理能力是数据仓库应用成功与否的关键。Teradata从诞生之日开始,就是专门针对决策支持应用而设计的,它的专长不在于OLTP,而在于数据的综合分析和处理,其内部的并行处理机制被设计得十分完善。目前,NCR公司已经在全世界为各行各业的用户成功地实施了1000多个由Teradata驱动的数据仓库解决方案,例如在通信行业有美国AT&T无线通信公司、美国SBC通信公司、澳大利亚Vodafone电信公司、台湾中华电信、台湾远传电信等这样世界顶级的通信公司等,其中数据库容量在1TB以上的大型数据仓库就有300多个,NCR公司也因此成为无可争议的全球数据仓库的领导者。1.1.3.3 线性可扩展能力一般来说,当数据仓库投产以后,随着应用的增加,其数据量也增长得非常快,因此,数据仓库系统对扩展性的要求很高。可扩展包含两方面的含义,即硬件平台的可扩展和软件平台的可扩展,两者必须相互配合,相辅相成,任何一方存在瓶颈都会影响整个系统的扩充能力。Teradata的操作系统是Microsoft Windows NT/2000或者是NCR UNIX,如果使用Windows,则可用使用任何支持Windows的服务器,如果使用NCR UNIX,则只能使用NCR的NCR系列MPP服务器。之所以存在这种限制的主要原因就在于扩展能力上,因为目前NCR的 NCR MPP服务器是业界扩展能力最强的计算机系统,它配合Teradata,形成了扩展能力最强、并行处理能力最佳的数据仓库基础平台。考虑一个系统的线性可扩展能力,可以从以下三个方面来进行评估: 数据量增长时的线性度:当用户数据量成倍增加时,对于同一个系统(指硬件配置不变),响应时间是按比例线性增加的; 硬件平台的线性度:对于同一个查询,当硬件平台的配置增加一倍时,响应时间应减少一半; 并发用户增加时的线性:对于同一个系统,当并发用户的数目增加时,响应时间也按比例线性增加。对基于Teradata实施的数据仓库系统的扩充是很容易的,可以采用现场升级(Field Upgrade)方式。下图举例说明了将一个四节点的系统扩充到六节点的情况,首先将新增加的两个结点通过BYNET与原系统联接,然后运行Teradata提供的一个名叫RECONFIG的工具,它将自动把原系统磁盘阵列中1/3的数据按照HASH算法均匀地分布到新节点所控制的磁盘中。这个过程完全自动进行,不需要DBA过多地干预。这个特性也是为什么说由Teradata组成的数据仓库系统比较容易管理的原因之一。图8-17 Teradata线性扩展说明1.1.3.4 易于管理从前面的描述我们已经看到,由于Teradata中许多工作如数据分配、负载管理、查询优化与调整、工作管理与自由空间的管理等都是自动进行的,没有数据库重组,可以进行系统的在线升级,等等。这些都说明Teradata DBA的工作相对比较容易,因此对同样数据量的系统,Teradata所需DBA的人数较少,系统的运行费用较低。下表是Teradata和一些传统的OLTP RDBMS在各种数据库管理任务上的简单比较:数据库管理任务一些商用OLTP RDBMSTeradata逻辑数据建模高高物理数据建模高低数据分块定义高低数据布局定义高自动自由空间管理高低数据平衡控制高无数据重组高无索引重组高无工作空间管理高自动查询调整高自动负载管理高自动变换管理高低由于DBA的减少,运行费用将大大降低,使得系统的整体拥有成本大大降低。1.1.3.5 数据库内含丰富的OLAP功能Teradata是专为数据仓库设计的,主要用来进行数据的综合分析和处理,因此在开发时嵌入了丰富的OLAP功能,主要包括:排序 RANK、累计和 CSUM、移动平均 MAVG、移动和 MSUM、移动差分 MDIFF、采样 SAMPLE、分位 QUANTILE、限定 QUALIFY等。这些函数可以和标准的SQL语句一起使用,而且所有这些函数都是在Teradata内部以并行方式来工作,速度非常快。在目前众多的数据库系统中,只有Teradata提供了这种由数据库本身完成的OLAP分析功能。这些函数在许多前端工具(包括Microsoft Excel)中都能提供,但最大的问题在于:前端工具能够操作的数据量有限,而且速度不快 。如果要基于大量的数据完成上述OLAP分析,则只能靠数据库本身能完成,然后将结果返回给前端工具加以展现。Teradata提供的这些OLAP扩展功能更进一步确定了它在数据仓库引擎方面的领导地位。1.1.3.6 Teradata V2R5.0的新增特点Teradata V2R5.0是NCR公司于2002年12月推出的最新版本的Teradata数据库,标志着NCR在推动实时数据仓库(Active Data Warehousing)上迈出了关键的一步。其主要性能改进使得客户在数据仓库应用中能更好地解决针对少量数据的战术性数据操作和针对大量数据的战略性数据挖掘的平衡,使得数据仓库系统更易于使用,更易于管理。为了能对Teradata V2R5有更多的了解,在此将这一新版本的主要特性做一个概要性介绍:1. 分区主索引PPI,解决大数据量和小数据量操作的矛盾在V2R5中,引进了分区主索引的概念 (PPI),它是一种新的表的结构,运用这种优化了物理表设计使大量的条件约束查询变得方便和快速, 避免了对一定范围的数据查询必需做全表查询所带来的系统资源的消耗。在以前的版本中,采用如下的机制:这种机制的优点是有目共睹的,但如果需要查询某些特定的大表的一个范围内的数据并需要做全表查询,由于数据是HASH分布的,虽然需要涉及的数据只是在某一个范围内,但数据的实际获得还是要经过全表查询获得。这样一来必然导致时间的增加和资源的消耗。V2R5的PPI(分区主索引)很好地解决了这一问题,下面让我们看看它的机制:User-specified在新的机制中数据将按照预先设定的分区条件设定在每个AMP中按照分区均衡分布,因此一个良好的表的组织结构既保证了数据在所有AMP中均衡的分布,又保证了数据操作的并行性,同时又避免了在对一定范围内数据查询时做全表扫描的矛盾。通过这两种方式的比较可以发现对用户而言,新的功能有如下的好处: 显著地提高了有条件约束的数据操作的效率,对用户而言,他们看到的是一个完整的表,但是在做战术性一定范围内的数据操作却只是针对其中的某些子集从而极大地提高了效率和减少了资源的消耗。 使系统管理更加方便,消除了用户需要分表的痛苦,所有的相关管理工作都由数据仓库系统自动处理。 显著提升了分段查询的性能(如时间段),对只访问当前数据的用户提供高性能。如果2年的数据按月分区,访问一个月数据查询速度比原来快24倍。2. 引入角色概念、用户参数概念,数据库的管理更方便容易1) 角色概念的引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论