数据仓库专用引擎分析

上传人:博****1 文档编号:511535716 上传时间:2023-10-04 格式:DOCX 页数:14 大小:95.40KB
返回 下载 相关 举报
数据仓库专用引擎分析_第1页
第1页 / 共14页
数据仓库专用引擎分析_第2页
第2页 / 共14页
数据仓库专用引擎分析_第3页
第3页 / 共14页
数据仓库专用引擎分析_第4页
第4页 / 共14页
数据仓库专用引擎分析_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《数据仓库专用引擎分析》由会员分享,可在线阅读,更多相关《数据仓库专用引擎分析(14页珍藏版)》请在金锄头文库上搜索。

1、数据仓库专用引擎-Teradata RDBMS对于国内数据库人士来说,Teradata也许还不象DB2、Oracle那么熟悉。但在国外,由于它驱动着世界上几乎一半的数据仓库,并且世界上最大的几十个数据仓库均采用它作为核心引擎,因此,Teradata几乎成了数据仓库引擎的代名词。对国内一些用户来说,一个自然的问题是:Teradata是什么?最简单的回答就是:它是一个关系数据库管理系统。既然如此,为什么要用Teradata而不使用那些传统的商用数据库系统比如Oracel来建立数据仓库呢?我们知道,商用数据库基本上是针对OLTP应用而开发出来的,由于数据仓库有其固有的特点,这些传统的商用数据库不一定

2、适合来驱动数据仓库应用,因为每种产品都有其强项和弱项,不可能面面俱到。而Teradata则是专门用来处理大量数据、针对决策支持应用而设计出来的,它具有很强的并行处理能力和扩展能力。下面我们将从Teradata的发展过程开始来介绍它的基本特点,从这些特点我们可以理解为什么说它是数据仓库的专用引擎。1.1.1 Teradata简介Teradata是专门针对决策支持应用而设计的,早在1983年就推出了世界上第一个基于海量并行处理技术(MPP)的商用系统。长期以来,NCR公司投入了大量的人力、财力,对Teradata作了许多增强和优化,使得其更适合于进行海量数据的综合分析和处理。Teradata从早期

3、基于硬件的封闭系统发展成运行于UNIX环境、基于虚拟处理器(VPROC)技术的关系型数据库管理系统。特别值得强调的是,著名的评估机构Gartner Group于1994年将Teradata评为“商用并行处理的领导者”,1996年进一步指出,“只有NCR的Teradata证明了其可扩展性”。我们知道,对于一个实际应用的数据仓库而言,并行处理能力和可扩展性是至关重要的两大因素,而Teradata正是通过其大量的实际应用而获此殊荣的。在数据库专业杂志“数据库编程与设计” (Database Programming & Design)每年的评选数据库十二大产品(Database Dozen)的活动中,

4、Teradata已经连续第7年入选。在1999年的评选中,该杂志认为,“Teradata代表了数据库技术的发展方向”。2000年初,Gartner Group发表了著名的ASEM(Application Server Enterprise Model)评估报告,分别针对OLTP和数据仓库两个应用领域对目前市场上各大供应商进行了综合评估,评估指标非常全面,涵盖了产品特点、专业技术服务能力以及成功应用案例等各个方面。在数据仓库领域,NCR公司在系统性能、可扩展能力、容易管理、专业技术服务、成功案例等关键指标方面名列第一,并且最后总分第一。其中Teradata RDBMS就是一个非常重要的产品之一。

5、其它一些专业评估机构如MetaGroup等,都对NCR的Teradata数据仓库解决方案给予了极高的评价。1.1.2 Teradata的基本结构Teradata采用了一种先进的虚拟处理器技术,称为VPROC (Virtual Processor)。VPROC有两种,即PE(Parsing Engine,分析引擎,负责与外部的接口、查询的优化、任务调度等)和AMP (Access Module Processor,存取模块处理器,负责完成数据处理操作)。其基本设想是:如果将一个复杂的任务分解成多个简单的子任务,每个虚拟处理器执行一个或几个简单的子任务,最后将各虚拟处理器的执行结果汇总,那么总的执

