메인 콘텐츠로 건너뛰기

L1Distance

도입 버전: v21.11.0 벡터의 원소를 좌표로 하는 두 점 사이의 거리를 L1 공간(1-노름, taxicab geometry 거리)에서 계산합니다. 구문
L1Distance(vector1, vector2)
별칭: distanceL1 인수 반환 값 1-노름 거리를 반환합니다. Array 입력의 경우, 요소 타입의 최소 공통 상위 타입이 Float32 또는 BFloat16이면 Float32를 반환하고, 그렇지 않으면 Float64를 반환합니다. Tuple 입력의 경우 반환 타입은 요소별 연산의 산술 결과 타입을 따릅니다(정수 타입은 유지됨). (U)Int* 또는 Float* 예시 기본 사용법
Query
SELECT L1Distance((1, 2), (2, 3))
Response
┌─L1Distance((1, 2), (2, 3))─┐
│                          2 │
└────────────────────────────┘

L1Norm

도입된 버전: v21.11.0 벡터 각 요소의 절댓값 합을 계산합니다. 구문
L1Norm(vector)
별칭: normL1 인수
  • vector — 숫자 값으로 이루어진 벡터 또는 튜플. Array(T) 또는 Tuple(T)
반환 값 L1 노름 또는 taxicab geometry 거리를 반환합니다. UInt* 또는 Float* 또는 Decimal 예시 기본 사용법
Query
SELECT L1Norm((1, 2))
Response
┌─L1Norm((1, 2))─┐
│              3 │
└────────────────┘

L1Normalize

도입 버전: v21.11.0 주어진 벡터의 단위 벡터를 L1 공간(taxicab geometry)에서 계산합니다. 튜플의 요소는 좌표입니다. 구문
L1Normalize(tuple)
별칭: normalizeL1 인수
  • tuple — 숫자 값으로 구성된 튜플입니다. Tuple(T)
반환 값 단위 벡터를 반환합니다. Tuple(Float64) 예시 기본 사용법
Query
SELECT L1Normalize((1, 2))
Response
┌─L1Normalize((1, 2))─────────────────────┐
│ (0.3333333333333333,0.6666666666666666) │
└─────────────────────────────────────────┘

L2Distance

도입 버전: v21.11.0 유클리드 공간(Euclidean space)에서 두 점 사이의 거리(벡터의 원소는 각 점의 좌표)를 계산합니다(유클리드 거리). 구문
L2Distance(vector1, vector2)
별칭: distanceL2 인수 반환 값 2-노름 거리를 반환합니다. Array 입력에서는 요소 타입의 최소 공통 상위 타입이 Float32 또는 BFloat16이면 Float32를 반환하고, 그렇지 않으면 Float64를 반환합니다. Tuple 입력에서는 항상 Float64를 반환합니다. Float* 예시 기본 사용법
Query
SELECT L2Distance((1, 2), (2, 3))
Response
┌─L2Distance((1, 2), (2, 3))─┐
│         1.4142135623730951 │
└────────────────────────────┘

L2DistanceTransposed

도입 버전: v25.10.0 유클리드 공간(유클리드 거리)에서 두 점 사이의 근사 거리를 계산합니다(벡터의 값이 좌표임). 구문
L2DistanceTransposed(vector1, vector2, p)
별칭: distanceL2Transposed 인수
  • vectors — 벡터. QBit(T, UInt64)
  • reference — 기준 벡터. Array(T)
  • p — 거리 계산에 사용할 각 벡터 요소의 비트 수(1부터 요소의 비트 폭까지)입니다. 양자화 수준은 정밀도와 속도 사이의 균형을 결정합니다. 더 적은 비트를 사용하면 정확도는 낮아지지만 I/O 및 계산 속도는 빨라지고, 더 많은 비트를 사용하면 성능 저하를 감수하는 대신 정확도는 높아집니다. UInt
반환 값 근사 2-노름 거리를 반환합니다. 반환 타입은 항상 Float64입니다. Float64 예시 기본 사용법
Query
CREATE TABLE qbit (id UInt32, vec QBit(Float64, 2)) ENGINE = Memory;
INSERT INTO qbit VALUES (1, [0, 1]);
SELECT L2DistanceTransposed(vec, array(1, 2), 16) FROM qbit;
Response
┌─L2DistanceTransposed([0, 1], [1, 2], 16)─┐
│                       1.4142135623730951 │
└──────────────────────────────────────────┘

L2Norm

도입 버전: v21.11.0 벡터 요소 제곱합의 제곱근을 계산합니다. 구문
L2Norm(vector)
별칭: normL2 인수
  • vector — 숫자형 값으로 이루어진 벡터 또는 튜플입니다. Tuple(T) 또는 Array(T)
반환 값 L2 노름 또는 유클리드 거리를 반환합니다. UInt* 또는 Float* 예시 기본 사용법
Query
SELECT L2Norm((1, 2))
Response
┌───L2Norm((1, 2))─┐
│ 2.23606797749979 │
└──────────────────┘

