메인 콘텐츠로 건너뛰기

UUID를 처리하는 함수

UUIDv7 생성

생성된 UUID에는 Unix 밀리초 단위의 48비트 타임스탬프가 포함되며, 그 뒤에 버전 “7”(4비트), 동일한 밀리초 내에서 UUID를 구분하기 위한 카운터(42비트, variant 필드 “2”의 2비트 포함), 그리고 랜덤 필드(32비트)가 이어집니다. 주어진 타임스탬프(unix_ts_ms)에서 카운터는 임의의 값으로 시작하며, 타임스탬프가 바뀔 때까지 새 UUID가 생성될 때마다 1씩 증가합니다. 카운터에 오버플로우가 발생하면 타임스탬프 필드는 1 증가하고, 카운터는 새로운 임의의 시작 값으로 재설정됩니다. UUID 생성 함수는 동시에 실행되는 스레드 및 쿼리의 모든 함수 호출에 걸쳐, 동일한 타임스탬프 내의 카운터 필드가 단조 증가하도록 보장합니다.

Snowflake ID 생성

생성된 Snowflake ID에는 현재 Unix 타임스탬프가 밀리초 단위로 들어 있으며(상위 0 비트 41 + 1개), 그 뒤에 머신 ID(10비트)와 1밀리초 내에서 ID를 구분하기 위한 카운터(12비트)가 이어집니다. 각 타임스탬프(unix_ts_ms)에 대해 카운터는 0에서 시작하며, 타임스탬프가 바뀔 때까지 새 Snowflake ID가 생성될 때마다 1씩 증가합니다. 카운터에 오버플로우가 발생하면 타임스탬프 필드가 1 증가하고 카운터는 0으로 재설정됩니다.
생성된 Snowflake ID는 UNIX epoch 1970-01-01을 기준으로 합니다. Snowflake ID의 epoch에 대한 표준이나 권고는 없지만, 다른 시스템의 구현은 서로 다른 epoch를 사용할 수 있습니다. 예를 들어 Twitter/X는 2010-11-04, Mastodon은 2015-01-01을 사용합니다.

UUIDNumToString

도입 버전: v1.1.0 UUID의 이진 표현을 입력받고, 필요에 따라 variant로 포맷을 지정할 수 있습니다(기본값은 Big-endian). 텍스트 포맷의 36자 문자열을 반환합니다. 구문
인수
  • binary — UUID의 이진 표현입니다. FixedString(16)
  • variantRFC4122에서 지정한 variant입니다. 1 = Big-endian(기본값), 2 = Microsoft입니다. (U)Int*
반환 값 UUID를 문자열로 반환합니다. String 예시 사용 예시
Query
Response
Microsoft 변형
Query
Response

UUIDStringToNum

도입 버전: v1.1.0 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 포맷의 36자 문자열을 받아 해당 문자열의 바이너리 표현인 FixedString(16)을 반환합니다. 포맷은 variant로 선택적으로 지정할 수 있으며 기본값은 Big-endian입니다. 구문
인수
  • string — 36자 길이의 문자열 또는 고정 길이 문자열 String 또는 FixedString(36)
  • variantRFC4122에 지정된 Variant입니다. 1 = Big-endian(기본값), 2 = Microsoft. (U)Int*
반환 값 string의 이진 표현을 반환합니다. FixedString(16) 예시 사용 예시
Query
Response
Microsoft 변형
Query
Response

UUIDToNum

도입 버전: v24.5.0 UUID를 받아 해당 이진 표현을 FixedString(16)으로 반환하며, variant로 포맷을 선택적으로 지정할 수 있습니다(기본값은 Big-endian). 이 함수는 별도의 두 함수 호출인 UUIDStringToNum(toString(uuid))를 대체하므로, UUID에서 바이트를 추출하기 위해 UUID를 문자열로 중간 변환할 필요가 없습니다. 구문
인수 반환 값 UUID의 이진 표현을 반환합니다. FixedString(16) 예시 사용 예시
Query
Response
Microsoft 변형
Query
Response

UUIDv7ToDateTime

도입 버전: v24.5.0 UUID 버전 7의 타임스탬프 구성 요소를 반환합니다. 구문
인수
  • uuid — UUID 버전 7 값입니다. String
  • timezone — 선택 사항입니다. 반환 값에 사용할 시간대 이름입니다. String
반환 값 밀리초 정밀도의 타임스탬프를 반환합니다. UUID가 유효한 버전 7 UUID가 아니면 1970-01-01 00:00:00.000을 반환합니다. DateTime64(3) 예시 사용 예시
Query
Response
시간대 포함
Query
Response

dateTime64ToSnowflake

도입 버전: v21.10.0
이 함수는 더 이상 사용이 권장되지 않으며, 설정 allow_deprecated_snowflake_conversion_functions이 활성화된 경우에만 사용할 수 있습니다. 이 함수는 향후 제거될 예정입니다.대신 dateTime64ToSnowflakeID 함수를 사용하십시오.
DateTime64를 지정된 시각에 해당하는 첫 번째 Snowflake ID로 변환합니다. 구문
인수
  • value — 시간이 포함된 날짜 및 시간 값입니다. DateTime64