6、行时间就能大大缩短。图8-14 Teradata内部并行处理机制Teradata同时支持SMP和MPP,在一个单节点的SMP系统中,其基本结构可以用下图8-15来表示:图8-15 Teradata在SMP结点内的逻辑结构对于MPP系统,每个节点中的结构和图21是相同的。从图中可以看到,系统与外界的接口有以下两种:网关:所有支持TCP/IP协议的计算机可以通过网络与Teradata相联,其交易请求和处理结果都是通过网关进行交互的。通道:对于一些封闭主机系统(Mainframe),Teradata提供了一种通道(Channel)直联的方式进行信息的交互,即与主机的通道直接联接,速度非常快。交易请交

7、通过网关或通道进入系统后,将传递给分析引擎PE (Parsing Engine)。PE是由软件实现的,是一种虚拟处理器(Virtual Processor),简称为VPROC。PE主要由分析器(Parser)、优化器(Optimizer)和调度器(Dispatcher)组成,分析器分解接收到的SQL交易请求,进而由优化器产生最优的查询方案,由调度器控制查询的执行过程。当多个用户同时访问系统时,Teradata能够通过PE在各节点间自动平衡负载,不需要数据库管理员DBA或者系统管理员的干预。经PE处理的交易请求通过一个高速的信息传递层传至存取模块单元AMP(Access Module Proce

8、ssor)。AMP也是一种虚拟处理器,它控制所有与数据库有关的操作。每个AMP只负载磁盘阵列的一部分磁盘,数据的分配是利用HASH机制经过AMP均匀分布到各磁盘上的,因此,数据库中一个表的各条记录可能分布在不同的磁盘上。这个过程完全自动进行,而对一般商用OLTP DBMS来说,这个过程主要是由DBA控制的。各个AMP并行处理,互不相关,交易处理结果在信息传递层汇总后,直接返回给应用程序,不需要在某个结点进行进一步的处理,因此不存在单个结点的瓶颈问题。每个节点中PE和AMP的数目可以由DBA进行配置。从逻辑上来看,各PE和AMP具有自已独用的内存和CPU,是一种完全无共享结构(Share Not

9、hing Architecture)。1.1.3 Teradata的基本特点Teradata的各项特点可以从以下几个方面来进行概括1.1.3.1 数据自动分配Teradata中只有一种基于HASH算法的数据分配机制,当要插入一条记录时,根据主索引计算出相应的AMP,该条记录即通过此AMP存到其对应的磁盘上。由于主索引值的不同,一个表的各条记录将通过各AMP均匀地分布到各个磁盘上。分配过程完全自动进行,不需要DBA干预,这一点和其它OLTP DBMS有很大的区别。Teradata的HASHING算法经过长期的发展,已经十分完善。它采用了一个类似矩阵的HASH MAP,将计算出来的HASH值通过此

10、矩阵的映射与AMP进行联系。这样,当重新配置AMP数时,只需要变动HASH MAP,速度非常快。对于OLTP系统而言,其查询的特点是预先知道要回答什么样的问题,因此,DBA会根据业务问题的特点把数据按照相应的规律进行分配,例如把数据按照时间的不同分配到不同的硬盘上。这种由DBA手工进行的数据分配机制对OLTP系统而言是有意义的,也确实能提高系统性能。但对数据仓库系统来说,其查询往往比较复杂而且具有不确定性,不同的业务部门可能会提出各种不同的问题,如果再按照一种规律进行数据的分配,则有可能对某些问题系统的响应速度很快,而对另外一些问题的反应则很慢。在Teradata数据库中,通过选择合适的主索引

