UUID
Универсальный уникальный идентификатор (UUID) — это 16-байтовое значение, используемое для идентификации записей. Для получения подробной информации о UUID см. Wikipedia.
Хотя существуют разные варианты UUID (см. здесь), ClickHouse не проверяет, соответствуют ли вставляемые UUID какому-либо конкретному варианту. UUID внутренне рассматриваются как последовательность из 16 случайных байтов с представлением 8-4-4-4-12 на уровне SQL.
Пример значения UUID:
UUID по умолчанию равен всем нулям. Он используется, например, когда новая запись вставляется, но значение для колонки UUID не указано:
По историческим причинам UUID сортируются по их второй половине. Поэтому UUIDs не следует использовать напрямую в первичном ключе, ключе сортировки или ключе партиции таблицы.
Пример:
Результат:
В качестве обходного пути UUID можно преобразовать в тип с интуитивным порядком сортировки.
Пример с преобразованием в UInt128:
Результат:
Генерация UUID
ClickHouse предоставляет функцию generateUUIDv4 для генерации случайных значений UUID версии 4.
Пример использования
Пример 1
Этот пример демонстрирует создание таблицы с колонкой UUID и вставку значения в таблицу.
Результат:
Пример 2
В этом примере значение колонки UUID не указано, когда запись вставляется, т.е. вставляется значение по умолчанию для UUID:
Ограничения
Тип данных UUID поддерживает только функции, которые также поддерживает тип данных String (например, min, max и count).
Тип данных UUID не поддерживает арифметические операции (например, abs) или агрегационные функции, такие как sum и avg.