Teradata在整体上是按Shared Nothing 架构体系进行组织的,他的定位就是大型数据仓库系统,定位比较高,他的软硬件都是NCR自己的,其他的都不识别;所以一般的企业用不起,价格很贵。由于Teradata通常被用于OLAP应用,因此单机的Teradata系统很少见,即使是单机系统,Teradata也建议使用SMP结构以尽可能地提供更好的数据库性能,在后面的介绍中,都是按多机系统进行说明的。

根据Shared Nothing的组成结构特点,在物理布局上,Teradata系统主要包括三个部分:

1. 处理节点(Node)、

2. 用于节点间通信的内部高速互联(InterConnection)

3. 数据存储介质(通常是磁盘阵列)。

每个节点都是SMP(对称多处理器结构)结构的单机,节点的物理和逻辑结构如图1所示,多个节点一起构成一个MPP(海量并行处理器结构)系统,多个节点之间的内部高速互联是通过一种被称为BYNET的硬件来实现的,整个系统的组成如图1所示。

单个节点的硬件结构

Teradata系统中的每个节点在物理上都是一个SMP处理单元,事实上就是一台CPU或多核的计算机。节点硬件包括CPU、内存、用于安装操作系统和应用软件的本地磁盘、与外界交互的网卡及BYNET端口。节点的网卡根据具体的网络环境而不同,通常包括两种:

1. 一种是与IBM MainFrame连接的Channel Adapter

2. 另一种就是我们熟悉的局域网网卡。

通常情况下一个节点上只会使用一种网卡,但会有多块网卡,分别用于不同的连接和冗余。

单个节点的软件结构

在软件结构上,每个节点自下向上包括操作系统软件(OS)、Teradata并行数据库扩展(PDE)和相关应用程序,其中PDE的主要职责是管理和运行虚拟处理器,其中主要包括PE和AMPs。

(1)Teradata并行数据库扩展(PDE,Parallel Database Extensions),是直接架构在操作系统之上的一个接口层,用于为Teradata提供并行环境,并保证这个并行环境的可运行性和健壮性。PDE的主要功能是执行虚拟处理器、进行Teradata并行任务调度、进行操作系统内核和Teradata数据库的运行时故障处理。

(2)虚拟处理器(VPROC,Virtual Processor),是一系列软件进程,这些进程驻留在一个节点上,依赖PDE环境运行,并接受PDE调度。可以把VPROC理解为一些Teradata的底层服务进程。虚拟处理器完成Teradata数据处理的主要工作,按照工作性质的不同,虚拟处理器主要包括两大类——解析引擎和存取模块处理器。

(3)解析引擎(PE,Parsing Engine),用于进行客户系统(通常是使用Teradata数据库的应用程序的SQL请求)和存取模块处理器之间的通讯和交互,主要的功能包括任务控制(Session Control),SQL语句的解析、优化、查询步骤的生成和分发,并行化预处理和返回查询结果。一个节点上通常有两个PE在工作。

(4)存取模块处理器(AMP,Access Module Processor),这是Teradata数据库的关键进程,用于处理所有与数据有关的文件系统的操作任务,是Teradata数据库Share Nothing架构的核心表现。通常情况下,一个节点上会有多个AMP在工作,每个AMP分别负责文件系统上不同的、固定的数据的存取操作。

(5)虚拟磁盘(VDisk,Virtual Disk),这是一个纯粹的逻辑概念,事实上不应该把它认为是软件结构的一部分。典型的Teradata MPP系统的数据存储都是以磁盘阵列(Disk Arrays)的形式实现的,在物理上是一个个存放于标准磁盘阵列柜中的磁盘阵列模块。Teradata系统中的每个AMP在处理数据存储时,会根据一种哈希算法把不同的数据均匀地分散存储到磁盘阵列中的不同的磁盘上(上海证券交易所的数据仓库就是teradata,每秒的io能达到2G,有1000多块磁盘,硬件昂贵。全表扫描一个几千万条的记录在几秒就完成了)。这样,在逻辑上我们就把磁盘阵列中不同磁盘上存储着的那些由同一个AMP负责存储和维护的数据合并在一起,就像它们在一个磁盘上一样,这就是VDisk的概念了。

(6)message passing layer 消息传递层,主要是对amp之间的通信。它负责处理Teradata数据库内部通讯,即所有的PEs和        AMPs的通讯都要经过MPL,PE分配给AMP的执行步骤通过MPL路由找到合适的AMP,处理完成后,相应消息再经 过MPL路由由AMP返回给相应的PE。MPL这种技术是Teradata并行的基础。

BYNET

在Teradata
MPP系统中,各个节点间的内部高速互联是通过BYNET实现的,我们可以认为它就是Teradata系统中那些松散耦合的节点之间互相联系的通讯总线,但事实上,它却远远没有这么简单。

