Teradata - 哈希算法



根据主键值,一行数据被分配到特定的 AMP。Teradata 使用哈希算法来确定哪个 AMP 获取该行数据。

以下是关于哈希算法的高级图表。

Hashing Algorithm

以下是插入数据的步骤。

  • 客户端提交查询。

  • 解析器接收查询并将记录的主键值传递给哈希算法。

  • 哈希算法对主键值进行哈希运算并返回一个 32 位数字,称为行哈希值。

  • 行哈希值的高位比特(前 16 位)用于标识哈希映射条目。哈希映射包含一个 AMP 号。哈希映射是一个桶数组,包含特定的 AMP 号。

  • BYNET 将数据发送到已识别的 AMP。

  • AMP 使用 32 位行哈希值在其磁盘中定位该行。

  • 如果存在任何具有相同行哈希值的记录,则它会递增唯一性 ID(一个 32 位数字)。对于新的行哈希值,唯一性 ID 被赋值为 1,并在每次插入具有相同行哈希值的记录时递增。

  • 行哈希值和唯一性 ID 的组合称为行 ID。

  • 行 ID 作为前缀存储在磁盘中的每条记录之前。

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

表的存储方式

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

行哈希值 唯一性 ID 员工编号 名字 姓氏
2A01 2611 0000 0001 101 Mike James
2A01 2612 0000 0001 104 Alex Stuart
2A01 2613 0000 0001 102 Robert Williams
2A01 2614 0000 0001 105 Robert James
2A01 2615 0000 0001 103 Peter Paul
广告