Терадата - алгоритм хеширования

Строка назначается конкретному AMP на основе значения первичного индекса. Teradata использует алгоритм хеширования, чтобы определить, какой AMP получает строку.

Ниже представлена ​​высокоуровневая диаграмма алгоритма хеширования.

Ниже приведены шаги по вставке данных.

  • Клиент отправляет запрос.

  • Парсер получает запрос и передает значение PI записи в алгоритм хеширования.

  • Алгоритм хеширования хеширует значение первичного индекса и возвращает 32-битное число, называемое хешем строки.

  • Биты более высокого порядка хэша строки (первые 16 битов) используются для идентификации записи хэш-карты. Хэш-карта содержит один номер AMP. Хеш-карта - это массив сегментов, который содержит определенный номер AMP.

  • BYNET отправляет данные на указанный AMP.

  • AMP использует 32-битный хэш строки для поиска строки на своем диске.

  • Если есть какая-либо запись с таким же хешем строки, она увеличивает идентификатор уникальности, который является 32-битным числом. Для нового хэша строки идентификатор уникальности присваивается как 1 и увеличивается каждый раз, когда вставляется запись с таким же хешем строки.

  • Комбинация хэша строки и идентификатора уникальности называется идентификатором строки.

  • Идентификатор строки является префиксом каждой записи на диске.

  • Каждая строка таблицы в AMP логически отсортирована по идентификатору строки.

Как хранятся таблицы

Таблицы сортируются по их идентификатору строки (хэш строки + идентификатор уникальности), а затем сохраняются в AMP. Идентификатор строки сохраняется с каждой строкой данных.

Строчный хеш ID уникальности Работник № Имя Фамилия
2A01 2611 0000 0001 101 Майк Джеймс
2A01 2612 0000 0001 104 Alex Стюарт
2A01 2613 0000 0001 102 Роберт Уильямс
2A01 2614 0000 0001 105 Роберт Джеймс
2A01 2615 0000 0001 103 Питер Павел