- Teradata 教程
- Teradata - 首页
- Teradata 基础
- Teradata - 简介
- Teradata - 安装
- Teradata - 架构
- Teradata - 关系型概念
- Teradata - 数据类型
- Teradata - 表
- Teradata - 数据操作
- Teradata - SELECT 语句
- 逻辑与条件运算符
- Teradata - 集合运算符
- Teradata - 字符串操作
- Teradata - 日期/时间函数
- Teradata - 内置函数
- Teradata - 聚合函数
- Teradata - CASE 与 COALESCE
- Teradata - 主索引
- Teradata - 连接
- Teradata - 子查询
- Teradata 高级
- Teradata - 表类型
- Teradata - 空间概念
- Teradata - 二级索引
- Teradata - 统计
- Teradata - 压缩
- Teradata - EXPLAIN
- Teradata - 哈希算法
- Teradata - 连接索引
- Teradata - 视图
- Teradata - 宏
- Teradata - 存储过程
- Teradata - 连接策略
- Teradata - 分区主索引
- Teradata - OLAP 函数
- Teradata - 数据保护
- Teradata - 用户管理
- Teradata - 性能调优
- Teradata - FastLoad
- Teradata - MultiLoad
- Teradata - FastExport
- Teradata - BTEQ
- Teradata 有用资源
- Teradata - 问答
- Teradata - 快速指南
- Teradata - 有用资源
- Teradata - 讨论
Teradata - 哈希算法
根据主键值,一行数据被分配到特定的 AMP。Teradata 使用哈希算法来确定哪个 AMP 获取该行数据。
以下是关于哈希算法的高级图表。
以下是插入数据的步骤。
客户端提交查询。
解析器接收查询并将记录的主键值传递给哈希算法。
哈希算法对主键值进行哈希运算并返回一个 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 |
广告