Функции для работы с UUID
generateUUIDv4
Генерирует идентификатор UUID версии 4.
Синтаксис
Аргументы
x
— выражение, возвращающее значение одного из поддерживаемых типов данных. Значение используется, чтобы избежать склейки одинаковых выражений, если функция вызывается несколько раз в одном запросе. Необязательный параметр.
Возвращаемое значение
Значение типа UUID.
Пример использования
Этот пример демонстрирует, как создать таблицу с UUID-колонкой и добавить в нее сгенерированный UUID.
Пример использования, для генерации нескольких значений в одной строке
generateUUIDv7
Генерирует идентификатор UUID версии 7. Генерируемый UUID состоит из 48-битной временной метки (Unix time в миллисекундах), маркеров версии 7 и варианта 2, монотонно возрастающего счётчика для данной временной метки и случайных данных в указанной ниже последовательности. Для каждой новой временной метки счётчик стартует с нового случайного значения, а для следующих UUIDv7 он увеличивается на единицу. В случае переполнения счётчика временная метка принудительно увеличивается на 1, и счётчик снова стартует со случайного значения. Монотонность возрастания счётчика для каждой временной метки гарантируется между всеми одновременно работающими функциями generateUUIDv7
.
На апрель 2024 года UUIDv7 находится в статусе черновика и его раскладка по битам может в итоге измениться.
Синтаксис
Аргументы
x
— выражение, возвращающее значение одного из поддерживаемых типов данных. Значение используется, чтобы избежать склейки одинаковых выражений, если функция вызывается несколько раз в одном запросе. Необязательный параметр.
Возвращаемое значение
Значение типа UUID.
Пример использования
Этот пример демонстрирует, как создать таблицу с UUID-колонкой и добавить в нее сгенерированный UUIDv7.
Пример использования, для генерации нескольких значений в одной строке
empty
Проверяет, является ли входной UUID пустым.
Синтаксис
UUID считается пустым, если он содержит все нули (нулевой UUID).
Функция также поддерживает работу с типами Array и String.
Параметры
x
— UUID на входе функции. UUID.
Возвращаемое значение
- Возвращает
1
для пустого UUID или0
— для непустого UUID.
Тип: UInt8.
Пример
Для генерации UUID-значений предназначена функция generateUUIDv4.
Запрос:
Ответ:
notEmpty
Проверяет, является ли входной UUID непустым.
Синтаксис
UUID считается пустым, если он содержит все нули (нулевой UUID).
Функция также поддерживает работу с типами Array и String.
Параметры
x
— UUID на входе функции. UUID.
Возвращаемое значение
- Возвращает
1
для непустого UUID или0
— для пустого UUID.
Тип: UInt8.
Пример
Для генерации UUID-значений предназначена функция generateUUIDv4.
Запрос:
Результат:
toUUID (x)
Преобразует значение типа String в тип UUID.
Возвращаемое значение
Значение типа UUID.
Пример использования
toUUIDOrNull (x)
Принимает строку, и пытается преобразовать в тип UUID. При неудаче возвращает NULL.
Возвращаемое значение
Значение типа Nullable(UUID).
Пример использования
toUUIDOrZero (x)
Принимает строку, и пытается преобразовать в тип UUID. При неудаче возвращает нулевой UUID.
Возвращаемое значение
Значение типа UUID.
Пример использования
UUIDStringToNum
Принимает строку, содержащую 36 символов в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
, и возвращает в виде набора байт в FixedString(16).
Возвращаемое значение
FixedString(16)
Пример использования
UUIDNumToString
Принимает значение типа FixedString(16). Возвращает строку из 36 символов в текстовом виде.
Возвращаемое значение
Значение типа String.
Пример использования
UUIDToNum
Принимает UUID и возвращает в виде набора байт в FixedString(16). Также принимает необязательный второй параметр - вариант представления UUID, по умолчанию 1 - Big-endian
(2 означает представление в формате Microsoft
). Данная функция заменяет последовательность из двух отдельных функций UUIDStringToNum(toString(uuid))
, так что промежуточная конвертация из UUID в String для извлечения набора байт из UUID не требуется.
Возвращаемое значение
FixedString(16)
Примеры использования
UUIDv7ToDateTime
Принимает UUID версии 7 и извлекает из него временную метку.
Параметры
uuid
— UUID версии 7.timezone
— Часовой пояс для возвращаемого значения (необязательный параметр). String.
Возвращаемое значение
- Временная метка с миллисекундной точностью (1970-01-01 00:00:00.000 в случае UUID не версии 7).
Type: DateTime64(3).
Примеры использования
serverUUID()
Возвращает случайный и уникальный UUID, который генерируется при первом запуске сервера и сохраняется навсегда. Результат записывается в файл uuid
, расположенный в каталоге сервера ClickHouse /var/lib/clickhouse/
.
Синтаксис
Возвращаемое значение
- UUID сервера.
Тип: UUID.