APPLICATION_CALLBACK_HISTORY

APPLICATION_CALLBACK_HISTORY

APPLICATION_CALLBACK_HISTORY는 Snowflake 계정에서 Snowflake Native Apps의 콜백 호출(callback invocation) 이력을 반환하는 정보 스키마 테이블 함수예요. 각 행은 콜백 유형, 실행 모드, 상태, 오류 정보를 포함한 한 번의 콜백 호출을 나타내요.

출처: Snowflake SQL Reference

본문

문법

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));

더 알아보기 (Learn more)