벡터 데이터 타입¶
이 항목에서는 벡터 데이터 타입에 대해 설명합니다.
데이터 타입¶
Snowflake는 단일 벡터 데이터 타입 VECTOR를 지원합니다.
참고
VECTOR 데이터 타입은 SQL 에서만 지원되며, Python Connector 및 Snowpark Python 라이브러리에서만 지원됩니다. 다른 언어는 지원되지 않습니다.
VECTOR¶
VECTOR 데이터 타입을 사용하면 Snowflake는 벡터를 효율적으로 인코딩하고 처리합니다. 이 데이터 타입은 RAG 기반 애플리케이션과 같은 의미 체계 벡터 검색 및 검색 애플리케이션과 벡터 처리 애플리케이션의 벡터에 대한 일반적인 연산을 지원합니다.
VECTOR 타입을 지정하려면 다음 구문을 사용합니다.
여기서
type은 32비트 정수 또는 32비트 부동소수점 숫자일 있는 요소의 Snowflake 데이터 타입입니다.다음 값 중 하나를 지정할 수 있습니다.
INT
FLOAT
참고
이러한 유형은 각각
NUMBER(38, 0)및 배정밀도 IEEE 754 부동 소수점 숫자를 나타내는 :doc:`/sql-reference/data-types-numeric`에 설명된 동일한 이름의 유형과 다릅니다.dimension은 벡터의 차원(길이)입니다. 이는 최대값이 4096인 양의 정수 값이어야 합니다.
참고
직접 벡터 비교(예: v1 < v2)는 바이트 단위 사전식이며, 결정론적이지만 숫자 비교에서 기대할 수 있는 결과를 생성하지 않습니다. 따라서 ORDERBY 절에서 VECTOR 열을 사용할 수 있지만 벡터 비교를 위해서는 공급자가 제공하는 벡터 유사성 함수 를 사용하십시오.
다음 정의는 유효한 벡터 정의의 예입니다.
256개의 32비트 부동 소수점 값 벡터를 정의합니다.
16개의 32비트 정수 값의 벡터를 정의합니다.
다음 정의는 유효하지 않은 벡터 정의의 예입니다.
잘못된 값 유형을 사용하는 벡터 정의:
잘못된 벡터 크기를 사용하는 벡터 정의:
벡터 변환¶
이 섹션에서는 VECTOR 값으로 변환하는 방법과 VECTOR 값에서 변환하는 방법을 설명합니다. 형변환에 대한 자세한 내용은 데이터 타입 변환 섹션을 참조하십시오.
값을 VECTOR 값으로 형변환하기¶
VECTOR 값은 다음 타입에서 명시적으로 캐스팅할 수 있습니다.
VECTOR 값에서 값 변환하기¶
VECTOR 값은 다음 타입으로 명시적으로 캐스팅할 수 있습니다.
VECTOR 및 ARRAY 타입 간에 변환할 때, 배열의 요소 수는 벡터의 차원과 일치해야 하며, 배열 요소의 데이터 타입은 벡터의 데이터 타입과 일치해야 합니다. 예를 들어, VECTOR(FLOAT, 3) 값을 세 FLOAT 값의 ARRAY로 변환할 수 있지만 두 FLOAT 값의 ARRAY 또는 세 INT 값의 ARRAY로 변환할 수는 없습니다.
벡터 데이터 로딩 및 언로딩¶
VECTOR 열은 직접 로딩 및 언로딩이 지원되지 않습니다. VECTOR 열의 경우 데이터를 ARRAY로 로드 및 언로드한 다음 사용할 때 VECTOR로 형변환해야 합니다. ARRAY 데이터 타입을 로드하고 언로드하는 방법을 알아보려면 Introduction to loading semi-structured data 섹션을 참조하십시오. 벡터의 일반적인 사용 사례는 벡터 임베딩 을 생성하는 것입니다.
다음 예제는 VECTOR 열이 있는 테이블을 이름이 mystage 인 내부 스테이지로 언로드하는 방법을 보여줍니다.
다음 예제는 스테이지에서 테이블을 로드한 다음 ARRAY 열을 VECTOR 열로 형변환하는 방법을 보여줍니다.
예¶
상수 ARRAY를 형변환하여 VECTOR를 구성합니다.
VECTOR 데이터 타입의 열을 추가합니다.
제한 사항¶
VECTOR 데이터에는 다음과 같은 제한 사항이 적용됩니다.
VECTOR 데이터 타입은 언어 지원이 제한되어 있습니다. 이 표에 표시되지 않은 언어는 지원되지 않습니다.
Snowflake 기능
Python
SQL
UDFs
✔
✔
UDTFs
✔
✔
드라이버/커넥터
✔
✔
Snowpark API
✔
벡터는 VARIANT 열에서 지원되지 않습니다.
벡터는 클러스터링 키 로 지원되지 않습니다.
서버 측 바인딩은 지원되지 않습니다. 즉, Snowflake 드라이버를 통해 VECTOR 열에 쓸 때는 쿼리를 실행하기 전에 쿼리에서 VECTOR 값을 형변환해야 합니다.
벡터는 하이브리드 테이블 에서 허용되지만 기본 키나 보조 인덱스 키로는 허용되지 않습니다.
VECTOR 데이터 타입은 다음 Snowflake 기능과 함께 사용할 수 없습니다.