11、就可以保证数据在各磁盘上的自动均匀分配,使得其并行处理性能得以充分的发挥,特别适合于数据仓库环境下各种不确定的、动态的业务问题。另一方面,所有记录的插入、更新都按同样的HASHING算法进行,使得各磁盘上的数据总是混合存储而且是均衡的,不存在“有序”或者“无序”的概念,因而也就不存在数据库的重组问题(Reorganization)。对于传统的OLTP RDBMS而言,投产运行一段时间后系统性能常常因某种原因(如不断追加记录后造成数据存储不平衡)下降,这时就要考虑对数据库的重组。这是一项非常耗时而且需要经验丰富DBA参与的工作。在Teradata中,由于不存在数据库重组这类的工作,使得其管理十分

12、简单。1.1.3.2 强大的并行处理能力和复杂查询处理能力Teradata最显著的特色之一是其强大的并行处理能力,这也是为什么说它是数据仓库专用引擎的主要原因之一。其实现方式被称为多维并行处理机制,简单描述如下:查询并行(Query并行):这种并行处理是基于上面介绍的HASHING数据分配机制实现的。每个AMP都是一个VPROC,各自独立负责一部分数据的处理,相互之间没有关系,每个节点一般配置4至16个这样的VPROC。所有关系运算如表的搜索、索引检索、投影、选择、联接、聚集、排序等都是由各个VPROC并行进行的。步内并行(Within-a-Step并行):一个SQL查询进入系统后,首先由优化

13、器进行优化处理,分解成一些小的步骤(Step),然后再分发给各VPROC进行处理。一个步骤可能非常简单,如“搜索一个表并返回结果”,也可能非常复杂,如“按照某条件搜索两个表,然后联接,结果投影到某几个列,对它们加和(SUM)后返回结果”。象这种复杂查询将处理多个关系运算,每个关系运算在一个VPROC内将启动多个进程来实现并行处理,称为步内并行。多步并行(Multi-Step并行):上面说过,一个SQL被分解成多个小的步骤,这些步骤的执行将同时进行,称为多步并行。优化器分解一个SQL查询请求的原则是尽可能使各步独立。在目前所有的DBMS产品中,只有Teradata实现了多步并行。下图8-16以一

14、个复杂查询的实例形象地说明了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

15、.2(或步骤1.2)中包含有三个操作,它们借助于一种管线(Pipeline)的机制实现了步内的并行处理。除了上面描述的多维并行处理机制外,Teradata还作了进一步的优化和扩展,使得处理复杂查询时响应速度进一步加快。举例来说,在多用户环境下,一个部门中许多用户的查询常常是大同小异的,经过优化器分解后,它们具有一些相同的步骤,由于每个步骤的执行结果会在一个系统缓冲区中暂存,相同的步骤往往只需要执行一次即可。从而大大减少了磁盘I/O,提高了响应速度。我们知道,对于OLTP系统来说,由于其查询相对简单,依靠建立适当的索引就能保证查询的速度,从而对RDBMS并行处理的能力要求不高。但对于数据仓库来说

16、,它主要提供的是OLAP应用,许多业务问题相当复杂,如果依靠索引来提高查询速度,将存在两方面的问题:一是索引过多会占用太多的磁盘空间,增加系统的复杂性和管理成本。许多OLTP RDBMS用于数据仓库时,其磁盘使用率(Disk Ratio,指数据库大小与真正的用户数据的比例)在5以上,有时甚至高达10,原因就在于此。而基于Teradata建立的数据仓库,磁盘使用率一般在1.5至3之间。二是建立一个索引意味着事先定义好一些与之相关的问题,当提出其它问题时常常需要建立另外的索引。也就是说,索引只能解决那些预先定义好的问题,如一些业务报表等。而数据仓库除了要产生大量的业务报表外,另一个主要的应用就是回答那些不能预知的、动态的业务查询,我们称这种动态查询为Ad-hoc查询。你无法想象当管理人员提出一个问题时,DBA回答说:“对不起,我没想到你会提这个问题,请稍等一些,我建个索引就可以了”。因此,RDBMS具有强大的并行处理能力是数据

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号