L2Normalize

도입 버전: v21.11.0 주어진 벡터의 단위 벡터를 계산합니다(튜플의 원소는 좌표임). 유클리드 거리를 사용해 유클리드 공간에서 계산합니다. 구문
L2Normalize(tuple)
별칭: normalizeL2 인수
  • tuple — 숫자 값으로 구성된 튜플입니다. Tuple(T)
반환 값 단위 벡터를 반환합니다. Tuple(Float64) 예시 기본 사용법
Query
SELECT L2Normalize((3, 4))
Response
┌─L2Normalize((3, 4))─┐
│ (0.6,0.8)           │
└─────────────────────┘

L2SquaredDistance

도입 버전: v22.7.0 두 벡터에서 서로 대응하는 원소 간 차이의 제곱합을 계산합니다. 구문
L2SquaredDistance(vector1, vector2)
별칭: distanceL2Squared 인수 반환 값 두 벡터에서 대응하는 요소끼리의 차이를 제곱한 뒤 모두 더한 값을 반환합니다. Array 입력의 경우, 요소 타입의 최소 공통 상위 타입(least common supertype)이 Float32 또는 BFloat16이면 Float32를 반환하고, 그렇지 않으면 Float64를 반환합니다. Tuple 입력의 경우, 반환 타입은 요소별 연산의 산술 결과 타입을 따릅니다(정수 타입은 유지됨). (U)Int* 또는 Float* 예시 기본 사용법
Query
SELECT L2SquaredDistance([1, 2, 3], [0, 0, 0])
Response
┌─L2SquaredDis⋯ [0, 0, 0])─┐
│                       14 │
└──────────────────────────┘

L2SquaredNorm

도입 버전: v22.7.0 벡터 원소 제곱합의 제곱근인 L2Norm을 다시 제곱한 값을 계산합니다. 구문
L2SquaredNorm(vector)
별칭: normL2Squared 인수
  • vector — 숫자 값으로 이루어진 벡터 또는 튜플입니다. Array(T) 또는 Tuple(T)
반환 값 L2 노름의 제곱을 반환합니다. UInt* 또는 Float* 또는 Decimal 예시 기본 사용법
Query
SELECT L2SquaredNorm((1, 2))
Response
┌─L2SquaredNorm((1, 2))─┐
│                     5 │
└───────────────────────┘

LinfDistance

도입 버전: v21.11.0 L_{inf} 공간에서 두 점 사이의 거리(벡터의 원소가 좌표임)를 계산합니다(최대 노름). 구문
LinfDistance(vector1, vector2)
별칭: distanceLinf 인수 반환 값 무한 노름 거리를 반환합니다. Array 입력의 경우, 요소 타입의 최소 공통 상위 타입이 Float32 또는 BFloat16이면 Float32를, 그렇지 않으면 Float64를 반환합니다. Tuple 입력의 경우 항상 Float64를 반환합니다. Float* 예시 기본 사용법
Query
SELECT LinfDistance((1, 2), (2, 3))
Response
┌─LinfDistance((1, 2), (2, 3))─┐
│                            1 │
└──────────────────────────────┘

LinfNorm

도입 버전: v21.11.0 벡터 원소 절댓값의 최댓값을 계산합니다. 구문
LinfNorm(vector)
별칭: normLinf 인수
  • vector — 숫자형 값으로 이루어진 벡터 또는 튜플입니다. Array(T) 또는 Tuple(T)
반환 값 Linf 노름 또는 절댓값의 최댓값을 반환합니다. Float64 예시 기본 사용법
Query
SELECT LinfNorm((1, -2))
Response
┌─LinfNorm((1, -2))─┐
│                 2 │
└───────────────────┘

LinfNormalize

도입 버전: v21.11.0 주어진 벡터의 단위 벡터를 계산합니다(튜플의 원소는 좌표를 나타냅니다). L_{inf} 공간에서 최대 노름을 사용합니다. 구문
LinfNormalize(tuple)
별칭: normalizeLinf 인수
  • tuple — 숫자형 값으로 이루어진 튜플입니다. Tuple(T)
반환 값 단위 벡터를 반환합니다. Tuple(Float64) 예시 기본 사용법
Query
SELECT LinfNormalize((3, 4))
Response
┌─LinfNormalize((3, 4))─┐
│ (0.75,1)              │
└───────────────────────┘

LpDistance

도입 버전: v21.11.0 Lp 공간에서 두 점 사이의 거리(벡터의 원소가 좌표임)를 계산합니다(p-norm distance). 구문
LpDistance(vector1, vector2, p)
별칭: distanceLp 인수
  • vector1 — 첫 번째 벡터입니다. Tuple(T) 또는 Array(T)
  • vector2 — 두 번째 벡터입니다. Tuple(T) 또는 Array(T)
  • p — 거듭제곱 값입니다. 가능한 값: [1; inf) 범위의 실수입니다. UInt* 또는 Float*
