您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 数据仓库专用引擎TeradataRDBMS
此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载数据仓库专用引擎-TeradataRDBMS对于国内数据库人士来说,Teradata也许还不象DB2、Oracle那么熟悉。但在国外,由于它驱动着世界上几乎一半的数据仓库,并且世界上最大的几十个数据仓库均采用它作为核心引擎,因此,Teradata几乎成了数据仓库引擎的代名词。对国内一些用户来说,一个自然的问题是:Teradata是什么?最简单的回答就是:它是一个关系数据库管理系统。既然如此,为什么要用Teradata而不使用那些传统的商用数据库系统比如Oracel来建立数据仓库呢?我们知道,商用数据库基本上是针对OLTP应用而开发出来的,由于数据仓库有其固有的特点,这些传统的商用数据库不一定适合来驱动数据仓库应用,因为每种产品都有其强项和弱项,不可能面面俱到。而Teradata则是专门用来处理大量数据、针对决策支持应用而设计出来的,它具有很强的并行处理能力和扩展能力。下面我们将从Teradata的发展过程开始来介绍它的基本特点,从这些特点我们可以理解为什么说它是数据仓库的专用引擎。1.1.1Teradata简介Teradata是专门针对决策支持应用而设计的,早在1983年就推出了世界上第一个基于海量并行处理技术(MPP)的商用系统。长期以来,NCR公司投入了大量的人力、财力,对Teradata作了许多增强和优化,使得其更适合于进行海量数据的综合分析和处理。Teradata从早期基于硬件的封闭系统发展成运行于UNIX环境、基于虚拟处理器(VPROC)技术的关系型数据库管理系统。特别值得强调的是,著名的评估机构GartnerGroup于1994年将Teradata评为“商用并行处理的领导者”,1996年进一步指出,“只有NCR的Teradata证明了其可扩展性”。我们知道,对于一个实际应用的数据仓库而言,并行处理能力和可扩展性是至关重要的两大因素,而Teradata正是通过其大量的实际应用而获此殊荣的。此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载在数据库专业杂志“数据库编程与设计”(DatabaseProgramming&Design)每年的评选数据库十二大产品(DatabaseDozen)的活动中,Teradata已经连续第7年入选。在1999年的评选中,该杂志认为,“Teradata代表了数据库技术的发展方向”。2000年初,GartnerGroup发表了著名的ASEM(ApplicationServerEnterpriseModel)评估报告,分别针对OLTP和数据仓库两个应用领域对目前市场上各大供应商进行了综合评估,评估指标非常全面,涵盖了产品特点、专业技术服务能力以及成功应用案例等各个方面。在数据仓库领域,NCR公司在系统性能、可扩展能力、容易管理、专业技术服务、成功案例等关键指标方面名列第一,并且最后总分第一。其中TeradataRDBMS就是一个非常重要的产品之一。其它一些专业评估机构如MetaGroup等,都对NCR的Teradata数据仓库解决方案给予了极高的评价。1.1.2Teradata的基本结构Teradata采用了一种先进的虚拟处理器技术,称为VPROC(VirtualProcessor)。VPROC有两种,即PE(ParsingEngine,分析引擎,负责与外部的接口、查询的优化、任务调度等)和AMP(AccessModuleProcessor,存取模块处理器,负责完成数据处理操作)。其基本设想是:如果将一个复杂的任务分解成多个简单的子任务,每个虚拟处理器执行一个或几个简单的子任务,最后将各虚拟处理器的执行结果汇总,那么总的执行时间就能大大缩短。此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载SessionASessionBTask1Task2Task3SessionCSessionDSessionESessionFTask7Task8Task9Task4Task5Task6Task10Task11Task12PEPEPEAMP1AMP4AMP3AMP2信息传递层(BYNET)AMP(AccessModuleProcessor):存取模块处理器PE(ParsingEngine):分解引擎图8-14Teradata内部并行处理机制Teradata同时支持SMP和MPP,在一个单节点的SMP系统中,其基本结构可以用下图8-15来表示:图8-15Teradata在SMP结点内的逻辑结构对于MPP系统,每个节点中的结构和图21是相同的。从图中可以看到,系统与外界的接口有以下两种:网关:所有支持TCP/IP协议的计算机可以通过网络与Teradata相联,其此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载交易请求和处理结果都是通过网关进行交互的。通道:对于一些封闭主机系统(Mainframe),Teradata提供了一种通道(Channel)直联的方式进行信息的交互,即与主机的通道直接联接,速度非常快。交易请交通过网关或通道进入系统后,将传递给分析引擎PE(ParsingEngine)。PE是由软件实现的,是一种虚拟处理器(VirtualProcessor),简称为VPROC。PE主要由分析器(Parser)、优化器(Optimizer)和调度器(Dispatcher)组成,分析器分解接收到的SQL交易请求,进而由优化器产生最优的查询方案,由调度器控制查询的执行过程。当多个用户同时访问系统时,Teradata能够通过PE在各节点间自动平衡负载,不需要数据库管理员DBA或者系统管理员的干预。经PE处理的交易请求通过一个高速的信息传递层传至存取模块单元AMP(AccessModuleProcessor)。AMP也是一种虚拟处理器,它控制所有与数据库有关的操作。每个AMP只负载磁盘阵列的一部分磁盘,数据的分配是利用HASH机制经过AMP均匀分布到各磁盘上的,因此,数据库中一个表的各条记录可能分布在不同的磁盘上。这个过程完全自动进行,而对一般商用OLTPDBMS来说,这个过程主要是由DBA控制的。各个AMP并行处理,互不相关,交易处理结果在信息传递层汇总后,直接返回给应用程序,不需要在某个结点进行进一步的处理,因此不存在单个结点的瓶颈问题。每个节点中PE和AMP的数目可以由DBA进行配置。从逻辑上来看,各PE和AMP具有自已独用的内存和CPU,是一种完全无共享结构(ShareNothingArchitecture)。1.1.3Teradata的基本特点Teradata的各项特点可以从以下几个方面来进行概括1.1.3.1数据自动分配Teradata中只有一种基于HASH算法的数据分配机制,当要插入一条记录时,根据主索引计算出相应的AMP,该条记录即通过此AMP存到其对应的磁盘此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载上。由于主索引值的不同,一个表的各条记录将通过各AMP均匀地分布到各个磁盘上。分配过程完全自动进行,不需要DBA干预,这一点和其它OLTPDBMS有很大的区别。Teradata的HASHING算法经过长期的发展,已经十分完善。它采用了一个类似矩阵的HASHMAP,将计算出来的HASH值通过此矩阵的映射与AMP进行联系。这样,当重新配置AMP数时,只需要变动HASHMAP,速度非常快。对于OLTP系统而言,其查询的特点是预先知道要回答什么样的问题,因此,DBA会根据业务问题的特点把数据按照相应的规律进行分配,例如把数据按照时间的不同分配到不同的硬盘上。这种由DBA手工进行的数据分配机制对OLTP系统而言是有意义的,也确实能提高系统性能。但对数据仓库系统来说,其查询往往比较复杂而且具有不确定性,不同的业务部门可能会提出各种不同的问题,如果再按照一种规律进行数据的分配,则有可能对某些问题系统的响应速度很快,而对另外一些问题的反应则很慢。在Teradata数据库中,通过选择合适的主索引就可以保证数据在各磁盘上的自动均匀分配,使得其并行处理性能得以充分的发挥,特别适合于数据仓库环境下各种不确定的、动态的业务问题。另一方面,所有记录的插入、更新都按同样的HASHING算法进行,使得各磁盘上的数据总是混合存储而且是均衡的,不存在“有序”或者“无序”的概念,因而也就不存在数据库的重组问题(Reorganization)。对于传统的OLTPRDBMS而言,投产运行一段时间后系统性能常常因某种原因(如不断追加记录后造成数据存储不平衡)下降,这时就要考虑对数据库的重组。这是一项非常耗时而且需要经验丰富DBA参与的工作。在Teradata中,由于不存在数据库重组这类的工作,使得其管理十分简单。1.1.3.2强大的并行处理能力和复杂查询处理能力Teradata最显著的特色之一是其强大的并行处理能力,这也是为什么说它是数据仓库专用引擎的主要原因之一。其实现方式被称为多维并行处理机制,简单描述如下:查询并行(Query并行):这种并行处理是基于上面介绍的HASHING数据分配机制实现的。每个AMP都是一个VPROC,各自独立负责一部分数据的处此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载理,相互之间没有关系,每个节点一般配置4至16个这样的VPROC。所有关系运算如表的搜索、索引检索、投影、选择、联接、聚集、排序等都是由各个VPROC并行进行的。步内并行(Within-a-Step并行):一个SQL查询进入系统后,首先由优化器进行优化处理,分解成一些小的步骤(Step),然后再分发给各VPROC进行处理。一个步骤可能非常简单,如“搜索一个表并返回结果”,也可能非常复杂,如“按照某条件搜索两个表,然后联接,结果投影到某几个列,对它们加和(SUM)后返回结果”。象这种复杂查询将处理多个关系运算,每个关系运算在一个VPROC内将启动多个进程来实现并行处理,称为步内并行。多步并行(Multi-Step并行):上面说过,一个SQL被分解成多个小的步骤,这些步骤的执行将同时进行,称为多步并行。优化器分解一个SQL查询请求的原则是尽可能使各步独立。在目前所有的DBMS产品中,只有Teradata实现了多步并行。下图8-16以一个复杂查询的实例形象地说明了Teradata的多维并行处理机制。Multi-Step并行Within-A-Step并行完成三个操作1.搜索LineItem2.搜索Orders3.联接Lineitem&OrdersQuery并行4个VPROC同时处理与各自相关的数据SUM操作文件匹配搜索SUPPLIERS联接PARTS&PARTSUPPSQLSteps5432.12.21.11.2联接LINEITEM&ORDERS返回最后结果文件匹配图8-16Teradata内部并行处理机制说明这里假设系统配置有4个虚拟处理器(VPROC),某个复杂查询被优化器分此资料来自www.cnshu.cn东莞台商信息网,大量的管理资料下载解成了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还作了进一步的优化和扩展,使得处理复杂查询时响应速度进一步加快。举例来说,在多用户环境下,一个部门中许多用户的查询常常是大同小异的,经过优化器分解后,它们具有一些相同的步骤,由于每个步骤的执行结果会在一个系统缓冲区中暂存,相同的步骤往往只需要执行一次即可。从而大大减少了磁
本文标题:数据仓库专用引擎TeradataRDBMS
链接地址:https://www.777doc.com/doc-27680 .html