Cortex 검색 서비스 수정하기

Cortex 검색 서비스 수정하기 (ALTER CORTEX SEARCH SERVICE)

이 기능은 중화인민공화국에서는 사용할 수 없어요.

기존 Cortex Search service의 속성을 일시 중지, 재개 또는 수정해요.

출처: 문서

본문

Syntax

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ] 
  { SUSPEND | RESUME } [ { INDEXING | SERVING } ]

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  REFRESH

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  SET
  [ TARGET_LAG = { ' { seconds | minutes | hours | days }' } ]
  [ WAREHOUSE =  ]
  [ PRIMARY KEY = (  [, ... ] ) ]
  [ FULL_INDEX_BUILD_INTERVAL_DAYS =  ]
  [ REQUEST_LOGGING = { TRUE | FALSE } ]
  [ AUTO_SUSPEND = {  | NULL } ]
  [ COMMENT = '' ]

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  UNSET
  [ PRIMARY KEY ]

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  SET ATTRIBUTES (  [, ... ] )

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  UNSET ATTRIBUTES

ALTER CORTEX SEARCH SERVICE 
  ADD SCORING PROFILE [ IF NOT EXISTS ] 
  

ALTER CORTEX SEARCH SERVICE 
  DROP SCORING PROFILE [ IF EXISTS ] 

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  SET TAG  = '' [ ,  = '' ... ]

ALTER CORTEX SEARCH SERVICE [ IF EXISTS ]  UNSET TAG  [ ,  ... ]

Parameters

name

변경할 Cortex Search 서비스의 식별자를 지정합니다.

식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자는 대소문자를 구분합니다.

자세한 내용은 Identifier requirements를 참조하세요.

{ SUSPEND | RESUME } ...

Cortex Search 서비스의 인덱싱, 서빙 또는 둘 다를 일시 중지하거나 재개합니다. 다음 키워드 중 하나를 지정하여 일시 중지하거나 재개할 레이어를 나타낼 수 있습니다.

INDEXING

Cortex Search 서비스의 인덱싱 레이어를 나타내는 대상입니다. 자세한 내용은 를 참조하세요.

SERVING

Cortex Search 서비스의 서빙 레이어를 나타내는 대상입니다. 자세한 내용은 를 참조하세요.

어느 키워드도 지정하지 않으면 인덱싱 레이어와 서빙 레이어가 모두 일시 중지되거나 재개됩니다. Cortex Search 서비스를 일시 중지하거나 재개하려면 OPERATE 권한이 필요합니다.

수동으로 서빙을 일시 중지하는 대신 비활성 기간 후에 자동으로 일시 중지하려면 아래 SET 절에 설명된 AUTO_SUSPEND 속성을 사용하세요. 자세한 내용은 를 참조하세요.

REFRESH

Cortex Search 서비스의 수동 새로 고침을 트리거합니다. 인덱싱 서비스는 원본 데이터의 변경 사항을 즉시 확인하고 새 행이나 변경된 행을 처리합니다.

SET ...

Cortex Search 서비스에 설정할 하나 이상의 속성 또는 매개변수를 설정합니다.

TARGET_LAG = 'num { seconds | minutes | hours | days }'

Cortex Search 서비스 콘텐츠가 소스 쿼리에 지정된 기본 테이블의 업데이트보다 얼마나 지연될 수 있는지 최대 시간을 지정합니다.

WAREHOUSE = warehouse_name

소스 쿼리를 실행하고, 검색 인덱스를 구축하고, TARGET_LAG 대상에 따라 인덱스를 최신 상태로 유지하는 데 사용할 웨어하우스를 지정합니다.

FULL_INDEX_BUILD_INTERVAL_DAYS = num

primary keys가 정의된 Cortex Search 서비스의 전체 인덱스 재구축 간격(일 단위)을 지정합니다. 이 속성은 기본 키가 설정된 서비스에만 적용됩니다.

기본 키가 있는 서비스는 최적화된 새로 고침 경로를 사용합니다. 각 새로 고침 주기(TARGET_LAG에 따라 결정됨)는 모든 데이터를 다시 임베딩하는 대신 마지막 새로 고침 이후 변경된 행만 처리합니다. 시간이 지나면 이러한 증분 업데이트로 인해 조각난 인덱스 세그먼트가 누적됩니다. 전체 인덱스 재구축은 이러한 세그먼트를 단일 최적화 인덱스로 압축합니다. 재구축 시 변경되지 않은 데이터는 다시 임베딩하지 않습니다.

