- 카테고리:
테이블 함수 (Information Schema)
STORAGE_LIFECYCLE_POLICY_HISTORY¶
지난 14일 이내에 계정에 있는 :doc:`저장소 수명 주기 정책</user-guide/storage-management/storage-lifecycle-policies>`의 실행 기록을 반환합니다.
이 테이블 함수를 사용하여 실행 종료 시간의 내림차순으로 가장 최근의 정책 실행(완료되었거나 여전히 실행 중)을 쿼리합니다. 저장소 수명 주기 정책 모니터링에 대한 자세한 내용은 저장소 수명 주기 정책 모니터링 섹션을 참조하세요.
- 참고 항목:
CREATE STORAGE LIFECYCLE POLICY , ALTER STORAGE LIFECYCLE POLICY , DROP STORAGE LIFECYCLE POLICY
구문¶
오브젝트별
STORAGE_LIFECYCLE_POLICY_HISTORY(
REF_ENTITY_NAME => '<string>',
REF_ENTITY_DOMAIN => '<string>'
[, TIME_RANGE_START => <constant_expr> ]
[, TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <integer> ] )
저장소 수명 주기 정책별
STORAGE_LIFECYCLE_POLICY_HISTORY(
POLICY_NAME => '<string>'
[, TIME_RANGE_START => <constant_expr> ]
[, TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <integer> ] )
인자¶
참고
함수를 호출할 때 다음 옵션 중 하나를 지정합니다.
REF_ENTITY_NAME 및 REF_ENTITY_DOMAIN: 오브젝트(테이블)에 연결된 모든 저장소 수명 주기 정책의 실행 기록을 검색합니다.
POLICY_NAME: 이름으로 지정된 특정 저장소 수명 주기 정책의 실행 기록을 검색합니다.
필수:
REF_ENTITY_NAME => 'string'실행이 발생한 오브젝트(테이블)의 식별자입니다. 저장소 수명 주기 정책이 연결된 테이블의 이름을 예로 들 수 있습니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다. 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
REF_ENTITY_DOMAIN => 'string'저장소 수명 주기 정책이 연결된 오브젝트 유형입니다.
'Table': 저장소 수명 주기 정책이 테이블에 연결되도록 지정합니다.
POLICY_NAME => 'string'실행 기록을 검색할 저장소 수명 주기 정책의 식별자입니다. 정책 이름을 지정하지 않으면 REF_ENTITY_NAME 및 REF_ENTITY_DOMAIN에 대한 값을 지정해야 합니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
선택 사항:
TIME_RANGE_START => constant_expr, .TIME_RANGE_END => constant_expr정책 실행이 발생한 지난 14일 이내의 시간 범위입니다.
어떤 매개 변수도 지정하지 않으면 이 함수는 END_TIME의 내림차순으로 최신 정책 실행에 대한 행을 반환합니다(최대 RESULT_LIMIT).
RESULT_LIMIT => integer함수가 반환하는 최대 행 수입니다.
범위:
1~1000기본값:
1000.
반환¶
이 함수는 저장소 수명 주기 정책에 대한 실행 기록 레코드를 반환합니다. 각 레코드에는 정책 이름, 관련 테이블, 실행 상태, 시작 및 종료 시간, 실행 결과 등 정책 실행에 대한 정보가 포함됩니다.
자세한 열 설명은 출력 섹션을 참조하세요.
출력¶
이 함수는 다음 열을 반환합니다.
열 이름 |
데이터 타입 |
설명 |
|---|---|---|
POLICY_DB |
VARCHAR |
정책을 포함하는 데이터베이스의 이름입니다. |
POLICY_SCHEMA |
VARCHAR |
정책을 포함하는 스키마의 이름입니다. |
POLICY_NAME |
VARCHAR |
정책의 이름입니다. |
REF_ENTITY_DB |
VARCHAR |
정책이 연결된 오브젝트가 포함된 데이터베이스의 이름입니다. |
REF_ENTITY_SCHEMA |
VARCHAR |
정책이 연결된 오브젝트가 포함된 스키마의 이름입니다. |
REF_ENTITY_NAME |
VARCHAR |
정책이 연결된 오브젝트의 이름입니다. |
REF_ENTITY_DOMAIN |
VARCHAR |
정책이 연결된 오브젝트의 도메인(유형)입니다(예: |
STATE |
VARCHAR |
정책 실행 상태( |
START_TIME |
TIMESTAMP_LTZ |
정책 실행의 작업이 시작된 시점의 가장 빠른 타임스탬프입니다. |
END_TIME |
TIMESTAMP_LTZ |
정책 실행의 작업이 완료된 시점의 최신 타임스탬프입니다. |
EXECUTION_RESULT |
VARIANT |
정책 실행 중에 실행된 작업의 결과가 포함된 JSON 오브젝트입니다. 자세한 내용은 EXECUTION_RESULT 필드 섹션을 참조하십시오. |
POLICY_BODY |
VARCHAR |
저장소 수명 주기 정책의 본문입니다. |
EXECUTION_RESULT 필드¶
EXECUTION_RESULT 열은 정책 실행에서 각 작업 유형에 대한 중첩된 오브젝트를 포함하는 JSON 오브젝트입니다.
EXPIRE: 만료 작업(행 영구 삭제)에 대한 결과를 포함합니다.ARCHIVE: 아카이브 작업(아카이브 저장소로 행 이동)에 대한 결과를 포함합니다.EXPIRE_ARCHIVE: 만료 작업(아카이브 저장소에서 행 영구 삭제)에 대한 결과를 포함합니다.
각 중첩 오브젝트에는 다음 필드가 포함될 수 있으며, 여기서 특정 필드는 특정 작업 유형에 적용됩니다.
필드 이름 |
설명 |
|---|---|
START_TIME |
개별 작업 시작 타임스탬프입니다. |
END_TIME |
개별 작업 종료 타임스탬프입니다. |
STATE |
개별 작업 상태( |
ROWS_EXPIRED |
(EXPIRE 작업만 해당) 활성 저장소에서 영구적으로 삭제된 행 수입니다. |
ROWS_ARCHIVED |
(ARCHIVE 작업만 해당) 저장소에 아카이브된 행 수입니다. |
ROWS_EXPIRED_FROM_ARCHIVE |
(EXPIRE_ARCHIVE 작업만 해당) 아카이브 저장소에서 영구적으로 삭제된 행 수입니다. |
ERROR_MESSAGE_CODE |
작업 실행 중에 발생한 오류 유형을 식별하는 코드입니다. |
ERROR_MESSAGE |
자세한 오류 메시지입니다. |
예제 EXECUTION_RESULT 본문:
EXECUTION_RESULT =
{
“EXPIRE”: {
“start_time”: "Thu, 27 Jun 2024 02:57:57 -0700",
“end_time”: "Thu, 27 Jun 2024 02:58:01 -0700",
“state”: "SUCCEEDED",
“rows_expired”: 100,
“error_message_code”: null,
“error_message”: null
}
}
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 다음 권한 중 최소한 하나 이상 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
|---|---|---|
APPLY STORAGE LIFECYCLE POLICY |
전역 |
함수를 호출하는 역할에 이 권한이 있는 경우 Snowflake는 Snowflake 계정의 모든 정책 및 관련 테이블과 관련된 모든 정책 실행을 반환합니다. |
APPLY |
저장소 수명 주기 정책 |
정책에 대한 실행을 보려면 역할에 정책과 연결된 테이블에 대한 OWNERSHIP 권한도 있어야 합니다. 역할에 전역 APPLY STORAGE LIFECYCLE POLICY 권한이 있는 경우 이 권한이 필요하지 않습니다. |
OWNERSHIP |
테이블 |
정책에 대한 실행을 보려면 역할에 테이블과 연결된 정책에 대한 APPLY 권한도 있어야 합니다. 역할에 전역 APPLY STORAGE LIFECYCLE POLICY 권한이 있는 경우 이 권한이 필요하지 않습니다. |
사용법 노트¶
쿼리를 실행하는 역할에 부여된 권한에 따라 결과가 반환됩니다.
역할에 전역 APPLY STORAGE LIFECYCLE POLICY 권한이 있는 경우 Snowflake는 계정의 모든 정책 및 테이블 연결과 관련된 모든 정책 실행을 반환합니다.
역할에 특정 저장소 수명 주기 정책에 대한 APPLY 권한이 있는 경우 Snowflake는 함수를 호출하는 역할이 소유한 오브젝트에 대해서만 해당 정책에 대한 실행을 반환합니다.
역할에 정책에 대한 APPLY 권한 또는 OWNERSHIP 권한은 있지만 정책이 연결된 테이블에 대한 OWNERSHIP 권한이 없는 경우 Snowflake는 결과에 정책에 대한 정책 실행을 표시하지 않습니다.
역할에 정책 권한이 없지만 정책이 연결된 테이블에 대한 OWNERSHIP 권한이 있는 경우 Snowflake는 오류 메시지를 반환하고 정책 실행을 반환하지 않습니다.
예¶
REF_ENTITY_NAME 및 REF_ENTITY_DOMAIN 인자를 지정하여 ``t1``이라는 테이블에 대한 저장소 수명 주기 정책 기록을 검색합니다.
SELECT * FROM
TABLE (
INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY(
REF_ENTITY_NAME => 'my_db.my_schema.t1',
REF_ENTITY_DOMAIN => 'Table'
)
);
이름이 ``slp``인 정책이 연결되어 있는 각 테이블에 대한 저장소 수명 주기 정책 기록을 검색하고 결과를 100개 행으로 제한합니다.
SELECT * FROM
TABLE(
INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY(
POLICY_NAME => 'my_db.my_schema.slp',
RESULT_LIMIT => 100
)
);
지난 1시간 이내에 예약된 지정된 정책에 대한 가장 최근 실행 100개를 검색합니다.
SELECT * FROM
TABLE(
INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY(
POLICY_NAME => 'my_db.my_schema.slp',
TIME_RANGE_START => DATEADD('HOUR', -1, CURRENT_TIMESTAMP()),
RESULT_LIMIT => 100
)
);
30분 시간 범위 내에서 지정된 테이블에 대한 정책 실행 기록을 검색합니다.
SELECT * FROM
TABLE (
INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY(
REF_ENTITY_NAME => 'my_db.my_schema.t1',
REF_ENTITY_DOMAIN => 'Table',
TIME_RANGE_START => TO_TIMESTAMP_LTZ('2024-07-08 12:00:00.000 -0700'),
TIME_RANGE_END => TO_TIMESTAMP_LTZ('2024-07-08 12:30:00.000 -0700')
)
);