Перейти к основному содержимому
Перейти к основному содержимому

UUID

Универсальный уникальный идентификатор (UUID) — это значение размером 16 байт, используемое для идентификации записей. Для получения подробной информации о UUID, смотрите Wikipedia.

Хотя существуют различные варианты UUID (см. здесь), ClickHouse не проверяет, соответствуют ли вставленные UUID какому-либо конкретному варианту. UUID внутренне рассматриваются как последовательность 16 случайных байт с представлением 8-4-4-4-12 на уровне SQL.

Пример значения UUID:

По умолчанию UUID — это значение, заполненное нулями. Оно используется, например, когда новая запись вставляется, но значение для столбца UUID не указано:

По историческим причинам UUID сортируются по их второй половине. Поэтому UUID не следует использовать напрямую в первичном ключе, ключе сортировки или ключе раздела таблицы.

Пример:

Результат:

В качестве обходного пути UUID можно преобразовать в тип с интуитивно понятным порядком сортировки.

Пример с преобразованием в UInt128:

Результат:

Генерация UUID

ClickHouse предоставляет функцию generateUUIDv4 для генерации случайных значений UUID версии 4.

Пример использования

Пример 1

Этот пример демонстрирует создание таблицы со столбцом UUID и вставку значения в таблицу.

Результат:

Пример 2

В этом примере при вставке записи не указано значение для столбца UUID, то есть вставляется значение UUID по умолчанию:

Ограничения

Тип данных UUID поддерживает только те функции, которые также поддерживает тип данных String (например, min, max и count).

Тип данных UUID не поддерживается арифметическими операциями (например, abs) или агрегатными функциями, такими как sum и avg.