还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据仓库专用引擎-Teradata RDBMS对于国内数据库人士来说,Teradata也许还不象DB
2、Oracle那么熟悉但在国外,由于它驱动着世界上几乎一半的数据仓库,并且世界上最大的几十个数据仓库均采用它作为核心引擎,因此,Teradata几乎成了数据仓库引擎的代名词对国内一些用户来说,一个自然的问题是Teradata是什么?最简单的答复就是它是一个关系数据库管理系统既然如此,为什么要用Teradata而不使用那些传统的商用数据库系统比方Oracel来建立数据仓库呢?我们知道,商用数据库根本上是针对OLTP应用而开发出来的,由于数据仓库有其固有的特点,这些传统的商用数据库不一定适合来驱动数据仓库应用,因为每种产品都有其强项和弱项,不可能面面俱到而Teradata则是专门用来处理大量数据、针对决策支持应用而设计出来的,它具有很强的并行处理能力和扩展能力下面我们将从Teradata的开展过程开始来介绍它的根本特点,从这些特点我们可以理解为什么说它是数据仓库的专用引擎
1.
1.1Teradata简介Teradata是专门针对决策支持应用而设计的,早在1983年就推出了世界上第一个基于海量并行处理技术MPP的商用系统长期以来,NCR公司投入了大量的人力、财力,对Teradata作了许多增强和优化,使得其更适合于进行海量数据的综合分析和处理Teradata从早期基于硬件的封闭系统开展成运行于UNIX环境、基于虚拟处理器VPROC技术的关系型数据库管理系统特别值得强调的是,著名的评估机构Gartner Group于1994年将Teradata评为“商用并行处理的领导者〃,1996年进一步指出,“只有NCR的Teradata证明了其可扩展性〃我们知道,对于一个实际应用的数据仓库而言,并行处理能力和可扩展性是至关重要的两大因素,而Teradata正是通过其大量的实际应用而获此殊荣的在数据库专业杂志“数据库编程与设计Database ProgrammingDesign每年的评选数据库十二大产品Database Dozen的活动中,Teradata已经连续第7年入选在1999年的评选中,该杂志认为,“Teradata代表了数据库技术的开展方向〃2000年初,Gartner Group发表了著名的ASEMApplication ServerEnterprise Model评估报告,分别针对OLTP和数据仓库两个应用领域对目前市场上各大供给商进行了综合评估,评估指标非常全面,涵盖了产品特点、专业技术效劳能力以及成功应用案例等各个方面在数据仓库领域,这种机制的优点是有目共睹的,但如果需要查询某些特定的大表的一个范围内的数据并需要做全表查询,由于数据是HASH分布的,虽然需要涉及的数据只是在某一个范围内,但数据的实际获得还是要经过全表查询获得这样一来必然导致时间的增加和资源的消耗V2R5的PPI(分区主索引)很好地解决了这一问题,下面让我们看看它的机制Partitioning PrimaryTeradataHashFields IndexFieldsFunction•一User-specifiedPartition RowHashHash BucketData FieldsPartitioningFunctionHash MapBYNETAMP AMPAMPAMPDenotes newPPIfeature在新的机制中数据将按照预先设定的分区条件设定在每个AMP中按照分区均衡分布,因此一个良好的表的组织结构既保证了数据在所有AMP中均衡的分布,又保证了数据操作的并行性,同时又防止了在对一定范围内数据查询时做全表扫描的矛盾通过这两种方式的比较可以发现对用户而言,新的功能有如下的好处,显著地提高了有条件约束的数据操作的效率,对用户而言,他们看到的是一个完整的表,但是在做战术性一定范围内的数据操作却只是针对其中的某些子集从而极大地提高了效率和减少了资源的消耗,使系统管理更加方便,消除了用户需要分表的痛苦,所有的相关管理工作都由数据仓库系统自动处理/显著提升了分段查询的性能(如时间段),对只访问当前数据的用户提供高性能如果2年的数据按月分区,访问一个月数据查询速度比原来快24倍引入角色概念、用户参数概念,数据库的管理更方便容易2,工角色概念的引入在V2R5中,访问的权限可以先赋给角色ROLE,而角色权再赋给相应的用户在以前的版本中,增加一个新的用户需要设定对每一个表的权限,而现在只需要把相关的角色权New User限赋给它就行了权限管理更方便和简单了用户参数概念的使用2PROFILE用户参数是一套相同用户的设置参数,其中包括SPOOL空间,临时空间的限制设定,缺省数据库的设定,用户密码属性的设定等从而极大地方便了用户的管理10tables10users10tables10users全局索引、稀疏索引、局部覆盖索引,优化了业务运营系统的性能
3.Teradata数据库提供了数据仓库高效地处理简短战术需求的能力现在你可以从业务的各个方面开发数据仓库中的价值,并做出更为集思广益的业务决策这些新的能力列举如下分组和全局索引的优化器1AMP对简短的战术需求仅使用所需并行单元,因而可以容纳更多的数据相对于以前对每一个查询,所有的处理单元都参加并行处理;V2R5只是利用一局部单元做并Before After行处理因而系统可以在相同的时间里容纳更多的处理,提高了数据的吞吐量对稀疏索引和局部覆盖索引生成更高效的访问步骤211/12IndexedIndexColumnSparse IndexNOTNULLNulNulNul如果一个索引表中含有大量的空值,现在V2R5只对一局部非空数据做索引这样减少了索引的存放空间,同时加快了数据的处理速度更快的数据处理能力
4.1)解析器和任务分派器合二为一,消除了解析器与任务分派器之间的消息传递,缩短了查询和TPUMP等应用的进程,在相同的时间内允许可以处理更多的分析任务2)增强了“插入更新〃的能力3)合并更新(Merge Update),提高了大批量更新的执行效率提升的整体系统性能
5.通过安装新的Teradata数据库(V2R5),对已运行系统可以增加多达35%的最大有效存储容量,同时也节省将来的扩容投资,在不作任何优化和调试的情况下,升级到V2R5可以提升10%的系统性能/安装V2R5后,通过提供的专业效劳实现V2R5新特性的利用,可以提升更多的系统性能NCR公司在系统性能、可扩展能力、容易管理、专业技术效劳、成功案例等关键指标方面名列第一,并且最后总分第一其中Teradata RDBMS就是一个非常重要的产品之一其它一些专业评估机构如MetaGroup等,都对NCR的Teradata数据仓库解决方案给予了极高的评价
1.
1.2Teradata的根本结构Teradata采用了一种先进的虚拟处理器技术,称为VPROC(Virtual Processor)□VPROC有两种,即PE(Parsing Engine,分析引擎,负责与外部的接口、查询的优化、任务调度等)和AMP(AccessModule Processor,存取模块处理器,负责完成数据处理操作)其根本设想是如果将一个复杂的任务分解成多个简单的子任务,每个虚拟处理器执行一个或几个简单的子任务,最后将各虚拟处理器的执行结果汇总,那么总的执行时间就能大大缩短PE PEPEAMP AccessModu Ie Processor:存取模块处理器PE Parsi ngEngine:分解引擎图8-14Teradata内部并行处理机制Teradata同时支持SMP和MPP,在一个单节点的SMP系统中,其根本结构可以用下列图8-15来表存取模焕单通信界lAl/n AMP二1M XAMP1J----------pr---------------AMPP.X R1主机CAMP3AM一卜示单结点SMP图8-15Teradata在SMP结点内的逻辑结构对于MPP系统,每个节点中的结构和图21是相同的从图中可以看到,系统与外界的接口有以下两种网关所有支持TCP/IP协议的计算机可以通过网络与Teradata相联,其交易请求和处理结果都是通过网关进行交互的通道对于一些封闭主机系统Mainframe,Teradata提供了一种通道Channel直联的方式进行信息的交互,即与主机的通道直接联接,速度非常快交易请交通过网关或通道进入系统后,将传递给分析引擎PE ParsingEnginePE是由软件实现的,是一种虚拟处理器Virtual Processor,简称为VPROCPE主要由分析器Parser、优化器Optimizer和调度器Dispatcher组成,分析器分解接收到的SQL交易请求,进而由优化器产生最优的查询方案,由调度器控制查询的执行过程当多个用户同时访问系统时,Teradata能够通过PE在各节点间自动平衡负载,不需要数据库管理员DBA或者系统管理员的干预经PE处理的交易请求通过一个高速的信息传递层传至存取模块单元AMP AccessModuleProcessor AMP也是一种虚拟处理器,它控制所有与数据库有关的操作每个AMP只负载磁盘阵列o的一局部磁盘,数据的分配是利用HASH机制经过AMP均匀分布到各磁盘上的,因此,数据库中一个表的各条记录可能分布在不同的磁盘上这个过程完全自动进行,而对一般商用OLTP DBMS来说,这个过程主要是由DBA控制的各个AMP并行处理,互不相关,交易处理结果在信息传递层汇总后,直接返回给应用程序,不需要在某个结点进行进一步的处理,因此不存在单个结点的瓶颈问题每个节点中PE和AMP的数目可以由DBA进行配置从逻辑上来看,各PE和AMP具有自己独用的内存和CPU,是一种完全无共享结构Share NothingArchitectureo
1.
1.3Teradata的根本特点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最显著的特色之一是其强大的并行处理能力,这也是为什么说它是数据仓库专用引擎的主要原因之一其实现方式被称为多维并行处理机制,简单描述如下:查询并行(并行):这种并行处理是基于上面介绍的HASHING数据分配机制实现的每个AMPQue”都是一个VPROC,各自独立负责一局部数据的处理,相互之间没有关系,每个节点一般配置4至16个这样的VPROCo所有关系运算如表的搜索、索引检索、投影、选择、联接、聚集、排序等都是由各个VPR0C并行进行的步内并行(并行):一个SQL查询进入系统后,首先由优化器进行优化处理,分解Within-a-Step成一些小的步骤(Step),然后再分发给各VPR0C进行处理一个步骤可能非常简单,如“搜索一个表并返回结果〃,也可能非常复杂,如“按照某条件搜索两个表,然后联接,结果投影到某几个列,对它们加和(SUM)后返回结果〃象这种复杂查询将处理多个关系运算,每个关系运算在一个VPR0C内将启动多个进程来实现并行处理,称为步内并行多步并行(并行):上面说过,一个SQL被分解成多个小的步骤,这些步骤的执行将Multi-Step同时进行,称为多步并行优化器分解一个SQL查询请求的原则是尽可能使各步独立在目前所有的DBMS产品中,只有Teradata实现了多步并行下列图8-16以一个复杂查询的实例形象地说明了Teradata的多维并行处理机制图8-16Teradata内部并行处理机制说明这里假设系统配置有4个虚拟处理器(VPR0C),某个复杂查询被优化器分解成了7个步骤,图中SUPPLIERS、PARTS、PARTSUPP等为数据库中表的名字在每个步骤执行时,4个VPR0C同时处理与各自相关的数据块,例如搜索SUPPLIERS表(步骤
1.1),该表的记录是通过HASH算法均匀分5/12布在四个VPROC各自负责的磁盘中的,搜索时4个VPROC将同时进行,把相关的记录搜索出来,这就是所谓的查询并行;步骤
1.1和
1.
2、
2.1和
2.2也是同时执行的,这是所谓的多步并行;步骤
2.2(或步骤
1.2)中包含有三个操作,它们借助于一种管线(Pipeline)的机制实现了步内的并行处理除了上面描述的多维并行处理机制外,Teradata还作了进一步的优化和扩展,使得处理复杂查询时响应速度进一步加快举例来说,在多用户环境下,一个部门中许多用户的查询常常是大同小异的,经过优化器分解后,它们具有一些相同的步骤,由于每个步骤的执行结果会在一个系统缓冲区中暂存,相同的步骤往往只需要执行一次即可从而大大减少了磁盘I/O,提高了响应速度我们知道,对于OLTP系统来说,由于其查询相对简单,依靠建立适当的索引就能保证查询的速度,从而对RDBMS并行处理的能力要求不高但对于数据仓库来说,它主要提供的是OLAP应用,许多业务问题相当复杂,如果依靠索引来提高查询速度,将存在两方面的问题一是索引过多会占用太多的磁盘空间,增加系统的复杂性和管理本钱许多OLTP RDBMS用于数据仓库时,其磁盘使用率(DiskRatio,指数据库大小与真正的用户数据的比例)在5以上,有时甚至高达10,原因就在于此而基于Teradata建立的数据仓库,磁盘使用率一般在
1.5至3之间二是建立一个索引意味着事先定义好一些与之相关的问题,当提出其它问题时常常需要建立另外的索引也就是说,索引只能解决那些预先定义好的问题,如一些业务报表等而数据仓库除了要产生大量的业务报表外,另一个主要的应用就是答复那些不能预知的、动态的业务查询,我们称这种动态查询为Ad-hoc查询你无法想象当管理人员提出一个问题时,DBA答复说“对不起,我没想到你会提这个问题,请稍等一些,我建个索引就可以了〃因此,RDBMS具有强大的并行处理能力是数据仓库应用成功与否的关键Teradata从诞生之日开始,就是专门针对决策支持应用而设计的,它的专长不在于OLTP,而在于数据的综合分析和处理,其内部的并行处理机制被设计得十分完善目前,NCR公司已经在全世界为各行各业的用户成功地实施了1000多个由Teradata驱动的数据仓库解决方案,例如在通信行业有美国ATT无线通信公司、美国SBC通信公司、澳大利亚Vodafone电信公司、台湾中华电信、台湾远传电信等这样世界顶级的通信公司等,其中数据库容量在1TB以上的大型数据仓库就有300多个,NCR公司也因此成为无可争议的全球数据仓库的领导者
1.
1.
3.3线性可扩展能力一般来说,当数据仓库投产以后,随着应用的增加,其数据量也增长得非常快,因此,数据仓库系统对扩展性的要求很高可扩展包含两方面的含义,即硬件平台的可扩展和软件平台的可扩展,两者必须相互配合,相辅相成,任何一方存在瓶颈都会影响整个系统的扩充能力Teradata的操作系统是Microsoft WindowsNT/2000或者是NCR UNIX,如果使用Windows,则可用使用任何支持Windows的效劳器,如果使用NCR UNIX,则只能使用NCR的NCR系列MPP效劳器之所以存在这种限制的主要原因就在于扩展能力上,因为目前NCR的NCR MPP效劳器是业界扩展能力最强的计算机系统,它配合Teradata,形成了扩展能力最强、并行处理能力最正确的数据仓库基础平台考虑一个系统的线性可扩展能力,可以从以下三个方面来进行评估■数据量增长时的线性度当用户数据量成倍增加时,对于同一个系统指硬件配置不变,响应时间是按比例线性增加的;■硬件平台的线性度对于同一个查询,当硬件平台的配置增加一倍时,响应时间应减少一半;■并发用户增加时的线性对于同一个系统,当并发用户的数目增加时,响应时间也按比例线性增加对基于Teradata实施的数据仓库系统的扩充是很容易的,可以采用现场升级Field Upgrade方式下列图举例说明了将一个四节点的系统扩充到六节点的情况,首先将新增加的两个结点通过BYNET与原系统联接,然后运行Teradata提供的一个名叫REC0NFIG的工具,它将自动把原系统磁盘阵列中1/3的数据按照HASH算法均匀地分布到新节点所控制的磁盘中这个过程完全自动进行,不需要DBA过多地干预这个特性也是为什么说由Teradata组成的数据仓库系统比较容易管理的原因之一BYNET BYNET转移的数据至…这里1/3图8T7Teradata线性扩展说明
1.
1.
3.4易于管理从前面的描述我们已经看到,由于Teradata中许多工作如数据分配、负载管理、查询优化与调整、工作管理与自由空间的管理等都是自动进行的,没有数据库重组,可以进行系统的在线升级,等等这些都说明Teradata DBA的工作相比照较容易,因此对同样数据量的系统,Teradata所需DBA的人数较少,系统的运行费用较低下表是Teradata和一些传统的OLTP RDBMS在各种数据库管理任务上的简单比较数据库管理任务一些商用OLTP RDBMSTeradata逻辑数据建模高高物理数据建模高低数据分块定义高低数据布局定义自动[J自由空间管理高低数据平衡控制高无数据重组高无索引重组高无工作空间管理高自动查询调整高自动负载管理高自动变换管理高低由于DBA的减少,运行费用将大大降低,使得系统的整体拥有本钱大大降低
1.
1.
3.5数据库内含丰富的OLAP功能Teradata是专为数据仓库设计的,主要用来进行数据的综合分析和处理,因此在开发时嵌入了丰富的OLAP功能,主要包括排序RANK、累计和CSUM、移动平均MAVG、移动和MSUM、移动差分MDIFF,采样SAMPLE,分位QUANTILE、限定QUALIFY等这些函数可以和标准的SQL语句一起使用,而且所有这些函数都是在内部以并行方式来工作,速度非常快在目前众多的数据库系统中,只有TeradataTeradata提供了这种由数据库本身完成的OLAP分析功能这些函数在许多前端工具(包括Microsoft Excel)中都能提供,但最大的问题在于前端工具能够操作的数据量有限,而且速度不快如果要基于大量的数据完成上述OLAP分析,则只能靠数据库本身能完成,然后将结果返回给前端工具加以展现Teradata提供的这些OLAP扩展功能更进一步确定了它在数据仓库引擎方面的领导地位Teradata V2R
5.0是NCR公司于2002年12月推出的最新版本的Teradata数据库,标志着NCR在推动实时数据仓库Active DataWarehousing上迈出了关键的一步其主要性能改良使得客户在数据仓库应用中能更好地解决针对少量数据的战术性数据操作和针对大量数据的战略性数据挖掘的平衡,使得数据仓库系统更易于使用,更易于管理为了能对Teradata V2R5有更多的了解,在此将这一新版本的主要特性做一个概要性介绍分区主索引解决大数据量和小数据量操作的矛盾
1.PPL在V2R5中,引进了分区主索引的概念PPI,它是一种新的表的结构,运用这种优化了物理表设计使大量的条件约束查询变得方便和快速,防止了对一定范围的数据查询必需做全表查询所带来的系统资源的消耗在以前的版本中,采用如下的机制Rows orderedby RH。
个人认证
优秀文档
获得点赞 0