rel="File-List" href="file:///C:%5CDOCUME%7E1%5CZHANGD%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">
Teradata 数据库技术概略之四 —— 数据分布机制(3) Hash Map
从前面文章的介绍中我们知道, Teradata根据要存储的每条记录的PI值按照某种哈希算法生成一个行哈希值,生成的这个行哈希值的前16位或20位代表了这个行哈希值在哈希表中的哈希桶的编号,而这个哈希桶号则决定了这条记录具体会被分布到哪个AMP上,那么,Teradata是如何根据哈希桶号就知道把数据分布到对应的AMP上的呢?这就要通过本篇所要讨论的Hash Map(至于Hash Map,我一直也找不到合适的中文译法,称为“哈希地图”或者“哈希图”都有那么点意思,但我感觉都不太好,所以在后面的介绍中,我就都直接使用Hash Map了)。
我们可以把Hash Map理解成一种机制,它最终使得Teradata把某个数据记录分布到某个AMP上。在逻辑上,可以认为Hash Map是一个二维表,表中总共包含了65536或者1048576个单元格,每个单元格中记录了一个哈希桶号,而这个哈希桶号唯一对应了Teradata系统中的一个AMP,整个二维表中,会有多个哈希桶号对应到一个AMP上。
根据上面的描述可以得出这样的结论:(1)对于一个给定的Teradata系统,Hash Map的内容是确定的;(2)对于多个不同的Teradata系统,如果它们使用相同的哈希桶数(65536或者1048576)&#x