Teradata - Algoritmo de hash
Se asigna una fila a un AMP en particular según el valor del índice principal. Teradata usa un algoritmo hash para determinar qué AMP obtiene la fila.
A continuación se muestra un diagrama de alto nivel sobre el algoritmo hash.
Los siguientes son los pasos para insertar los datos.
El cliente envía una consulta.
El analizador recibe la consulta y pasa el valor PI del registro al algoritmo hash.
El algoritmo hash calcula el valor del índice principal y devuelve un número de 32 bits, llamado Row Hash.
Los bits de orden superior del hash de fila (primeros 16 bits) se utilizan para identificar la entrada del mapa de hash. El mapa hash contiene un AMP #. El mapa hash es una matriz de depósitos que contiene un número de AMP específico.
BYNET envía los datos al AMP identificado.
AMP usa el hash de fila de 32 bits para ubicar la fila dentro de su disco.
Si hay algún registro con el mismo hash de fila, aumenta el ID de unicidad, que es un número de 32 bits. Para el hash de fila nuevo, el ID de unicidad se asigna como 1 y se incrementa cada vez que se inserta un registro con el mismo hash de fila.
La combinación de hash de fila e ID de unicidad se denomina ID de fila.
El ID de fila antepone cada registro del disco.
Cada fila de la tabla en AMP está ordenada lógicamente por sus ID de fila.
Cómo se almacenan las tablas
Las tablas se ordenan por su ID de fila (hash de fila + ID de unicidad) y luego se almacenan dentro de las AMP. El ID de fila se almacena con cada fila de datos.
Hash de fila | ID de unicidad | Numero de empleado | Primer nombre | Apellido |
---|---|---|---|---|
2A01 2611 | 0000 0001 | 101 | Miguel | 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 | Pedro | Pablo |