- 카테고리:
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외부 함수 이름과 함수에 대한 인자의 데이터 타입을 지정하는 문자열입니다. (데이터 타입은 오버로드된 함수 이름을 구별합니다.) 해당 함수에 대한 정보만 반환됩니다.
예를 들어, 다음과 같이 작은따옴표 안에 서명을 넣습니다.
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라는 입력 매개 변수는 인자의 데이터 타입을 포함해야 하지만, 반환 데이터 타입은 포함하지 않아야 합니다.
문제 해결 팁은 증상: EXTERNAL_FUNCTIONS_HISTORY가 “…유효하지 않은 식별자…”를 반환합니다 를 참조하십시오.
출력¶
이 함수는 다음 열을 반환합니다.
열 이름 |
데이터 타입 |
설명 |
|---|---|---|
START_TIME |
TIMESTAMP_LTZ |
기록을 반환할 지정된 시간 범위의 시작입니다. |
END_TIME |
TIMESTAMP_LTZ |
기록을 반환할 지정된 시간 범위의 끝입니다. |
NAME |
TEXT |
기록을 반환할 함수의 이름입니다. |
ARGUMENTS |
TEXT |
인자 및 반환 값의 데이터 타입입니다. 인자의 데이터 타입은 오버로드된 함수 이름을 구별합니다. |
FUNCTION_ENDPOINT_URL |
TEXT |
함수가 호출하는 HTTPS 엔드포인트입니다. 이는 일반적으로 프록시 서비스입니다. |
SOURCE_CLOUD |
TEXT |
행이 전송된 출처 클라우드 플랫폼입니다(예: |
SOURCE_REGION |
TEXT |
행이 전송된 출처 리전입니다(예: |
TARGET_CLOUD |
TEXT |
행이 전송된 대상 클라우드 플랫폼입니다(예: |
TARGET_REGION |
TEXT |
행이 전송된 대상 리전입니다(예: |
INVOCATIONS |
NUMBER |
START_TIME 및 END_TIME 기간 동안 원격 서비스가 호출된 횟수입니다. 여기에는 재시도가 포함됩니다(예: 일시적인 네트워크 문제로 인한 경우). |
SENT_ROWS |
NUMBER |
START_TIME 및 END_TIME 기간 동안 외부 엔드포인트로 전송된 행 수입니다. |
RECEIVED_ROWS |
NUMBER |
START_TIME 및 END_TIME 기간 동안 외부 엔드포인트로부터 수신된 행 수입니다. |
SENT_BYTES |
NUMBER |
START_TIME 및 END_TIME 기간 동안 외부 엔드포인트로 전송된 바이트 수입니다. |
RECEIVED_BYTES |
NUMBER |
START_TIME 및 END_TIME 기간 동안 외부 엔드포인트로부터 수신된 바이트 수입니다. |
예¶
계정에 대한 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가 “…유효하지 않은 식별자…”를 반환합니다¶
- 가능한 원인:
함수 서명을 작은따옴표로 묶지 않았을 수 있습니다. 예를 들어, 다음은 따옴표를 포함하지 않기 때문에 잘못된 것입니다.
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 값이 정확하므로 쿼리를 수정할 필요가 없습니다.