Функции для работы с идентификаторами

Используются для создания и обработки глобально уникальных, хронологически сортируемых идентификаторов.

Функции для работы с UUID

Используются для генерации, преобразования и извлечения данных из UUID (включая UUIDv7). Позволяют конвертировать идентификаторы между текстовым и бинарным форматами, а также извлекать временные метки для оптимизации хранения и сортировки данных.

Сгенерированный UUID содержит 48-битную метку в миллисекундах Unix-времени, за которой следуют версия "7" (4 бита), счетчик (42 бита) для различения UUID в пределах одной миллисекунды (включая поле варианта "2" — 2 бита) и случайное поле (32 бита). Для любой заданной метки времени (unix_ts_ms) счетчик начинается со случайного значения и увеличивается на 1 для каждого нового UUID до тех пор, пока метка времени не изменится. В случае переполнения счетчика поле метки времени увеличивается на 1, а счетчик сбрасывается на новое случайное начальное значение. Функции генерации UUID гарантируют, что поле счетчика в пределах одной метки времени монотонно возрастает во всех вызовах функции в параллельно выполняющихся потоках и запросах.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции для работы с UUID
Функция Описание

dateTimeToUUIDv7(value)

Преобразует значение value типа DateTime в UUIDv7, используя метку времени из переданного значения. Возвращает результат типа UUID.

generateUUIDv4([expr])

Генерирует UUIDv4 и возвращает результат типа UUID. При необходимости можно указать произвольное выражение expr для предотвращения оптимизации при повторных вызовах.

generateUUIDv7([expr])

Генерирует UUIDv7 и возвращает результат типа UUID. При необходимости можно указать произвольное выражение expr для предотвращения оптимизации при повторных вызовах.

toUUIDOrDefault(string, default)

Преобразует строку string длиной 36 символов (тип string или FixedString(36)) в тип UUID. В случае неудачи возвращает значение по умолчанию default.

toUUIDOrNull(string)

Преобразует строку string в тип UUID. В случае неудачи возвращает NULL. Поддерживает строковые представления UUID в стандартном формате (8-4-4-4-12 шестнадцатеричных цифр) и в формате без дефисов (32 шестнадцатеричные цифры).

UUIDNumToString(binary[, variant])

Принимает двоичное представление UUID binary типа FixedString(16) и возвращает UUID в стандартном строковом представлении. При необходимости можно указать вариант формата variant в соответствии с RFC4122. По умолчанию используется формат Big-endian.

UUIDStringToNum(uuid[, variant])

Принимает строковое представление UUID из 36 символов uuid и возвращает его двоичное представление в виде FixedString(16). При необходимости можно указать вариант формата variant в соответствии с RFC4122. По умолчанию используется формат Big-endian.

UUIDToNum(uuid[, variant])

Принимает UUID uuid и возвращает его двоичное представление в формате FixedString(16). При необходимости можно указать вариант формата variant в соответствии с RFC4122. По умолчанию используется формат Big-endian.

UUIDv7ToDateTime(uuid[, timezone])

Возвращает метку времени, хранящуюся в UUIDv7 uuid, как значение типа DateTime64 с точностью до миллисекунд. При необходимости можно указать часовой пояс timezone. Если UUID не является корректным UUIDv7-идентификатором, возвращает 1970-01-01 00:00:00.000.

Функции для работы с ULID

Используются для генерации и извлечения данных из ULID-идентификаторов. Позволяют создавать и обрабатывать лексикографически сортируемые строки со встроенной временной меткой.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции для работы с ULID
Функция Описание

generateULID([expr])

Генерирует ULID и возвращает результат типа FixedString(26). При необходимости можно указать произвольное выражение expr для предотвращения оптимизации при повторных вызовах.

ULIDStringToDateTime(ulid[, timezone])

Возвращает метку времени, хранящуюся в ULID ulid, как значение типа DateTime64 с точностью до миллисекунд. При необходимости можно указать часовой пояс timezone.

Функции для работы с Snowflake ID

Используются для генерации, преобразования и извлечения данных из Snowflake ID. Позволяют конвертировать значения даты и времени (DateTime, DateTime64) в идентификаторы и обратно, а также извлекать временные метки для оптимизации хранения и сортировки данных.

Сгенерированный Snowflake ID содержит текущую Unix-метку времени в миллисекундах (41 бит + 1 старший нулевой бит), за которой следуют идентификатор машины (10 бит) и счетчик (12 бит) для различения идентификаторов в пределах одной миллисекунды. Для любой заданной метки времени (unix_ts_ms) счетчик начинается с 0 и увеличивается на 1 для каждого нового Snowflake ID до изменения метки времени. В случае переполнения счетчика поле метки времени увеличивается на 1, а счетчик сбрасывается в 0.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции для работы с Snowflake ID
Функция Описание

dateTime64ToSnowflakeID(value[, epoch])

Преобразует значение value типа DateTime64 в первый идентификатор Snowflake ID для заданного момента времени. Возвращает входное значение, преобразованное в тип UInt64. При необходимости можно указать эпоху Snowflake ID epoch в миллисекундах, отсчитываемых с 1970-01-01. По умолчанию значение epoch равно 0 (1970-01-01).

dateTimeToSnowflakeID(value[, epoch])

Преобразует значение value типа DateTime в первый идентификатор Snowflake ID для заданного момента времени. Возвращает входное значение, преобразованное в тип UInt64. При необходимости можно указать эпоху Snowflake ID epoch в миллисекундах, отсчитываемых с 1970-01-01. По умолчанию значение epoch равно 0 (1970-01-01).

generateSnowflakeID([expr[, machine_id]])

Генерирует идентификатор Snowflake ID и возвращает результат типа UInt64. При необходимости можно указать произвольное выражение expr для предотвращения оптимизации при повторных вызовах, а также идентификатор машины machine_id (используются младшие 10 бит). По умолчанию структура ID базируется на Unix-эпохе миллисекунд.

snowflakeIDToDateTime(value[, epoch[, timezone]])

Возвращает компонент метки времени идентификатора Snowflake ID value как значение типа DateTime. При необходимости можно указать дополнительные параметры:

  • epoch — эпоха Snowflake ID в миллисекундах, прошедших с 1970-01-01. По умолчанию значение epoch равно 0 (1970-01-01).

  • timezone — часовой пояс.

snowflakeIDToDateTime64(value[, epoch[, timezone]])

Возвращает компонент метки времени идентификатора Snowflake ID value как значение типа DateTime64. При необходимости можно указать дополнительные параметры:

  • epoch — эпоха Snowflake ID в миллисекундах, прошедших с 1970-01-01. По умолчанию значение epoch равно 0 (1970-01-01).

  • timezone — часовой пояс.

Была ли полезна эта страница?

Обратная связь