이 값은 소프트 대상입니다. 서비스 대상 지연, 서비스 소스 데이터의 변경률, 전체 서비스 크기와 같은 요인에 따라 서빙 성능을 최적화하기 위해 전체 인덱스 재구축이 지정된 간격보다 더 자주 발생할 수 있습니다.

REQUEST_LOGGING = \{ TRUE | FALSE \}

Cortex Search 서비스에 대한 요청 로깅을 활성화하거나 비활성화합니다. 활성화하면 서비스가 검색 요청에 대한 정보를 기록하며, 이를 모니터링 및 분석 목적으로 쿼리할 수 있습니다. 자세한 내용은 Monitor Cortex Search requests를 참조하세요.

기본값: FALSE

AUTO_SUSPEND = { num_seconds | NULL }

쿼리 비활성 시간(초)을 설정합니다. 이 시간이 지나면 서비스의 서빙 컴퓨트가 자동으로 일시 중지됩니다. 인덱싱에는 영향을 주지 않고 서빙에만 영향을 줍니다. 서비스는 쿼리를 수신하면 자동으로 재개됩니다. 최소값: 1800(30분). 자동 일시 중지를 비활성화하려면 NULL로 설정하세요. 자세한 내용은 를 참조하세요.

COMMENT = 'string_literal'

검색 서비스에 주석을 추가하거나 기존 주석을 덮어씁니다.

PRIMARY KEY = (column_name, column_name, ...)

Cortex Search 서비스의 primary key columns 집합을 수정합니다. 지정된 열의 값 조합은 각 행에 대해 고유해야 하며, 기본 키 값이 중복된 행은 결과 검색 인덱스에서 무시됩니다. 기본 키 열은 TEXT 데이터 타입이어야 합니다. 기본 키 변경 사항은 소스 데이터의 다음 변경 이후에 적용됩니다.

UNSET ...

Cortex Search 서비스에 대해 지정된 하나 이상의 속성 또는 매개변수를 설정 해제합니다.

PRIMARY KEY

Cortex Search 서비스에 이전에 설정된 primary key columns을 모두 제거합니다.

SET ATTRIBUTES (col_name [, ...])

Cortex Search 서비스의 속성(필터) 열을 지정합니다. 속성 열을 사용하면 검색 쿼리에서 filter 매개변수를 사용하여 검색 결과를 필터링할 수 있습니다. 열 이름은 서비스 소스 쿼리에 있어야 하며 OBJECT 타입일 수 없습니다. 변경 사항은 TARGET_LAG 설정과 기본 소스 데이터의 변경 여부에 따라 다음 인덱스 새로 고침 이후에 적용됩니다. 변경 사항을 즉시 적용하려면 ALTER CORTEX SEARCH SERVICE ... REFRESH를 사용하여 수동 새로 고침을 트리거하세요.

UNSET ATTRIBUTES

Cortex Search 서비스에서 모든 속성 열을 제거합니다. 변경 사항은 TARGET_LAG 설정과 기본 소스 데이터의 변경 여부에 따라 다음 인덱스 새로 고침 이후에 적용됩니다. 변경 사항을 즉시 적용하려면 ALTER CORTEX SEARCH SERVICE ... REFRESH를 사용하여 수동 새로 고침을 트리거하세요.

ADD SCORING PROFILE profile_name [ IF NOT EXISTS ] scoring_profile

Cortex Search 서비스에 명명된 스코어링 프로필을 추가합니다. 스코어링 프로필은 검색 결과에 대한 사용자 지정 순위 동작을 정의합니다. 자세한 내용은 를 참조하세요.

profile_name

추가할 스코어링 프로필의 이름을 지정합니다. 지정된 이름의 프로필이 이미 있으면 IF NOT EXISTS를 지정하지 않는 한 오류가 발생합니다. 기존 프로필을 수정하려면 먼저 DROP SCORING PROFILE을 사용하여 삭제하세요.

scoring_profile


