카테고리:

Information Schema , 테이블 함수

CORTEX_SEARCH_REFRESH_HISTORY

이 테이블 함수는 :doc:`Cortex Search Service </user-guide/snowflake-cortex/cortex-search/cortex-search-overview>`의 각 새로 고침(완료 및 실행 중)에 대한 정보를 반환합니다.

이 테이블 함수는 진행 중인 모든 새로 고침은 물론이고, 현재 시간으로부터 7일 이내의 DATA_TIMESTAMP가 있는 모든 새로 고침도 반환합니다.

구문

CORTEX_SEARCH_REFRESH_HISTORY(
  [ NAME => '<string>' ]
  [ , DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
)
Copy

인자

모든 인자는 선택 사항입니다. 인자가 제공되지 않으면 계정의 모든 Cortex Search Service에서 100회의 새로 고침이 반환됩니다.

NAME => string

Cortex Search Service의 이름입니다.

이름은 작은따옴표로 묶어야 하며 대/소문자를 구분하지 않습니다.

정규화되지 않은 이름(service_name), 부분적으로 정규화된 이름(schema_name.service_name) 또는 정규화된 이름(database_name.schema_name.service_name)을 지정할 수 있습니다.

오브젝트 이름 확인에 대한 자세한 내용은 오브젝트 이름 확인 섹션을 참조하십시오.

이 함수는 이 서비스에 대한 새로 고침을 반환합니다.

DATA_TIMESTAMP_START => constant_expr , . DATA_TIMESTAMP_END => constant_expr

새로 고침이 발생한 시간 범위(TIMESTAMP_LTZ 형식)입니다.

  • 시작 시간과 종료 시간이 모두 지정되지 않은 경우 기본 범위는 과거 날짜가 됩니다.

  • 종료 시간이 지정되지 않은 경우, CURRENT_TIMESTAMP 가 범위의 끝으로 사용됩니다.

  • 시작 시간이 지정되지 않은 경우, 범위는 DATA_TIMESTAMP_END가 시작되기 1일 전에 시작됩니다.

RESULT_LIMIT => integer

함수가 반환하는 최대 행 수를 지정하는 숫자입니다. 일치하는 행의 수가 이 제한보다 큰 경우, 지정된 제한까지는 가장 최근에 종료된 새로 고침(그리고 여전히 실행 중인 새로 고침)이 반환됩니다.

또한 필터를 적용하려면 모든 Cortex Search Service에 필터가 적용될 수 있도록 충분히 큰 RESULT_LIMIT 제한 값을 지정합니다.

범위: 1 ~ 10000

기본값: 100.

출력

이 함수는 다음 열을 반환합니다.

열 이름

데이터 타입

설명

NAME

TEXT

Cortex Search Service의 이름입니다.

SCHEMA_NAME

TEXT

Cortex Search Service가 포함된 스키마의 이름입니다.

DATABASE_NAME

TEXT

Cortex Search Service가 포함된 데이터베이스의 이름입니다.

STATE

TEXT

Cortex Search Service의 새로 고침 상태입니다. 다음 중 한 가지 상태일 수 있습니다.

  • EXECUTING: 새로 고침이 진행 중입니다.

  • SUCCEEDED: 새로 고침이 성공적으로 완료되었습니다.

  • FAILED: 새로 고침이 실행 중에 실패했습니다.

  • CANCELLED: 새로 고침이 실행 전에 취소되었습니다.

DATA_TIMESTAMP

TIMESTAMP_LTZ

새로 고침이 평가된 시점의 트랜잭션 타임스탬프입니다. (이는 실제 새로 고침 시간보다 약간 이전 시점일 수 있습니다.) 이 타임스탬프 이전에 도착한 기본 오브젝트의 모든 데이터는 현재 Cortex Search Service에 포함되어 있습니다.

REFRESH_START_TIME

TIMESTAMP_LTZ

새로 고침 작업이 시작된 시간입니다.

REFRESH_END_TIME

TIMESTAMP_LTZ

새로 고침이 완료된 시간입니다.

INDEX_PREPROCESSING_DURATION

NUMBER

인덱스 전처리 단계의 기간(밀리초)입니다.

INDEX_PREPROCESSING_QUERY_ID

TEXT

인덱스 전처리를 수행한 쿼리의 ID입니다.

INDEX_PREPROCESSING_STATISTICS

OBJECT

인덱스 전처리를 위한 다음 속성을 포함합니다.

  • compilationTimeMs: 쿼리 컴파일에 소요된 시간(밀리초)입니다.

  • executionTimeMs: 쿼리 실행에 소요된 시간(밀리초)입니다.

  • queuedTimeMs: 실행 전에 큐에서 소요된 시간(밀리초)입니다.

  • numInsertedRows: 삽입된 행의 수입니다.

  • numDeletedRows: 삭제된 행의 수입니다.

  • numCopiedRows: 변경되지 않은 채로 복사된 행의 수입니다.

  • numAddedPartitions: 추가된 파티션의 수입니다.

  • numRemovedPartitions: 제거된 파티션의 수입니다.

INDEXING_DURATION

NUMBER

인덱싱 단계의 지속 시간(밀리초)입니다.

INDEXING_QUERY_ID

TEXT

인덱싱을 수행한 쿼리의 ID입니다.

REFRESH_ACTION

TEXT

다음 중 하나:

  • NO_DATA - 기본 테이블에 새 데이터가 없습니다.

  • FULL - Cortex Search Service의 전체 새로 고침입니다.

  • INCREMENTAL - Cortex Search Service의 증분 새로 고침입니다.

REFRESH_TRIGGER

TEXT

다음 중 하나:

  • SCHEDULED - 서비스를 최신 상태로 유지하기 위한 일반적인 백그라운드 새로 고침입니다.

  • MANUAL - 사용자가 ALTERCORTEXSEARCHSERVICE를 사용하여 새로 고침이 트리거됩니다.

  • CREATION - DDL 문 생성 중에 수행된 새로 고침입니다.

TARGET_LAG_SEC

NUMBER

새로 고침이 발생한 시점에 Cortex Search Service의 목표 지연 값을 설명합니다.

WAREHOUSE

TEXT

새로 고침 작업에 사용되는 웨어하우스의 이름입니다.

ERROR

TEXT

새로 고침이 실패하면 오류 메시지가 표시되고, 그렇지 않으면 NULL이 표시됩니다.

사용법 노트

  • Information Schema 테이블 함수를 호출할 때 세션에는 사용 중인 INFORMATION_SCHEMA 스키마가 있거나 또는 함수 이름이 정규화되어야 합니다. 자세한 내용은 Snowflake Information Schema 섹션을 참조하십시오.

지난 한 주 동안 실패한 Cortex Search Service 새로 고침을 찾습니다.

SELECT
  data_timestamp,
  database_name,
  schema_name,
  name,
  state,
  error,
  refresh_trigger
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      DATA_TIMESTAMP_START => DATEADD(WEEK, -1, CURRENT_TIMESTAMP())
    )
  )
ORDER BY
  data_timestamp DESC
LIMIT 10;
Copy

특정 Cortex Search Service에 대한 최근 수동 새로 고침을 찾습니다.

SELECT
  data_timestamp,
  refresh_start_time,
  refresh_end_time,
  refresh_action,
  state
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      NAME => 'MYSVC',
      DATA_TIMESTAMP_START => DATEADD(DAY, -7, CURRENT_TIMESTAMP()),
      RESULT_LIMIT => 20
    )
  )
WHERE
  refresh_trigger = 'MANUAL'
ORDER BY
  data_timestamp DESC;
Copy

Cortex Search Service의 새로 고침 성능을 분석합니다.

SELECT
  name,
  data_timestamp,
  index_preprocessing_duration,
  indexing_duration,
  TIMEDIFF(SECOND, refresh_start_time, refresh_end_time) AS total_refresh_duration_sec,
  index_preprocessing_statistics:numInsertedRows AS rows_processed
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      NAME => 'MYSVC',
      DATA_TIMESTAMP_START => DATEADD(DAY, -30, CURRENT_TIMESTAMP())
    )
  )
WHERE
  state = 'SUCCEEDED'
ORDER BY
  data_timestamp DESC;
Copy