BYNET是一组硬件和运行在这组硬件上的一些处理通讯任务的软件进程的组合体,用于节点之间的双向广播(bidirectional
broadcast)、多路传递(multicast)和点对点通信(point-to-point
communication),同时,BYNET还实现SQL查询过程中的合并功能(每个节点或AMP,均匀分布表中一部分数据,当查询的时候每个节点并行查询,结果汇总到某个节点反馈给查询者,提高查询速度。

Teradata架构的更多相关文章

  1. 数据库设计很棒的参考CDM-PDM-LDM-PowerDesigner

    此页面显示了涵盖主题领域的  50 个类别中的行业特定数据模型列表,用于创建企业数据模型. 以下是我们所有 1,700 多种数据模型的字母顺序列表 1. 广告 1. 顾客 1. 派对 1.   广告中 ...

  2. SMP、NUMA、MPP(Teradata)体系结构介绍

    从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP : Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA : Non-Uniform ...

  3. TeraData金融数据模型

    Teradata天睿公司(纽交所代码:TDC),是美国前十大上市软件公司之一.经过逾30 年的发展,Teradata天睿公司已经成为全球最大的专注于大数据分析.数据仓库和整合营销管理解决方案的供应商. ...

  4. 后Hadoop时代的大数据架构(转)

    原文:http://zhuanlan.zhihu.com/donglaoshi/19962491 作者: 董飞       提到大数据分析平台,不得不说Hadoop系统,Hadoop到现在也超过10年 ...

  5. 【转载】从 LinkedIn 的数据处理机制学习数据架构

    http://www.36dsj.com/archives/40584 译者:伯乐在线-塔塔 网址:http://blog.jobbole.com/69344/ LinkedIn是当今最流行的专业社交 ...

  6. 系统架构师JD

    #################################################################################################### ...

  7. 当ArcGIS10.2遇到Teradata

                                    随着计算机技术的不断发展,GIS技术也紧跟IT技术的热潮,从三维技术.到移动技术,从大数据技术到云计算技术,只要IT有的新技术,Esri ...

  8. 基于两种架构的ETL实现及ETL工具选型策略

    企业信息化建设过程中,业务系统各自为政.相互独立造成的"数据孤岛"现象尤为普遍,业务不集成.流程不互通.数据不共享--.这给企业进行数据的分析利用.报表开发等带来了巨大困难.在此情 ...

  9. 大数据 - Teradata学习体会

    引言 随着计算机系统在处理能力.存储能力等方面,特别是计算机软件技术的不断提高,使得信息处理技术得到飞速发展. 数据处理主要分为两大类:联机事物处理OLTP.联机分析处理OLAP.OLTP也就是传统的 ...

随机推荐

  1. iOS isa 浅析

    看见一到面试题讲述一下Objective-C中的isa?完全没听说过,打算小研究一下. 参考:http://blog.sina.com.cn/s/blog_7a2ffd5c01010nme.html ...

  2. Bean的实例化--构造器

    1,编写Bean对象 package com.songyan.ico; public class Bean1 { } 2,配置xml <?xml version="1.0" ...

  3. IntelliJ debug grails 无效的解决办法

    从Grails 2.2以后默认run-app命令将启动Grails应用程序在一个单独的Java虚拟机. 这就是所谓的分叉的Tomcat Grails中的执行. 这样的类路径Grails构建系统和应用程 ...

  4. iOS AudioSession详解 Category选择 听筒扬声器切换

    在你读这篇文章之前,如果你不嫌读英文太累,推荐阅读下苹果iOS Human Interface Guidelines中Sound这一章.   选择一个Category AVAudioSessionCa ...

  5. Bluetooth篇 开发实例之十一 官网的Bluetooth Chat sample的bug

    当没有匹配的设备和没有找到可用设备的时候. // If there are paired devices, add each one to the ArrayAdapter if (pairedDev ...

  6. Jenkins配置Java项目1(Java+Maven+Tomcat+SVN/Git)

    先收集几个网址,后续再自己动手过一遍 http://www.cnblogs.com/leefreeman/p/4211530.html http://www.cnblogs.com/sunzhench ...

  7. Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.

    在android上发布遇到 androidSDK无法找到的问题 http://www.jianshu.com/p/fe4c334ee9fe

  8. postman(一)批量执行接口测试用例

    postman(一)批量执行接口测试用例 学习了:https://blog.csdn.net/github_36032947/article/details/78611405 还可以把collecti ...

  9. 飘逸的python - __get__ vs __getattr__ vs __getattribute__以及属性的搜索策略

    差别: __getattribute__:是无条件被调用.对不论什么对象的属性訪问时,都会隐式的调用__getattribute__方法,比方调用t.__dict__,事实上运行了t.__getatt ...

  10. Elasticsearch教程(六) elasticsearch Client创建

    Elasticsearch  创建Client有几种方式. 首先在 Elasticsearch  的配置文件 elasticsearch.yml中.定义cluster.name.如下: cluster ...