The scoring profile definition in JSON string format. The schema is the same as a scoring configuration specified directly in a search query using the scoring_config parameter. See for syntax and examples.

DROP SCORING PROFILE [ IF EXISTS ] profile_name

Drops a named scoring profile from the Cortex Search service.

profile_name

The name of the scoring profile to drop.

SET TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' ... ]

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

tag 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 를 참조하세요.

UNSET TAG tag_name [ , tag_name ... ]

Cortex Search 서비스에서 설정 해제할 하나 이상의 태그를 지정합니다:

  • tag_name [ , tag_name ... ]

단일 ALTER 문으로 여러 속성이나 매개 변수를 설정 해제하려면 각 속성이나 매개 변수를 쉼표로 구분하세요.

속성이나 매개 변수를 설정 해제할 때는 속성 또는 매개 변수 이름만 지정하세요(위 구문에서 값을 지정하라고 명시하지 않은 경우). 값을 지정하면 오류가 반환됩니다.

액세스 제어 요구 사항

권한 개체
OWNERSHIP 속성을 수정하려는 Cortex Search 서비스.
OPERATE 다음 중 하나를 수행하려는 Cortex Search 서비스:
- 검색 인덱싱 일시 중지
- 검색 인덱싱 재개
- 검색 인덱스 새로 고침
- 쿼리 웨어하우스 설정 또는 변경
- 대상 지연 시간 설정 또는 변경
APPLY Cortex Search 서비스에 태그를 설정할 수 있게 합니다.

스키마의 개체를 조작하려면 상위 데이터베이스에 대한 권한이 하나 이상 필요하고 상위 스키마에 대한 권한도 하나 이상 필요합니다.

지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 를 참조하세요.

securable objects에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반적인 정보는 Overview of Access Control를 참조하세요.

사용 참고 사항

