APPLICATION_CALLBACK_HISTORY
APPLICATION_CALLBACK_HISTORY
APPLICATION_CALLBACK_HISTORY는 Snowflake 계정에서 Snowflake Native Apps의 콜백 호출(callback invocation) 이력을 반환하는 정보 스키마 테이블 함수예요. 각 행은 콜백 유형, 실행 모드, 상태, 오류 정보를 포함한 한 번의 콜백 호출을 나타내요.
본문
문법
APPLICATION_CALLBACK_HISTORY(
[ APPLICATION_NAME => '<application_name>' ]
[ , CALLBACK_TYPE => '<callback_manifest_name>' ]
[ , LIMIT => <number> ]
)
선택적 인자
APPLICATION_NAME — 콜백 이력을 가져올 앱의 이름이에요. 지정하지 않으면 계정의 모든 앱에 대한 이력을 반환해요.
CALLBACK_TYPE — 매니페스트 파일에 정의된 콜백 유형이에요. 지정하지 않으면 지정된 앱의 모든 콜백 유형에 대한 이력을 반환해요.
LIMIT — 반환할 최대 행 수예요. 기본값은 100이고 최대값은 10000이에요.
사용 노트
- 정보 스키마 테이블 함수를 호출할 때 세션에 INFORMATION_SCHEMA 스키마가 사용 중이거나 함수 이름이 정규화(fully-qualified)되어야 해요. 자세한 내용은 Snowflake Information Schema 문서를 참고하세요.
- 호출자가 앱 자체가 아니라면 QUERY_TEXT와 ERROR_MESSAGE 열은 편집(redact)돼요.
- 이 함수를 사용하려면 다음 중 하나가 필요해요.
- 앱에 대한 OWNERSHIP 권한.
- 앱에 대한 MONITOR 권한.
- 앱 자체로 실행.
출력 열
| 열 이름 | 데이터 타입 | 설명 |
|---|---|---|
| TYPE | VARCHAR | 매니페스트 파일에 정의된 콜백 유형. |
| EXECUTION_MODE | VARCHAR | 콜백의 실행 모드. 가능한 값: SYNC, ASYNC. |
| APPLICATION_NAME | VARCHAR | 콜백을 정의하는 앱의 이름. |
| STATE | VARCHAR | 콜백 실행 상태. Callback states 참고. |
| STARTED_ON | TIMESTAMP_LTZ | 콜백이 호출된 타임스탬프. |
| COMPLETED_ON | TIMESTAMP_LTZ | 완료 타임스탬프. 콜백이 아직 완료되지 않았다면 NULL. |
| TRIGGERING_QUERY_ID | VARCHAR | 콜백을 트리거한 SQL 문의 쿼리 ID. SQL 쿼리로 트리거되지 않았다면(예: 업그레이드 완료 후 트리거) NULL. |
| QUERY_ID | VARCHAR | 콜백 프로시저 실행의 쿼리 ID. 콜백이 아직 완료되지 않았다면 NULL. |
| QUERY_TEXT | VARCHAR | 프로시저 호출 SQL 텍스트. 콜백이 아직 완료되지 않았다면 NULL. 호출자가 앱 자체가 아니면 편집됨. |
| ERROR_CODE | VARCHAR | 오류 코드. STATE가 FAILED 또는 ABORTED가 아니면 NULL. |
| ERROR_MESSAGE | VARCHAR | 오류 메시지. STATE가 FAILED 또는 ABORTED가 아니면 NULL. 호출자가 앱 자체가 아니면 편집됨. |
콜백 상태 (Callback states)
다음 표는 STATE 열의 가능한 값들을 설명해요.
| 상태 | 적용 대상 | 설명 |
|---|---|---|
| QUEUED | Async 전용 | 콜백이 예약되기를 기다리는 중. |
| SCHEDULED | Async 전용 | 콜백이 예약됐고 실행을 기다리는 중. |
| EXECUTING | Async / Sync | 콜백 프로시저가 현재 실행 중. |
| COMPLETED | Async / Sync | 콜백 프로시저가 성공적으로 완료됨. |
| FAILED | Async / Sync | 콜백 프로시저가 검증(예: 잘못된 시그니처) 또는 실행에 실패함. |
| ABORTED | Async 전용 | 내부 스케줄링 오류 발생. 이 상태는 지원(intervention)이 필요함. |
예제
특정 앱의 콜백 이력을 가져와요:
SELECT *
FROM TABLE(
INFORMATION_SCHEMA.APPLICATION_CALLBACK_HISTORY(
APPLICATION_NAME => 'my_app'));
특정 콜백 유형의 콜백 이력을 사용자 지정 한도로 가져와요:
SELECT *
FROM TABLE(
INFORMATION_SCHEMA.APPLICATION_CALLBACK_HISTORY(
APPLICATION_NAME => 'my_app',
CALLBACK_TYPE => 'after_configuration_change',
LIMIT => 100));