CREATE CORTEX SEARCH SERVICE¶
새로운 Cortex Search Service 를 만들거나 기존 서비스를 대체합니다.
구문¶
CREATE [ OR REPLACE ] CORTEX SEARCH SERVICE [ IF NOT EXISTS ] <name>
ON <search_column>
ATTRIBUTES <col_name> [ , ... ]
WAREHOUSE = <warehouse_name>
TARGET_LAG = '<num> { seconds | minutes | hours | days }'
[ EMBEDDING_MODEL = <embedding_model_name> ]
[ INITIALIZE = { ON_CREATE | ON_SCHEDULE } ]
[ COMMENT = '<comment>' ]
AS <query>;
필수 매개 변수¶
name
Cortex Search Service의 식별자(즉, 이름)를 지정하는 문자열로, 서비스가 생성되는 스키마에 대해 고유해야 합니다.
또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
ON search_column
검색하려는 기본 테이블의 텍스트 열을 지정합니다. 이 열은 텍스트 값이어야 합니다.
ATTRIBUTES col_name [ , ... ]
서비스에 쿼리를 실행할 때 필터링할 기본 테이블에서 쉼표로 구분된 열 목록을 지정합니다. 명시적 열거 또는 와일드카드(
*
)를 통해 원본 쿼리에 특성 열을 포함해야 합니다.WAREHOUSE = warehouse_name
원본 쿼리 실행, 검색 인덱스 작성, TARGET_LAG 대상별로 새로 고침 상태를 유지하는 데 사용할 웨어하우스를 지정합니다.
TARGET_LAG = 'num { seconds | minutes | hours | days }'
Cortex Search Service 콘텐츠가 원본 쿼리에 지정된 기본 테이블에 대한 업데이트보다 지연되어야 하는 최대 시간을 지정합니다.
선택적 매개 변수¶
EMBEDDING_MODEL = <embedding_model_name>
Cortex Search Service에서 사용할 임베딩 모델을 지정하는 선택적 매개 변수입니다. 이 속성은 Cortex Search Service를 생성한 후에는 변경할 수 없습니다. 속성을 수정하려면 CREATE OR REPLACE CORTEX SEARCH SERVICE 명령으로 Cortex Search Service를 다시 만듭니다.
일부 임베딩 모델은 특정 클라우드 리전에서만 Cortex Search를 사용할 수 있습니다. 리전을 기준으로 한 모델별 가용성 목록은 Cortex Search 리전별 가용성 섹션을 참조하십시오.
각 모델마다 처리되는 입력 토큰 백만 개당 비용이 다르게 발생할 수 있습니다. 백만 토큰당 크레딧으로 표시되는 각 함수의 비용은 Snowflake 서비스 사용 테이블 을 참조하십시오.
EMBEDDING_MODEL
을 지정하지 않으면 기본 모델이 사용됩니다. 기본 모델은snowflake-arctic-embed-m-v1.5
입니다.INITIALIZE
Cortex Search Service의 초기 새로 고침 동작을 지정합니다. 이 속성은 서비스를 만든 후에는 변경할 수 없습니다. 속성을 수정하려면 CREATE OR REPLACE CORTEX SEARCH SERVICE 명령으로 Cortex Search Service를 대체합니다.
ON_CREATE
생성 시 Cortex Search Service를 동기식으로 새로 고칩니다. 이 새로 고침에 실패하면 서비스 생성이 실패하고 오류 메시지가 표시됩니다.
ON_SCHEDULE
다음 예약된 새로 고침 시 Cortex Search Service를 새로 고칩니다.
새로 고침 예약 프로세스가 실행되면 Cortex Search Service가 채워집니다. Cortex Search Service가 생성될 때 데이터가 채워지지 않습니다. 서비스를 쿼리하려고 하면 예약된 첫 번째 새로 고침이 아직 수행되지 않았기 때문에 다음 오류가 표시될 수 있습니다.
Your service has not yet been loaded into our serving system. Please retry your request in a few minutes.
기본값:
ON_CREATE
COMMENT = 'comment'
서비스에 대한 설명을 지정합니다.
AS query
서비스가 생성되는 기본 테이블을 정의하는 쿼리를 지정합니다.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
---|---|
CREATE CORTEX SEARCH SERVICE |
검색 서비스를 만들려는 스키마입니다. |
SELECT |
새로운 서비스에 대해 쿼리하려는 테이블 및 뷰입니다. |
USAGE |
서비스를 새로 고치는 데 사용하려는 웨어하우스입니다. |
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
주의
Cortex Search Service를 만들려면 역할에 Cortex LLM Functions를 사용하는 데 필요한 것과 동일한 권한이 있어야 합니다. Cortex LLM Functions 필수 권한 섹션을 참조하십시오.
사용법 노트¶
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
Cortex Search Service 원본 쿼리를 실행하는 데 사용되는 웨어하우스의 크기는 각 새로 고침의 속도와 비용에 영향을 미칩니다. 웨어하우스가 클수록 빌드 및 새로 고침 시간이 줄어듭니다. 그러나 이 미리 보기 중에는 Cortex Search Service에 대해 MEDIUM보다 크지 않은 웨어하우스 크기를 사용하는 것이 좋습니다.
다른 워크로드를 방해하지 않도록 각 Cortex Search Service 전용 웨어하우스를 사용하는 것이 좋습니다.
검색 인덱스는 create 문의 일부로 개발되므로, 더 큰 데이터 세트의 경우 CREATE CORTEX SEARCH SERVICE 문을 완료하는 데 시간이 더 오래 걸릴 수 있습니다.
OR REPLACE
및IF NOT EXISTS
절은 상호 배타적입니다. 두 문자를 같은 문에 함께 사용할 수 없습니다.CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.
예¶
snowflake-arctic-embed-l-v2.0
임베딩 모델을 사용하여 mysvc
라는 Cortex Search Service를 만듭니다.
CREATE OR REPLACE CORTEX SEARCH SERVICE mysvc
ON transcript_text
ATTRIBUTES region,agent_id
WAREHOUSE = mywh
TARGET_LAG = '1 hour'
EMBEDDING_MODEL = 'snowflake-arctic-embed-l-v2.0'
AS (
SELECT
transcript_text,
date,
region,
agent_id
FROM support_db.public.transcripts_etl
);
TARGET_LAG
기간(1시간)이 지난 후 첫 번째 새로 고침이 실행되도록 예약된 mysvc
라는 Cortex Search Service를 만듭니다.
CREATE OR REPLACE CORTEX SEARCH SERVICE mysvc
ON transcript_text
ATTRIBUTES region
WAREHOUSE = mywh
TARGET_LAG = '1 hour'
INITIALIZE = ON_SCHEDULE
AS SELECT * FROM support_db.public.transcripts_etl;