📜  Teradata-哈希算法

📅  最后修改于: 2020-11-29 09:05:04             🧑  作者: Mango


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

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

散列算法

以下是插入数据的步骤。

  • 客户提交查询。

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

  • 哈希算法对主索引值进行哈希处理并返回32位数字,称为行哈希。

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

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

  • AMP使用32位行散列在磁盘中定位行。

  • 如果有任何记录具有相同的行哈希,则它将递增唯一性ID,该ID为32位数字。对于新的行哈希,每当插入具有相同行哈希的记录时,唯一性ID就会分配为1并递增。

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

  • 行ID为磁盘中的每个记录加上前缀。

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

表的存储方式

表按其行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