カテゴリ:

情報スキーマテーブル関数

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 => 定数日付式. DATE_RANGE_END => 定数日付式

履歴を取得する、過去2週間以内の日付/時間範囲。

  • 終了日が指定されていない場合は、 CURRENT_DATE が範囲の終了として使用されます。

  • 開始日が指定されていない場合、範囲は DATE_RANGE_END の開始10分前に開始します(デフォルトでは過去10分間の履歴を表示)。たとえば、 DATE_RANGE_ENDCURRENT_DATE の場合、デフォルトの DATE_RANGE_START前日 の11:50 PM です。

履歴は5分、1時間、または24時間の増分で表示されます(指定された範囲の長さによる)。

範囲が過去15日間外の場合は、エラーが返されます。

FUNCTION_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 スキーマがある、 または 関数名 EXTERNAL_FUNCTIONS_HISTORY が完全に修飾されている必要があります。詳細については、 情報スキーマ をご参照ください。

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

アカウントの単一の外部関数について、過去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)'));