- カテゴリ:
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 PM です。
履歴は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 スキーマがある、 または 関数名 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 は出力の1行のみを返し、列の多くは NULL¶
- 考えられる原因:
関数の署名が含まれていない可能性があります。関数の署名を指定しない場合、 EXTERNAL_FUNCTION_HISTORY() は、 INVOCATIONS、 SENT ROWS などの列に集計値を返し、関数名、引数リストなどの列に NULL を返します。
- 考えられる解決策:
1つの関数の情報を取得する場合は、関数の署名を含めます。
すべての関数の情報を取得する場合は、一部の列の NULL 値が正しいため、クエリを修正する必要はありません。