开发手册 欢迎您!
软件开发者资料库

Teradata - 哈希算法

Teradata哈希算法 - 从简单和简单的步骤学习Teradata,从基本到高级概念,包括简介,安装,体系结构,关系概念,数据类型,表,数据操作,SELECT语句,逻辑和条件运算符,SET运算符,字符串处理,日期/时间函数,内置函数,聚合函数,CASE和COALESCE,主索引,连接,子查询,表类型,空间概念,二级索引,统计,压缩,解释,哈希算法,JOIN索引,视图,宏,存储过程,JOIN策略,分区主索引,OLAP功能,数据保护,用户管理,性能调整,FastLoad,MultiLoad,FastExport,BTEQ。

根据主索引值为特定AMP分配行. Teradata使用散列算法来确定哪个AMP获取行.

以下是散列算法的高级图.

哈希算法

以下是插入数据的步骤.

  • 客户端提交查询.

  • 解析器接收查询并将记录的PI值传递给散列算法.

  • 散列算法散列主索引值并返回一个32位数字,称为行哈希.

  • 行散列(前16位)的高阶位用于标识散列映射条目.哈希映射包含一个AMP#.哈希映射是一个包含特定AMP#的存储桶数组.

  • BYNET将数据发送到标识的AMP.

  • AMP使用32位Row哈希来查找其磁盘中的行.

  • 如果有任何记录具有相同的行哈希,然后它增加32位数的唯一性ID.对于新行散列,唯一性ID被指定为1,并且只要插入具有相同行散列的记录就会递增.

  • 行散列和唯一性ID的组合是称为行ID.

  • 行ID为磁盘中的每条记录添加前缀.

  • AMP中的每个表行按其行ID进行逻辑排序.

如何存储表

表按行ID(行哈希 + 唯一性ID)排序,然后存储在AMP中.行ID与每个数据行一起存储.

行哈希唯一性IDEmployeeNoFirstNameLastName
2A01 26110000 0001101MikeJames
2A01 26120000 0001104AlexStuart
2A01 26130000 0001102RobertWilliams
2A01 26140000 0001105RobertJames
2A01 26150000 0001103Peter保罗