EXTERNAL_FUNCTIONS_HISTORY
EXTERNAL_FUNCTIONS_HISTORY (외부 함수 기록)
이 테이블 함수는 Snowflake 계정 전체에서 Snowflake가 호출한 외부 함수의 기록을 검색해요.
본문
참고: 이 함수는 최근 14일 이내의 활동에 대해서만 결과를 반환할 수 있어요.
구문
EXTERNAL_FUNCTIONS_HISTORY(
[ DATE_RANGE_START => <constant_date_expression> ]
[, DATE_RANGE_END => <constant_date_expression> ]
[, FUNCTION_SIGNATURE => '<string>' ] )
인자
모든 인자는 선택 사항이에요.
DATE_RANGE_START => constant_date_expression, DATE_RANGE_END => constant_date_expression
기록을 검색할 최근 2주 이내의 날짜/시간 범위예요.
-
종료 날짜를 지정하지 않으면 범위의 끝으로 CURRENT_DATE가 사용돼요.
-
시작 날짜를 지정하지 않으면 범위는
DATE_RANGE_END시작 10분 전에 시작돼요(즉 기본값은 이전 10분 기록을 보여줌). 예를 들어DATE_RANGE_END가 CURRENT_DATE이면 기본DATE_RANGE_START는 전날 오후 11:50이에요.
기록은 (지정된 범위의 길이에 따라) 5분, 1시간 또는 24시간 단위로 표시돼요.
범위가 최근 15일을 벗어나면 오류가 반환돼요.
FUNCTION_SIGNATURE => string
외부 함수 이름과 함수 인자의 데이터 타입을 지정하는 문자열이에요. (데이터 타입은 오버로드된 함수 이름을 구분해요.) 해당 함수에 대한 정보만 반환돼요.
서명(signature)을 작은따옴표 안에 넣으세요. 예를 들어:
function_signature => 'mydb.public.myfunction(integer, varchar)'
인자 이름이 아니라 인자 데이터 타입만 지정됨을 참고하세요.
서명을 지정하지 않으면 출력에는 시간 범위 내에 사용 중인 모든 외부 함수의 합계가 포함되고, 결과에서 다음 열들은 NULL을 표시해요.
-
FUNCTION_NAME.
-
ARGUMENTS.
-
FUNCTION_ENDPOINT_URL.
-
SOURCE_CLOUD.
-
SOURCE_REGION.
-
TARGET_CLOUD.
-
TARGET_REGION.
사용 시 참고 사항
-
ACCOUNTADMIN 역할 또는 MONITOR USAGE 전역 권한이 명시적으로 부여된 모든 역할에 대해서만 결과를 반환해요.
-
Information Schema 테이블 함수를 호출할 때, 세션에 사용 중인 INFORMATION_SCHEMA 스키마가 있거나 함수 이름 EXTERNAL_FUNCTIONS_HISTORY가 완전히 한정되어야 해요. 자세한 내용은 Snowflake Information Schema를 참고하세요.
-
ARGUMENTS라는 출력 열은 인자 데이터 타입뿐만 아니라 반환 데이터 타입도 포함해요. FUNCTION_SIGNATURE라는 입력 매개변수는 인자의 데이터 타입은 포함하지만 반환 데이터 타입은 포함하지 않아야 해요.
-
문제 해결 팁은 문제 해결(Troubleshooting)을 참고하세요.
출력
이 함수는 다음 열을 반환해요.
예시
계정에 대해 30분 범위의 기록을 5분 단위로 검색해요.
select *
from table(information_schema.external_functions_history(
date_range_start => to_timestamp_ltz('2020-05-24 12:00:00.000'),
date_range_end => to_timestamp_ltz('2020-05-24 12:30:00.000')));
계정의 단일 외부 함수에 대해 최근 12시간의 기록을 1시간 단위로 검색해요.
select *
from table(information_schema.external_functions_history(
date_range_start => dateadd('hour', -12, current_timestamp()),
function_signature => 'mydb.public.myfunction(integer, varchar)'));
계정에 대해 최근 14일의 기록을 1일 단위로 검색해요.
select *
from table(information_schema.external_functions_history(
date_range_start => dateadd('day', -14, current_date()),
date_range_end => current_date()));
계정의 지정된 함수에 대해 최근 14일의 기록을 1일 단위로 검색해요.
select *
from table(information_schema.external_functions_history(
date_range_start => dateadd('day', -14, current_date()),
date_range_end => current_date(),
function_signature => 'mydb.public.myfunction(integer, varchar)'));
문제 해결
증상: EXTERNAL_FUNCTIONS_HISTORY가 "...invalid identifier..."를 반환
가능한 원인:
함수 서명을 작은따옴표로 묶지 않았을 수 있어요. 예를 들어 다음은 따옴표를 포함하지 않아 잘못된 경우예요.
select *
from table(information_schema.external_functions_history(
function_signature => mydb.public.myfunction(integer, varchar)));
가능한 해결책:
함수 서명 주위에 따옴표를 추가해 고쳐요.
select *
from table(information_schema.external_functions_history(
function_signature => 'mydb.public.myfunction(integer, varchar)'));
증상: EXTERNAL_FUNCTIONS_HISTORY가 출력 행 하나만 반환하고 열 대부분이 NULL
가능한 원인:
함수 서명을 포함하지 않았을 수 있어요. 함수 서명을 지정하지 않으면 EXTERNAL_FUNCTION_HISTORY()는 INVOCATIONS, SENT ROWS 같은 열에 대해 집계 값을 반환하고, 함수 이름, 인자 목록 같은 열에 대해 NULL을 반환해요.
가능한 해결책:
한 함수에 대한 정보를 얻으려면 함수 서명을 포함하세요.
모든 함수에 대한 정보를 얻으려면 일부 열의 NULL 값이 올바르며 쿼리를 고칠 필요가 없어요.