검색 최적화 비용 추정 및 관리

검색 최적화 비용 추정 및 관리

검색 최적화 서비스는 스토리지와 컴퓨팅 두 리소스 모두의 비용에 영향을 줍니다.

  • 스토리지 리소스: 검색 최적화 서비스는 검색 최적화가 활성화된 각 테이블에 대해 공간이 필요한 검색 액세스 경로(search access path) 데이터 구조를 생성합니다. 검색 액세스 경로의 스토리지 비용은 다음을 포함한 여러 요인에 따라 달라집니다.

테이블의 고유 값(distinct values) 수. 극단적인 경우 모든 열이 검색 액세스 경로를 사용하는 데이터 타입이고 각 열의 모든 데이터 값이 고유하다면, 필요한 스토리지는 원본 테이블 크기만큼이 될 수 있습니다. 그러나 일반적으로 크기는 원본 테이블 크기의 약 1/4입니다.

  • 컴퓨팅 리소스:

  • 테이블에 검색 최적화를 추가하면 초기 빌드 단계 중에 리소스를 소모합니다.

  • 검색 최적화 서비스를 유지 관리하는 것도 리소스가 필요합니다. 높은 변경율(churn, 즉 테이블에서 많은 양의 데이터가 변경되는 경우)이 있을 때 리소스 소모는 더 높습니다. 이러한 비용은 수집된(추가되거나 변경된) 데이터의 양에 대략 비례합니다. 삭제도 어느 정도 비용이 듭니다. 자동 클러스터링 은 검색 최적화가 있는 테이블에서 쿼리 지연 시간을 개선하는 동시에 검색 최적화의 유지 관리 비용을 추가로 증가시킬 수 있습니다. 테이블의 변경율이 높다면, 자동 클러스터링을 활성화하고 검색 최적화를 구성하는 것이 테이블을 검색 최적화만으로 구성하는 것보다 더 높은 유지 관리 비용을 초래할 수 있습니다. Snowflake는 실제 사용된 리소스에 대해서만 계정에 요금을 부과해 효율적인 크레딧 사용을 보장합니다. 과금은 1초 단위로 계산됩니다. 컴퓨팅 시간당 비용은 Snowflake Service Consumption Table 의 "Serverless Feature Credit Table"을 참고하세요. 검색 최적화 서비스를 활성화하면 서비스 사용 비용을 확인 할 수 있습니다.

팁

Snowflake는 이 기능을 천천히 시작하는 것(즉, 처음에는 몇 개의 테이블에만 검색 최적화를 추가)과 비용과 이점을 밀접하게 모니터링하는 것을 권장합니다.

검색 최적화 비용 추정

테이블에 검색 최적화를 추가하고 특정 열에 대한 검색 최적화를 구성하는 비용을 추정하려면 SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS 함수를 사용하세요.

일반적으로 비용은 다음에 비례합니다.

  • 기능이 활성화된 열의 수와 해당 열의 고유 값 수.
  • 이러한 테이블에서 변경되는 데이터 양.

중요

SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS 함수가 반환하는 비용 추정치는 최선의 노력(best effort)입니다. 실제 실현 비용은 추정 비용에서 최대 50%(또는 드물게는 몇 배)까지 달라질 수 있습니다.

  • 빌드 및 스토리지 비용 추정치는 테이블의 일부 행을 샘플링하는 데 기반합니다.
  • 유지 관리 비용 추정치는 테이블의 최근 생성, 삭제, 업데이트 활동에 기반합니다.

검색 최적화 비용 보기

웹 인터페이스 또는 SQL을 사용해 검색 최적화 서비스의 실제 청구 비용을 볼 수 있습니다. 컴퓨트 비용 탐색 을 참고하세요.

검색 최적화 비용 절감

검색 최적화를 활성화할 테이블과 열을 신중하게 선택 함으로써 검색 최적화 서비스의 비용을 제어할 수 있습니다.

또한 검색 최적화 서비스의 비용을 줄이기 위해:

  • Snowflake는 테이블에 대한 DML 작업을 배치 처리할 것을 권장합니다.

DELETE: 테이블이 가장 최근 기간(예: 가장 최근의 하루 또는 일주일 또는 한 달)의 데이터를 저장한다면, 오래된 데이터를 삭제해 테이블을 정리(trim)할 때 검색 최적화 서비스가 업데이트를 반영해야 합니다. 어떤 경우에는 삭제 빈도를 낮추면(예: 매시간 대신 매일) 비용을 줄일 수 있습니다.

  • INSERT, UPDATE, MERGE: 테이블에서 이러한 유형의 DML 문을 배치 처리하면 검색 최적화 서비스의 유지 관리 비용을 줄일 수 있습니다.

  • 전체 테이블을 재클러스터링(recluster)한다면, 재클러스터링 전에 그 테이블에 대해 SEARCH OPTIMIZATION 속성을 제거 한 다음, 재클러스터링 후에 SEARCH OPTIMIZATION 속성을 다시 추가 하는 것을 고려하세요.

  • 부분 문자열 검색(ON SUBSTRING(col)) 또는 VARIANT(ON EQUALITY(variant_col))에 대해 검색 최적화를 활성화하기 전에, 비용을 추정하려면 SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS 를 호출하세요. 이러한 검색 방법의 초기 빌드와 유지 관리는 계산 집약적일 수 있으므로 성능과 비용 사이의 트레이드오프를 평가해야 합니다.

더 알아보기 (Learn more)