Teradata - Algoritmo de hash

Uma linha é atribuída a um AMP específico com base no valor do índice primário. O Teradata usa um algoritmo de hash para determinar qual AMP obtém a linha.

A seguir está um diagrama de alto nível sobre o algoritmo de hash.

A seguir estão as etapas para inserir os dados.

  • O cliente envia uma consulta.

  • O analisador recebe a consulta e passa o valor PI do registro para o algoritmo de hash.

  • O algoritmo de hash faz o hash do valor do índice primário e retorna um número de 32 bits, chamado Row Hash.

  • Os bits de ordem superior do hash de linha (primeiros 16 bits) são usados ​​para identificar a entrada do mapa de hash. O mapa hash contém um AMP #. O mapa de hash é uma matriz de intervalos que contém AMP # específico.

  • BYNET envia os dados para o AMP identificado.

  • AMP usa o hash Row de 32 bits para localizar a linha em seu disco.

  • Se houver qualquer registro com o mesmo hash de linha, ele aumentará o ID de exclusividade, que é um número de 32 bits. Para o novo hash de linha, o ID de exclusividade é atribuído como 1 e incrementado sempre que um registro com o mesmo hash de linha é inserido.

  • A combinação de hash de linha e ID de exclusividade é chamada de ID de linha.

  • A ID de linha prefixa cada registro no disco.

  • Cada linha da tabela no AMP é logicamente classificada por seus IDs de linha.

Como as tabelas são armazenadas

As tabelas são classificadas por ID de linha (hash de linha + ID de exclusividade) e, em seguida, armazenadas nas AMPs. O ID da linha é armazenado com cada linha de dados.

Hash de linha ID de exclusividade EmployeeNo Primeiro nome Último nome
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 Paulo