- Teradata 教程
- Teradata - 主页
- Teradata 基础知识
- Teradata - 简介
- Teradata - 安装
- Teradata - 架构
- Teradata - 关系概念
- Teradata - 数据类型
- Teradata - 表
- Teradata - 数据操作
- Teradata - SELECT 语句
- 逻辑和条件运算符
- Teradata - SET 运算符
- Teradata - 字符串操作
- Teradata - 日期/时间函数
- Teradata - 内置函数
- Teradata - 聚合函数
- Teradata - 案例与合并
- Teradata - 主索引
- Teradata - 加入
- Teradata - 子查询
- Teradata 高级版
- Teradata - 表类型
- Teradata - 空间概念
- Teradata - 二级索引
- Teradata - 统计
- Teradata - 压缩
- Teradata - 解释
- Teradata - 哈希算法
- Teradata - 连接索引
- Teradata - 视图
- Teradata - 宏
- Teradata - 存储过程
- Teradata - 加入策略
- Teradata - 分区主索引
- Teradata - OLAP 函数
- Teradata - 数据保护
- Teradata - 用户管理
- Teradata - 性能调优
- Teradata - 快速加载
- Teradata - 多负载
- Teradata - 快速导出
- Teradata-BTEQ
- Teradata 有用资源
- Teradata - 问题与解答
- Teradata - 快速指南
- Teradata - 有用的资源
- Teradata - 讨论
Teradata - 哈希算法
根据主索引值将行分配给特定的 AMP。Teradata 使用哈希算法来确定哪个 AMP 获取该行。
以下是哈希算法的高级图表。
以下是插入数据的步骤。
客户端提交查询。
解析器接收查询并将记录的 PI 值传递给哈希算法。
哈希算法对主索引值进行哈希处理并返回一个 32 位数字,称为 Row Hash。
行散列的高阶位(前 16 位)用于标识散列映射条目。哈希映射包含一个 AMP #。哈希映射是包含特定 AMP # 的存储桶数组。
BYNET 将数据发送到识别的 AMP。
AMP 使用 32 位行哈希来定位其磁盘中的行。
如果有任何记录具有相同的行哈希,则它会增加唯一性 ID(32 位数字)。对于新的行哈希,唯一性 ID 被分配为 1,并在插入具有相同行哈希的记录时递增。
Row hash 和 Uniqueness ID 的组合称为 Row ID。
行 ID 作为磁盘中每条记录的前缀。
AMP 中的每个表行均按其行 ID 进行逻辑排序。
表如何存储
表按行 ID(行哈希 + 唯一性 ID)排序,然后存储在 AMP 中。行 ID 与每个数据行一起存储。
行哈希 | 唯一性ID | 员工号 | 名 | 姓 |
---|---|---|---|---|
2A01 2611 | 0000 0001 | 101 | 麦克风 | 詹姆士 |
2A01 2612 | 0000 0001 | 104 | 亚历克斯 | 斯图尔特 |
2A01 2613 | 0000 0001 | 102 | 罗伯特 | 威廉斯 |
2A01 2614 | 0000 0001 | 105 | 罗伯特 | 詹姆士 |
2A01 2615 | 0000 0001 | 103 | 彼得 | 保罗 |