고객은 Snowflake 서비스를 사용할 때 메타데이터에 개인 데이터(User 개체에 대한 데이터 제외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터가 입력되지 않도록 해야 합니다. 자세한 내용은 Metadata fields in Snowflake를 참조하세요.

INDEXING 및 SERVING 상태

Cortex Search 서비스에는 RUNNING 또는 SUSPENDED 상태일 수 있는 두 가지 별도 프로세스, 즉 INDEXING과 SERVING이 있습니다.

  • INDEXING은 Cortex Search Service의 인덱싱 계층을 나타내는 대상입니다. RUNNING 상태에서는 서비스의 소스 쿼리가 참조하는 기본 테이블의 변경 사항이 검색 인덱스의 일부로 저장된 구체화된 데이터의 새로 고침을 촉발합니다. 이러한 새로 고침은 웨어하우스 컴퓨팅 및 벡터 임베딩 형태의 비용이 발생합니다. SUSPENDED 상태에서는 기본 테이블의 변경 사항이 새로 고침을 촉발하지 않으며 Cortex Search Service의 쿼리 가능한 데이터에도 반영되지 않습니다.

    인덱싱이 소스 테이블의 데이터 보존 기간보다 오래 일시 중지된 경우, 인덱싱이 재개될 때 서비스가 소스 데이터의 변경 사항을 감지하지 못할 수 있으며 재생성이 필요할 수 있습니다. 자세한 내용은 를 참조하세요.

  • SERVING은 Cortex Search Service의 서빙 계층을 나타내는 대상입니다. 이 대상은 서비스를 쿼리 가능하게 하려면 RUNNING 상태여야 합니다. 일시 중지 상태에서는 Cortex Search Service가 Cortex Search의 서빙 비용 형태로 청구되지 않습니다.

자세한 비용 고려 사항은 를 참조하세요.

Cortex Search Service의 INDEXING 및 SERVING 계층은 독립적으로 관리할 수 있습니다. 예를 들어, INDEXING이 일시 중지된 동안 SERVING이 실행 중인 상태라면 서비스를 계속 쿼리할 수 있습니다. 그러나 INDEXING이 재개되고 새로 고침이 성공적으로 완료될 때까지 서비스는 TARGET_LAG와 관계없이 기본 데이터의 변경 사항을 반영하지 않습니다.

반대로, SERVING이 일시 중지된 동안 INDEXING이 실행 중이면 인덱스는 계속 새로 고쳐집니다. SERVING이 재개되면 쿼리 가능하게 되는 로드된 인덱스는 가장 최신의 소스 데이터를 반영합니다.

SERVING 및 INDEXING 키워드가 모두 지정되지 않은 경우, 지정된 작업은 두 대상 모두에 영향을 미칩니다.

수동 새로 고침

Cortex Search Service를 수동으로 새로 고치면 서비스는 즉시 소스 데이터의 변경 사항을 확인하고 필요에 따라 인덱스를 업데이트합니다. 가능한 한 최신 결과가 필요할 때, 예를 들어 중요한 문서를 방금 추가하거나 업데이트했고 이를 사용자에게 즉시 제공하려는 경우 Cortex Search Service의 수동 새로 고침을 트리거하세요. 또한 업무 시작 시간과 같은 특정 시점에 결과가 항상 최신 상태가 되도록 수동 새로 고침을 사용할 수도 있습니다.

ALTER CORTEX SEARCH SERVICE ... REFRESH 명령 또는 Snowsight를 사용하여 Cortex Search Service의 수동 새로 고침을 트리거할 수 있습니다.

기본 키

Cortex Search Service의 기본 키 열을 변경하면 향후 새로 고침에만 영향을 미칩니다. 즉, 기본 키 변경 사항은 소스 데이터의 다음 변경 이후에 적용됩니다.

예제

다음 예제는 mysvc라는 Cortex Search 서비스에서 사용하는 웨어하우스를 my_new_wh로 변경합니다.

ALTER CORTEX SEARCH SERVICE mysvc SET WAREHOUSE = my_new_wh;

다음 예제는 mysvc라는 Cortex Search 서비스의 주석(comment) 필드를 new_comment로 설정합니다.

ALTER CORTEX SEARCH SERVICE mysvc SET COMMENT = 'new_comment';

다음 예제는 mysvc라는 Cortex Search 서비스의 대상 새로 고침 지연 시간을 1 hour로 변경합니다.

ALTER CORTEX SEARCH SERVICE mysvc SET TARGET_LAG = '1 hour';

다음 예제는 mysvc라는 Cortex Search 서비스의 기본 키 열을 regionagent_id로 설정합니다.

ALTER CORTEX SEARCH SERVICE mysvc SET PRIMARY KEY = (region, agent_id);

다음 예제에서는 mysvc라는 Cortex Search 서비스의 primary key columns을 지워요:

ALTER CORTEX SEARCH SERVICE mysvc UNSET PRIMARY KEY;

다음 예제에서는 mysvc라는 Cortex Search 서비스의 attribute columns을 categoryregion으로 설정해요:

ALTER CORTEX SEARCH SERVICE mysvc SET ATTRIBUTES (category, region);

다음 예제에서는 mysvc라는 Cortex Search 서비스에서 모든 attribute columns을 제거해요:

ALTER CORTEX SEARCH SERVICE mysvc UNSET ATTRIBUTES;

다음 예제에서는 mysvc라는 Cortex Search 서비스에 대해 요청 로깅을 활성화해요:

ALTER CORTEX SEARCH SERVICE mysvc SET REQUEST_LOGGING = TRUE;

다음 예제에서는 mysvc라는 Cortex Search 서비스의 서빙을 일시 중단해요:

ALTER CORTEX SEARCH SERVICE mysvc SUSPEND SERVING;

다음 예제에서는 mysvc라는 Cortex Search 서비스에서 auto-suspend를 활성화해서, 쿼리 활동이 30분 동안 없으면 서빙을 일시 중단하도록 설정해요:

ALTER CORTEX SEARCH SERVICE mysvc SET AUTO_SUSPEND = 1800;

다음 예제에서는 mysvc라는 Cortex Search 서비스를 수동으로 새로 고쳐요:

ALTER CORTEX SEARCH SERVICE mysvc REFRESH;

다음 예제에서는 mysvc라는 Cortex Search 서비스에 태그를 설정해요:

ALTER CORTEX SEARCH SERVICE mysvc
  SET TAG cost_center = 'v1', cost_center2 = 'v2';

다음 예제에서는 mysvc라는 Cortex Search 서비스에서 cost_center 태그의 설정을 해제해요:

ALTER CORTEX SEARCH SERVICE mysvc UNSET TAG cost_center;

더 알아보기 (Learn more)