반환 값 입력 값을 해당 시점의 첫 번째 Snowflake ID로 변환한 값을 반환합니다. Int64 예시 사용 예시
Query
Response

dateTime64ToSnowflakeID

도입 버전: v24.6.0 DateTime64 값을 지정된 시점에 해당하는 첫 번째 Snowflake ID로 변환합니다. 구문
인수
  • value — 날짜 및 시간. DateTime64
  • epoch — 1970-01-01부터 경과한 시간을 밀리초 단위로 나타낸 Snowflake ID의 epoch입니다. 기본값은 0(1970-01-01)입니다. Twitter/X epoch(2015-01-01)를 사용하려면 1288834974657을 지정하십시오. UInt*
반환 값 입력 값을 UInt64로 변환한 값입니다. 예시 simple
Query
Response

dateTimeToSnowflake

도입 버전: v21.10.0
이 함수는 더 이상 사용이 권장되지 않으며, 설정 allow_deprecated_snowflake_conversion_functions이 활성화된 경우에만 사용할 수 있습니다. 이 함수는 향후 어느 시점에 제거될 예정입니다.대신 dateTimeToSnowflakeID 함수를 사용하십시오.
DateTime 값을 지정된 시점의 첫 번째 Snowflake ID로 변환합니다. 구문
인수 반환 값 입력 값을 해당 시점의 첫 번째 Snowflake ID로 반환합니다. Int64 예시 사용 예시
Query
Response

dateTimeToSnowflakeID

도입 버전: v24.6.0 DateTime 값을 주어진 시각의 첫 번째 Snowflake ID로 변환합니다. 구문
인수
  • value — 시간이 포함된 날짜입니다. DateTime
  • epoch — 1970-01-01부터 경과한 밀리초 단위의 Snowflake ID epoch입니다. 기본값은 0(1970-01-01)입니다. Twitter/X epoch(2015-01-01)에는 1288834974657을 지정하십시오. UInt*
반환 값 입력 값이 UInt64로 변환됩니다. 예시 간단한 예시
Query
Response

dateTimeToUUIDv7

도입 버전: v25.8.0 지정된 시점의 DateTime 값을 UUIDv7로 변환합니다. UUID 구조, 카운터 관리, 동시성 보장에 대한 자세한 내용은 “UUIDv7 생성” 섹션을 참조하십시오.
2025년 9월 기준으로 버전 7 UUID는 초안 상태이며, 향후 내부 레이아웃이 변경될 수 있습니다.
구문
인수
  • value — 시간이 포함된 날짜/시간 값. DateTime
반환 값 UUIDv7를 반환합니다. UUID 예시 사용 예시
Query
Response
동일한 타임스탬프에 여러 UUID
Query
Response

generateSnowflakeID

도입 버전: v24.6.0 Snowflake ID를 생성합니다. 함수 generateSnowflakeID는 동시에 실행되는 모든 스레드와 쿼리 전반에서 함수가 호출될 때마다 타임스탬프 내 카운터 필드가 단조 증가하도록 보장합니다. 구현 세부 사항은 “Snowflake ID generation” 섹션을 참조하십시오. 구문
인수
  • expr — 쿼리에서 이 함수가 여러 번 호출될 때 공통 하위 표현식 제거를 우회하는 데 사용되는 임의의 표현식입니다. 표현식 값은 반환되는 Snowflake ID에 영향을 주지 않습니다. 선택 사항입니다. - machine_id — 머신 ID입니다. 하위 10비트가 사용됩니다. Int64. 선택 사항입니다.
반환 값 Snowflake ID를 반환합니다. UInt64 예시 사용 예시
Query
Response
행마다 여러 개의 Snowflake ID 생성
Query
Response
표현식과 머신 ID를 사용
Query
Response

generateUUIDv4

도입된 버전: v1.1.0 버전 4 UUID를 생성합니다. 구문
인수
  • expr — 선택 사항입니다. 함수가 하나의 쿼리에서 여러 번 호출될 때 공통 하위 표현식 제거을 우회하기 위해 사용하는 임의의 표현식입니다. 이 표현식의 값은 반환되는 UUID에 영향을 주지 않습니다.
반환 값 UUIDv4를 반환합니다. UUID 예시 사용 예시
Query
Response
공통 하위 표현식 제거
Query
Response

generateUUIDv7

도입 버전: v24.5.0 버전 7 UUID를 생성합니다. UUID 구조, 카운터 관리, 동시성 보장에 관한 자세한 내용은 “UUIDv7 생성” 섹션을 참조하십시오.
2025년 9월 기준으로 버전 7 UUID는 초안 상태이며, 향후 레이아웃이 변경될 수 있습니다.
구문
인수
  • expr — 선택 사항입니다. 함수가 한 쿼리에서 여러 번 호출될 때 공통 하위 표현식 제거를 피하기 위해 사용하는 임의의 표현식입니다. 이 표현식의 값은 반환되는 UUID에 영향을 주지 않습니다. Any
