📅  最后修改于: 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 |