일괄 Cortex Search¶
Batch Cortex Search 함수는 Cortex Search Service에 쿼리 배치를 제출할 수 있는 테이블 함수입니다. 이는 엔터티 확인, 중복 제거 또는 클러스터링 작업과 같이 처리량이 높아야 하는 오프라인 사용 사례를 위해 설계되었습니다..
CORTEX_SEARCH_BATCH 함수를 사용하여 Cortex Search Service에 제출된 작업은 추가 컴퓨팅 리소스를 활용하여 대화형(Python, REST 또는 SEARCH_PREVIEW) API 검색 쿼리 표면보다 높은 처리량(초당 쿼리)을 제공합니다.
구문¶
CORTEX_SEARCH_BATCH 테이블 함수를 사용하여 일괄 모드에서 Cortex Search Service를 쿼리하려면 다음 구문을 사용합니다.
매개 변수¶
CORTEX_SEARCH_BATCH 함수는 다음 매개 변수를 지원합니다.
service_name(문자열, 필수)쿼리할 Cortex Search Service의 정규화된 이름입니다.
- ``query``(문자열, 선택 사항)
서비스 검색을 위한 쿼리 문자열이 포함된 열입니다.
- ``multi_index_query``(베리언트, 선택 사항)
서비스 인덱스에 대해 검색할 하나 이상의 벡터 또는 키워드 쿼리 입력을 지정하는 오브젝트입니다. 이 매개 변수를 구성하는 방법에 대한 자세한 내용은 multi_index_query 섹션을 참조하세요.
참고
성능상의 이유로, ``multi_index_query``는 현재 쿼리 배열에서 최대 하나의 벡터 인덱스 항목을 지원합니다.
- ``filter``(베리언트, 선택 사항)
검색 결과에 적용할 필터 오브젝트가 포함된 열입니다.
- ``limit``(정수, 선택 사항)
쿼리당 반환할 최대 결과 수입니다. 기본값: 10.
- ``options``(베리언트, 선택 사항)
선택적 쿼리별 설정이 있는 VARIANT 오브젝트가 포함된 열입니다. 지원되는 최상위 키는 다음과 같습니다.
scoring_config``(오브젝트, 선택 사항): 대화형 Cortex Search 쿼리를 위한 ``scoring_config매개 변수(Python, REST 또는SEARCH_PREVIEW)와 동일한 구조입니다. 이를 사용하여 해당 행의 일괄 쿼리에 대한 순위를 사용자 지정합니다. Cortex Search Scoring 사용자 지정하기 섹션을 참조하십시오.replicas(정수, 선택 사항): 해당 행의 일괄 쿼리를 제공하는 검색 색인의 복사본 수입니다. 기본값: 2. 값이 높을수록 처리량이 향상될 수 있으며, 서비스 비용은 복제본 수에 비례하여 증가합니다.``experimental``(오브젝트, 선택 사항): 실험적 또는 미리 보기 검색 동작을 위해 예약된 오브젝트입니다. 필드와 의미 체계는 예고 없이 변경될 수 있습니다. Snowflake 설명서 또는 지원에서 특정 키를 설정하도록 지시하는 경우에만 사용하세요.
참고
query, multi_index_query, filter 중 하나 이상을 지정해야 합니다.
사용법 노트¶
일괄 검색 함수의 처리량은 쿼리된 Cortex Search Service에서 인덱싱된 데이터의 양과 검색 쿼리의 복잡성에 따라 달라질 수 있습니다. 소수의 쿼리에서 함수를 실행하여 특정 워크로드의 처리량을 측정합니다. 일반적으로 필터 조건이 더 많은 대규모 서비스에 대한 쿼리는 처리량이 더 낮습니다.
일괄 검색 함수의 처리량, 즉 초당 처리되는 검색 쿼리 수는 쿼리에 사용되는 웨어하우스의 크기에 영향을 받지 않습니다.
일괄 검색은 각 작업을 처리하기 위해 전용 리소스를 가동하므로 시작 대기 시간이 추가로 발생합니다. 2,000개 미만의 쿼리를 실행해야 하는 경우 일반적으로 일괄 검색이 아닌 대화형 Cortex Search API(Python 또는 REST API)를 사용하여 더 빠른 결과를 얻을 수 있습니다 .
대화형 Cortex Search API와 달리, 일괄 검색 함수는 현재 서비스가 일시 중단된 서비스를 쿼리할 수 있습니다.
단일 Cortex Search Service는 대화형 쿼리 성능이나 처리량의 저하 없이 대화형 및 일괄 모드에서 동시에 쿼리할 수 있습니다. 대화형 쿼리와 일괄 쿼리를 제공하는 데는 별도의 컴퓨팅 리소스가 사용됩니다.
비용 고려 사항¶
일괄 검색에는 3가지 비용 구성 요소가 있습니다.
- 서비스 비용
시작 시간을 제외하고 검색 색인 데이터의 크기 및 일괄 검색 작업의 기간을 기준으로 한 요금입니다.
options의replicas값도 반영합니다(기본값 2). 위의replicas옵션을 참조하세요.- 쿼리 임베딩 비용
입력 쿼리의 결과로 포함된 토큰 수에 대한 요금입니다. 대화형 Cortex Search와 달리, 쿼리 임베딩은 일괄 검색에 무료가 아닙니다.
- 가상 웨어하우스 비용
일괄 작업을 실행하는 데 사용되는 가상 웨어하우스 컴퓨팅에 대한 요금입니다.
사용량 추적은 CORTEX_SEARCH_BATCH_QUERY_USAGE_HISTORY Account Usage 뷰를 참조하세요. Cortex Search 비용에 대한 자세한 내용은 비용 고려 사항 섹션을 참조하세요.
리전 가용성¶
일괄 검색은 Cortex Search를 사용할 수 있는 모든 리전에서 사용할 수 있습니다. 지원되는 리전의 전체 목록은 리전 가용성 섹션을 참조하세요.
사용 예¶
이 예에서는 사용자가 제출한 주문 양식의 제품을 “골든” 제품 카탈로그와 일치시킵니다. CORTEX_SEARCH_BATCH 호출은 options 를 사용하므로 기본 검색 쿼리 접두사 없이 임베딩이 계산됩니다. 벡터 임베딩을 위한 쿼리 접두사 비활성화 섹션을 참조하세요. 결과 품질에 대한 영향을 평가한 경우에만 해당 설정을 사용합니다.
다음 예제에서는 multi_index_query``를 사용하여 원시 텍스트 대신 미리 계산된 임베딩을 쿼리 입력으로 제출합니다. 여기서 소스 테이블 ``my_db.my_schema.product_embeddings``에는 미리 계산된 벡터가 있는 열 ``embedding``이 포함되어 있으며, Cortex Search Service ``my_db.my_schema.golden_product_service``는 자체 벡터 가져오기(BYOV) 구성으로 생성되었습니다. ``multi_index_query 구성에 대한 자세한 내용은 :ref:`multi_index_query <label-cortex_multi_index_search>`를 참조하세요.