Teradata数据库——你需要了解的基础知识

AMP (Access Module Processors)

TD里面最基础的核心组件之一,它是存储、计算TD表中每一行数据的基本单位。你会在很多地方看到它的身影。每一个AMP有自己的一块内存、有自己的一块计算资源和自己的一块磁盘空间。


AMP

一条SQL在TD中的执行过程

TD简单架构

用户输入一条SQL,传递到PE,PE给出一个执行计划(使用explain可以看到),将计划执行的任务通过BYNET传递到各个AMP中同步执行,AMP执行然后返回到PE中,PE汇总返回给用户。

TD索引

Single-AMP Retrieved是指TD可以快速的将数据定位在一个AMP中去获取,是一种非常快的执行计划。一瞬间就定位到数据所在的成千上万的AMP中的一个,然后马上取出返回。这速度你说快不快。

Unique Primary Index

唯一主键索引,和大部分的其他数据库的索引一样。当你设置了唯一主键索引的好处就是,你能够非常快速的定位你的数据,无论数据库中有多大的数据量。你在where条件中指定了唯一主键索引,然后TD就会把这些数据根据索引的字段均匀的Hash到所有的AMP上去。当你执行一条SQL时会达到,一秒、一行、一个AMP的效果。

  • 字段值不能重复
  • 数据均匀分配到各个AMP
  • single AMP Retrieve
None-Unique Primary Index

非唯一主键索引,它和唯一主键索引不同的点在于能够插入重复值。TD会根据字段值然后利用内部的一个数学公式Hash到各个AMP上去。你会发现不同的AMP上的数据量并不均匀分布。相同字段值的行会存在同一个AMP中,并且紧密的存放在一起。

  • 字段值可以重复
  • 数据分布不均,相同索引字段值的数据会分布在一个AMP中
  • single AMP Retrieve
Muti-Column Primary Index

多字段组合索引,假设设置了一个联合索引(A,B) 那么TD需要这两个条件同时存在的情况下索引才能生效,不存在部分索引生效的情况。TD会根据两个索引的组合一起Hash到特定的AMP中去取数据。

  • 也有Unique和None Unique两种类型索引
  • 必须全部字段都在where条件中使用时才能生效
  • single AMP Retrieve
No Primary Index

没有索引的表,但你进行数据查询时就会发生全表扫描的情况。这是不可避免的。那一般这样的表的设计是为了数据的暂存称为staging区域,然后你按照你的业务需求再插入到自己设计的真正的表里面去。

  • 全表扫描
  • 有特殊的设计作用,用于数据暂存
  • 在建表的时候需要显示的指定no Primary index 否则会自动创建默认的Primary index
  • 数据随机分布,但是TD会将数据很好的均匀的分布到各个AMP中去

share nothing environment

Teradata的硬件是一个大小为一个PC电脑那么大的主机,里面大概有40个AMP和4个PE,然后主机连接到磁盘区域。每一个AMP对应有一个自己的磁盘。对应的一块内存空间。并且它们之间互相不共享环境。

Share Nothing Environment

Teradata的物理节点架构

我们来梳理一下TD的组成层次结构,从最小的AMP开始。

一块内存空间+一些数据空间=一个AMP

一定数量的AMP+一套Linux操作系统+PDE(parallel database extension)+Gateway+Channel Driver=一个Node

SMP Node

一定数量的Node+一定数量的物理BYNET=一个cabinet

Node与Node之间的连接
唯一主索引的执行过程

当在where条件里面指定了被设置为Primary index的字段,那么当发生查询语句时。就会根据TD里面的数学公式Hash字段值到一个输出值上,根据输出值在HashMap中找到记录所在AMP,然后进行指定AMP查找对应的行数据。


Hashing Process
非唯一主索引的执行过程

跟上面的执行过程很类似,唯一不同点在于,rowID由两部分组成,一部分是RowHash的值,也就是和上面一样通过字段值被数学公式Hash得到的一个输出值。还有一部分就是一个非唯一值。假设有两个同样字段的不同行数据进来,那么会被定位到同一个AMP中。Hash值为3,那么第一个行数据的真实RowID为3,1 第二个为3,2。并且相同的RowHash的数据会被分组放在一起。


RowID

那实际上唯一主索引就是非唯一主索引的特殊情况,就是它的uniqueness Value一直是1.然后当进入一个AMP中去查找对应的RowHash值的位置的时候,它会采用非常高效率的简单算法,二分搜索。算法复杂度为log(N)快速定位到相应的RowHash的值。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容