Teradata总体概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图 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
理,相互之间没有关系,每个节点一般配置 4 至 16 个这样的 VPROC。所有关 系运算如表的搜索、索引检索、投影、选择、联接、聚集、排序等都是由各个 ithin-a-Step 并行):一个 SQL 查询进入系统后,首先由优化
器进行优化处理,分解成一些小的步骤(Step),然后再分发给各 VPROC 进行 处理。一个步骤可能非常简单,如“搜索一个表并返回结果”,也可能非常复杂, 如“按照某条件搜索两个表, 然后联接, 结果投影到某几个列, 对它们加和(SUM) 后返回结果 ” 。象这种复杂查询将处理多个关系运算,每个关系运算在一个 VPROC 内将启动多个进程来实现并行处理,称为步内并行。
图 8-14 Teradata 内部并行处理机制 Teradata 同时支持 SMP 和 MPP,在一个单节点的 SMP 系统中,其基本结 构可以用下图 8-15 来表示:
图 8-15 Teradata 在 SMP 结点内的逻辑结构 对于 MPP 系统,每个节点中的结构和图 21 是相同的。 从图中可以看到,系统与外界的接口有以下两种: 网关:所有支持 TCP/IP 协议的计算机可以通过网络与 Teradata 相联,其
目前ncr公司已经在全世界为各行各业的用户成功地实施了1000多个由teradat驱动的数据仓库解决方案例如在通信行业有美国att无线通信公司美国sbc通信公司澳大利亚vodafone电信公司台湾中华电信台湾远传电信等这样世界顶级的通信公司等其中数据库容量在1tb以上的大型数据仓库就有300多个ncr公司也因此成为无可争议的全球数据仓库的领1133线性可扩展能力一般来说当数据仓库投产以后随着应用的增加其数据量也增长得非常快因此数据仓库系统对扩展性的要求很高
数据仓库专用引擎-Teradata RDBMS
对于国内数据库人士来说,Teradata 也许还不象 DB2、Oracle 那么熟悉。 但在国外,由于它驱动着世界上几乎一半的数据仓库,并且世界上最大的几十个 数据仓库均采用它作为核心引擎,因此,Teradata 几乎成了数据仓库引擎的代 名词。 对国内一些用户来说,一个自然的问题是:Teradata 是什么?最简单的回 答就是:它是一个关系数据库管理系统。既然如此,为什么要用 Teradata 而不 使用那些传统的商用数据库系统比如 Oracel 来建立数据仓库呢?我们知道,商 用数据库基本上是针对 OLTP 应用而开发出来的,由于数据仓库有其固有的特 点,这些传统的商用数据库不一定适合来驱动数据仓库应用,因为每种产品都有 其强项和弱项,不可能面面俱到。而 Teradata 则是专门用来处理大量数据、针 对决策支持应用而设计出来的,它具有很强的并行处理能力和扩展能力。下面我 们将从 Teradata 的发展过程开始来介绍它的基本特点, 从这些特点我们可以理 解为什么说它是数据仓库的专用引擎。
1.1.3.2 强大的并行处理能力和复杂查询处理能力
Teradata 最显著的特色之一是其强大的并行处理能力,这也是为什么说它 是数据仓库专用引擎的主要原因之一。其实现方式被称为多维并行处理机制,简 单描述如下:
查询并行(Query 并行):这种并行处理是基于上面介绍的 HASHING 数据
分配机制实现的。每个 AMP 都是一个 VPROC,各自独立负责一部分数据的处
5
返回最 后�果
Query 并行 4 个V 处理与各自相关 的数据
4
SQL Steps
SUM
操作
3
文件匹配
2.1
文件匹配
2.2
联接 LINEITEM & ORDERS
1.1
搜索 SUPPLIERS
1.2
联接 PARTS & PARTSUPP
Multi-Step
并行
Within-A-Step 并行 完成三个操作 1. 搜 索 LineIt 2. 搜 索 Orders 3. 联
交易请求和处理结果都是通过网关进行交互的。 通道:对于一些封闭主机系统 (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.1 Teradata 简介
Teradata 是专门针对决策支持应用而设计的,早在 1983 年就推出了 世界上第一个基于海量并行处理技术(MPP)的商用系统。 长期以来,NCR 公司投入了大量的人力、财力,对 Teradata 作了许多增强 和优化,使得其更适合于进行海量数据的综合分析和处理。Teradata 从早期基 于硬件的封闭系统发展成运行于 UNIX 环境、基于虚拟处理器(VPROC)技术的 关系型数据库管理系统。 特别值得强调的是,著名的评估机构 Gartner Group 于 1994 年将 Teradata 评为“商用并行处理的领导者”,1996 年进一步指出,“只有 NCR 的 Teradata 证明了其可扩展性”。我们知道,对于一个实际应用的数据仓库而言, 并行处理能力和可扩展性是至关重要的两大因素, 而 Teradata 正是通过其大量 的实际应用而获此殊荣的。
1.1.2 Teradata 的基本结构
Teradata 采用了一种先进的虚拟处理器技术,称为 VPROC (Virtual Processor)。VPROC 有两种,即 PE(Parsing Engine,分析引擎,负责与外 部的接口、查询的优化、任务调度等)和 AMP (Access Module Processor, 存取模块处理器,负责完成数据处理操作)。其基本设想是:如果将一个复杂的 任务分解成多个简单的子任务,每个虚拟处理器执行一个或几个简单的子任务, 最后将各虚拟处理器的执行结果汇总,那么总的执行时间就能大大缩短。
多步并行(Multi-Step 并行): 上面说过, 一个 SQL 被分解成多个小的步骤,
这些步骤的执行将同时进行,称为多步并行。优化器分解一个 SQL 查询请求的 原则是尽可能使各步独立。在目前所有的 DBMS 产品中,只有 Teradata 实现 了多步并行。 下图 8-16 以一个复杂查询的实例形象地说明了 Teradata 的多维并行处理 机制。
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 中,由于不存在数据库重组这类的工作,使得其管理十分简单。
在数据库专业杂志“数据库编程与设计” (Database Programming & Design) 每 年 的 评 选 数 据 库 十 二 大 产 品 (Database Dozen) 的 活 动 中 , Teradata 已经连续第 7 年入选。 在 1999 年的评选中, 该杂志认为, “Teradata 代表了数据库技术的发展方向”。 2000 年初,Gartner Group 发表了著名的 ASEM(Application Server Enterprise Model)评估报告,分别针对 OLTP 和数据仓库两个应用领域对目前 市场上各大供应商进行了综合评估,评估指标非常全面,涵盖了产品特点、专业 技术服务能力以及成功应用案例等各个方面。在数据仓库领域,NCR 公司在系 统性能、可扩展能力、容易管理、专业技术服务、成功案例等关键指标方面名列 第一,并且最后总分第一。其中 Teradata RDBMS 就是一个非常重要的产品之 一。其它一些专业评估机构如 MetaGroup 等,都对 NCR 的 Teradata 数据仓 库解决方案给予了极高的评价。
相关文档
最新文档