반환 값 p-노름 거리를 반환합니다. Array 입력의 경우 요소 타입의 최소 공통 상위 타입(least common supertype)이 Float32 또는 BFloat16이면 Float32를 반환하고, 그렇지 않으면 Float64를 반환합니다. Tuple 입력의 경우 항상 Float64를 반환합니다. Float* 예시 기본 사용법
Query
SELECT LpDistance((1, 2), (2, 3), 3)
Response
┌─LpDistance((1, 2), (2, 3), 3)─┐
│            1.2599210498948732 │
└───────────────────────────────┘

LpNorm

도입 버전: v21.11.0 벡터의 p-노름을 계산합니다. 각 원소의 절댓값을 p제곱한 값들을 모두 더한 뒤, 그 합의 p제곱근을 구한 값입니다. 특수한 경우:
  • p=1이면 L1Norm(맨해튼 거리)와 동일합니다.
  • p=2이면 L2Norm(유클리드 거리)와 동일합니다.
  • p=∞이면 LinfNorm(최대 노름)와 동일합니다.
구문
LpNorm(vector, p)
별칭: normLp 인수
  • vector — 숫자 값으로 구성된 벡터 또는 튜플입니다. Tuple(T) 또는 Array(T)
  • p — 거듭제곱 값입니다. 가능한 값은 [1; inf) 범위의 실수입니다. UInt* 또는 Float*
반환 값 Lp-노름을 반환합니다. Float64 예시 기본 사용법
Query
SELECT LpNorm((1, -2), 2)
Response
┌─LpNorm((1, -2), 2)─┐
│   2.23606797749979 │
└────────────────────┘

LpNormalize

도입 버전: v21.11.0 주어진 벡터의 단위 벡터를 Lp 공간에서 계산합니다(튜플의 각 요소는 좌표를 의미하며, p-노름을 사용합니다). 구문
LpNormalize(tuple, p)
별칭: normalizeLp 인수
  • tuple — 숫자 값으로 이루어진 튜플입니다. Tuple(T)
  • p — 거듭제곱 값입니다. 가능한 값은 [1; inf) 범위의 모든 숫자입니다. UInt* 또는 Float*
반환 값 단위 벡터를 반환합니다. Tuple(Float64) 예시 사용 예시
Query
SELECT LpNormalize((3, 4), 5)
Response
┌─LpNormalize((3, 4), 5)──────────────────┐
│ (0.7187302630182624,0.9583070173576831) │
└─────────────────────────────────────────┘

cosineDistance

Introduced in: v21.11.0 두 벡터 간의 코사인 거리를 계산합니다(튜플의 요소는 좌표입니다). 반환 값이 작을수록 두 벡터는 더 유사합니다. 구문
cosineDistance(vector1, vector2)
별칭: distanceCosine 인수 반환 값 코사인 거리(코사인 유사도에서 1을 뺀 값)를 반환합니다. Array 입력의 경우, 요소 타입의 최소 공통 상위 타입이 Float32 또는 BFloat16이면 Float32를 반환하고, 그렇지 않으면 Float64를 반환합니다. Tuple 입력의 경우 항상 Float64를 반환합니다. Float* 예시 기본 사용법
Query
SELECT cosineDistance((1, 2), (2, 3));
Response
┌─cosineDistance((1, 2), (2, 3))─┐
│           0.007722123286332261 │
└────────────────────────────────┘

cosineDistanceTransposed

도입 버전: v26.1.0 두 점 사이의 근사 코사인 거리를 계산합니다(벡터의 값이 좌표입니다). 반환 값이 작을수록 벡터는 더 유사합니다. 구문
cosineDistanceTransposed(vector1, vector2, p)
별칭: distanceCosineTransposed 인수
  • vectors — 벡터. QBit(T, UInt64)
  • reference — 기준 벡터. Array(T)
  • p — 거리 계산에 사용할 각 벡터 요소의 비트 수(1부터 요소 비트 폭까지). 양자화 수준은 정밀도와 속도 간의 상충 관계를 제어합니다. 더 적은 비트를 사용하면 정확도는 낮아지지만 I/O 및 계산 속도는 빨라지고, 더 많은 비트를 사용하면 성능 저하를 감수하는 대신 정확도가 높아집니다. UInt
반환 값 근사 코사인 거리(코사인 유사도에서 1을 뺀 값)를 반환합니다. 반환 타입은 항상 Float64입니다. Float64 예시 기본 사용법
Query
CREATE TABLE qbit (id UInt32, vec QBit(Float64, 2)) ENGINE = Memory;
INSERT INTO qbit VALUES (1, [0, 1]);
SELECT cosineDistanceTransposed(vec, array(1, 2), 16) FROM qbit;
Response
┌─cosineDistanceTransposed([0, 1], [1, 2], 16)─┐
│                          0.10557281085638826 │
└──────────────────────────────────────────────┘
마지막 수정일 2026년 6월 10일