Teradata 简明教程

Teradata - Hashing Algorithm

行是根据主键值分配给特定 AMP 的。Teradata 使用哈希算法来确定哪一个 AMP 获取行。

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

hashing algorithm

以下是插入数据的步骤。

  1. 客户端提交查询。

  2. 解析器接收查询并将记录的 PI 值传递给哈希算法。

  3. 哈希算法对主键值进行哈希处理,并返回一个称为行哈希的 32 位数字。

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

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

  6. AMP 使用 32 位行哈希定位磁盘中的行。

  7. 如果存在具有相同行哈希的任何记录,则它会增加唯一性 ID(一个 32 位数字)。对于新的行哈希,唯一性 ID 被分配为 1,并且每当插入具有相同行哈希的记录时都会增加 1。

  8. 行哈希和唯一性 ID 的组合称为行 ID。

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

  10. AMP 中的每一行表格都按其行 ID 逻辑排序。

How Tables are Stored

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

Row Hash

Uniqueness ID

EmployeeNo

FirstName

LastName

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