카테고리:

Information Schema , 테이블 함수

EXTERNAL_FUNCTIONS_HISTORY

이 테이블 함수는 Snowflake 계정 전체에 대해 Snowflake에서 호출한 외부 함수의 기록을 검색합니다.

참고

이 함수는 지난 14일 내 활동에 대한 결과만 반환할 수 있습니다.

구문

EXTERNAL_FUNCTIONS_HISTORY(
      [ DATE_RANGE_START => <constant_date_expression> ]
      [, DATE_RANGE_END => <constant_date_expression> ]
      [, FUNCTION_SIGNATURE => '<string>' ] )
Copy

인자

모든 인자는 선택 사항입니다.

DATE_RANGE_START => constant_date_expression , . DATE_RANGE_END => constant_date_expression

지난 2주 이내의 기록을 검색할 날짜/시간 범위:

  • 종료 날짜가 지정되지 않은 경우, CURRENT_DATE 가 범위의 끝으로 사용됩니다.

  • 시작 날짜가 지정되지 않은 경우, 범위는 DATE_RANGE_END 시작 10분 전에 시작됩니다(즉, 기본값은 이전 10분의 기록을 표시하는 것입니다). 예를 들어 DATE_RANGE_ENDCURRENT_DATE 인 경우, 기본 DATE_RANGE_START전날 오후 11시 50분입니다.

기록은 5분, 1시간 또는 24시간 단위로 표시됩니다(지정된 범위의 길이에 따라 다름).

범위가 지난 15일을 벗어나면 오류가 반환됩니다.

FUNCTION_SIGNATURE => string

외부 함수 이름과 함수에 대한 인자의 데이터 타입을 지정하는 문자열입니다. (데이터 타입은 오버로드된 함수 이름을 구별합니다.) 해당 함수에 대한 정보만 반환됩니다.

예를 들어, 다음과 같이 작은따옴표 안에 서명을 넣습니다.

function_signature => 'mydb.public.myfunction(integer, varchar)'
Copy

인자 데이터 타입은 지정되지만, 인자 이름은 지정되지 않습니다.

서명이 지정되지 않은 경우, 출력에는 시간 범위 내에서 사용 중인 모든 외부 함수의 합계가 포함되고, 결과의 다음 열에는 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

행이 전송된 출처 클라우드 플랫폼입니다(예: GCP, Azure 또는 AWS).

SOURCE_REGION

TEXT

행이 전송된 출처 리전입니다(예: eu-west-1).

TARGET_CLOUD

TEXT

행이 전송된 대상 클라우드 플랫폼입니다(예: GCP, Azure 또는 AWS).

TARGET_REGION

TEXT

행이 전송된 대상 리전입니다(예: eu-west-1).

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

계정의 단일 외부 함수에 대한 지난 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)'));
Copy

계정의 지난 14일간의 기록을 1일 주기로 검색합니다.

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('day', -14, current_date()),
    date_range_end => current_date()));
Copy

계정의 지정된 함수에 대한 지난 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)'));
Copy

문제 해결

증상: EXTERNAL_FUNCTIONS_HISTORY가 “…유효하지 않은 식별자…”를 반환합니다

가능한 원인:

함수 서명을 작은따옴표로 묶지 않았을 수 있습니다. 예를 들어, 다음은 따옴표를 포함하지 않기 때문에 잘못된 것입니다.

select *
  from table(information_schema.external_functions_history(
    function_signature => mydb.public.myfunction(integer, varchar)));
Copy
가능한 해결책:

함수 서명 주위에 따옴표를 추가하여 이를 수정하십시오.

select *
  from table(information_schema.external_functions_history(
    function_signature => 'mydb.public.myfunction(integer, varchar)'));
Copy

증상: EXTERNAL_FUNCTIONS_HISTORY가 출력의 한 행만 반환하고, 많은 열이 NULL입니다

가능한 원인:

함수 서명을 포함하지 않았을 수 있습니다. 함수 서명을 지정하지 않으면 EXTERNAL_FUNCTION_HISTORY()는 INVOCATIONS, SENT ROWS 등과 같은 열에 대한 집계 값을 반환하고 함수 이름, 인자 목록 등과 같은 열에 대해서는 NULL을 반환합니다.

가능한 해결책:

한 함수에 대한 정보를 얻으려면 함수 서명을 포함하십시오.

모든 함수에 대한 정보를 얻으려는 경우, 일부 열에 대한 NULL 값이 정확하므로 쿼리를 수정할 필요가 없습니다.