반환 값 UUIDv7을 반환합니다. UUID 예시 사용 예시
Query
Response
공통 하위 표현식 제거
Query
Response

snowflakeIDToDateTime

도입 버전: v24.6.0 Snowflake ID의 타임스탬프 구성 요소를 DateTime 유형의 값으로 반환합니다. 구문
인수
  • value — Snowflake ID입니다. UInt64
  • epoch — 선택 사항입니다. 1970-01-01 이후 경과한 밀리초 단위의 Snowflake ID epoch입니다. 기본값은 0(1970-01-01)입니다. Twitter/X epoch(2015-01-01)의 경우 1288834974657을 지정하십시오. UInt*
  • time_zone — 선택 사항입니다. 시간대입니다. 함수는 time_string을 시간대에 따라 해석합니다. String
반환 값 value의 timestamp 구성 요소를 반환합니다. DateTime 예시 사용 예시
Query
Response

snowflakeIDToDateTime64

도입 버전: v24.6.0 Snowflake ID의 타임스탬프 구성 요소를 DateTime64 타입의 값으로 반환합니다. 구문
인수
  • value — Snowflake ID. UInt64
  • epoch — 선택 사항입니다. 1970-01-01부터 경과한 밀리초 단위의 Snowflake ID epoch입니다. 기본값은 0(1970-01-01)입니다. Twitter/X epoch(2015-01-01)를 사용하려면 1288834974657을 지정하십시오. UInt*
  • time_zone — 선택 사항입니다. 시간대입니다. 이 함수는 time_string을 해당 시간대에 따라 파싱합니다. String
반환 값 value의 타임스탬프 구성 요소를 scale = 3, 즉 밀리초 정밀도의 DateTime64로 반환합니다. DateTime64 예시 사용 예시
Query
Response

snowflakeToDateTime

도입 버전: v21.10.0
이 함수는 더 이상 권장되지 않으며, 설정 allow_deprecated_snowflake_conversion_functions이 활성화된 경우에만 사용할 수 있습니다. 이 함수는 향후 제거될 예정입니다.대신 snowflakeIDToDateTime 함수를 사용하십시오.
Snowflake ID에서 타임스탬프 구성 요소를 DateTime 형식으로 추출합니다. 구문
인수
  • value — Snowflake ID. Int64
  • time_zone — 선택 사항입니다. 시간대. 함수는 time_string을 해당 시간대에 따라 파싱합니다. String
반환 값 value의 타임스탬프 구성 요소를 반환합니다. DateTime 예시 사용 예시
Query
Response

snowflakeToDateTime64

도입 버전: v21.10.0
이 함수는 지원 중단되었으며, 설정 allow_deprecated_snowflake_conversion_functions이 활성화된 경우에만 사용할 수 있습니다. 이 함수는 향후 어느 시점에 제거될 수 있습니다.대신 snowflakeIDToDateTime64 함수를 사용하십시오.
Snowflake ID의 타임스탬프 부분을 DateTime64 포맷으로 추출합니다. 구문
인수
  • value — Snowflake ID. Int64
  • time_zone — 선택 사항입니다. 시간대입니다. 함수는 time_string을 해당 시간대에 따라 해석합니다. String
반환 값 value의 타임스탬프 구성 요소를 반환합니다. DateTime64(3) 예시 사용 예시
Query
Response

toUUIDOrDefault

도입 버전: v21.1.0 String 값을 UUID 유형으로 변환합니다. 변환에 실패하면 오류를 발생시키는 대신 기본 UUID 값을 반환합니다. 이 함수는 표준 UUID 포맷(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)의 36자 문자열을 파싱합니다. 문자열을 유효한 UUID로 변환할 수 없으면 제공된 기본 UUID 값을 반환합니다. 구문
인수
  • string — UUID로 변환할 36자 String 또는 FixedString(36)입니다. - default — 첫 번째 인수를 UUID 타입으로 변환할 수 없을 때 반환할 UUID 값입니다.
반환 값 변환에 성공하면 변환된 UUID를 반환하고, 변환에 실패하면 기본 UUID를 반환합니다. UUID 예시 변환에 성공하면 파싱된 UUID를 반환합니다
Query
Response
변환이 실패하면 기본 UUID를 반환합니다
Query
Response

toUUIDOrNull

도입 버전: v20.12.0 입력 값을 UUID 타입으로 변환하지만, 오류가 발생하면 NULL을 반환합니다. toUUID와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 NULL을 반환합니다. 지원되는 인수:
  • 표준 포맷(8-4-4-4-12자리 16진수)의 UUID 문자열 표현.
  • 하이픈이 없는 UUID 문자열 표현(32자리 16진수).
지원되지 않는 인수(NULL 반환):
  • 잘못된 문자열 포맷.
  • 문자열이 아닌 타입.
  • 잘못된 형식의 UUID.
구문
인수
  • x — UUID의 문자열 표현입니다. String
반환 값 성공하면 UUID 값을 반환하고, 실패하면 NULL을 반환합니다. UUID 또는 NULL 예시 사용 예시
Query
Response
마지막 수정일 2026년 7월 2일