- カテゴリ:
PIPE_USAGE_HISTORY¶
このテーブル関数は、指定された日付範囲内で Snowpipe を使用してSnowflakeテーブルにロードされたデータの履歴をクエリするために使用できます。この関数は、Snowflakeアカウント全体のロードされたデータとクレジットの履歴を返します。
注釈
この関数は、過去14日以内のパイプアクティビティを返します。
構文¶
PIPE_USAGE_HISTORY(
[ DATE_RANGE_START => <constant_expr> ]
[, DATE_RANGE_END => <constant_expr> ]
[, PIPE_NAME => '<string>' ] )
引数¶
すべての引数はオプションです。
DATE_RANGE_START => constant_expr
、 .DATE_RANGE_END => constant_expr
データロード履歴を取得する、過去2週間以内の日付/時間範囲です。
終了日が指定されていない場合は、 CURRENT_DATE が範囲の終了として使用されます。
開始日が指定されていない場合、範囲は
DATE_RANGE_END
の開始の10分前に開始されます(つまり、デフォルトでは過去10分のデータロード履歴が表示されます)。たとえば、DATE_RANGE_END
が CURRENT_DATE の場合、デフォルトのDATE_RANGE_START
は 前日 の11:50 PM です。
履歴は5分、1時間、または24時間の増分で表示されます(指定された範囲の長さによる)。
範囲が過去15日間外の場合は、エラーが返されます。
PIPE_NAME => string
パイプを指定する文字列です。指定されたパイプを使用するデータロードのみが返されます。
パイプ名が指定されていない場合、結果の PIPE_NAME 列には NULLが表示されます。各行には、時間範囲内で使用中のすべてのパイプの合計が含まれます。
使用上の注意¶
ACCOUNTADMIN ロールまたは MONITOR USAGE グローバル権限が明示的に付与されているロールの結果のみを返します。
情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。
場合によっては、データ圧縮およびメンテナンスプロセスによってSnowflakeクレジットが消費されることがあります。たとえば、返された結果が、0 BYTES_INSERTED と0 FILES_INSERTED でいくつかのクレジットを消費したことを示す場合があります。これは、データがロードされてはいないものの、データの圧縮とメンテナンスのプロセスでクレジットが消費されていることを意味します。
出力¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
---|---|---|
START_TIME |
TIMESTAMP_LTZ |
データのロードが行われた指定時間範囲の開始です。 |
END_TIME |
TIMESTAMP_LTZ |
データのロードが行われた指定時間範囲の終了です。 |
PIPE_NAME |
TEXT |
データのロードに使用されるパイプの名前です。クエリでパイプ名が指定されていない場合、 NULL を表示します。各行には、時間範囲内で使用中のすべてのパイプの合計が含まれます。 |
CREDITS_USED |
TEXT |
START_TIME および END_TIME ウィンドウ中にSnowpipeデータのロードに対して請求されたクレジットの数。 |
BYTES_INSERTED |
NUMBER |
START_TIME および END_TIME ウィンドウ中にロードされたバイト数。 |
FILES_INSERTED |
NUMBER |
START_TIME および END_TIME ウィンドウ中にロードされたファイルの数。 |
例¶
アカウントの30分範囲のデータロード履歴を5分周期で取得します。
select * from table(information_schema.pipe_usage_history( date_range_start=>to_timestamp_tz('2017-10-24 12:00:00.000 -0700'), date_range_end=>to_timestamp_tz('2017-10-24 12:30:00.000 -0700')));
アカウントの過去12時間のデータロード履歴を1時間周期で取得します。
select * from table(information_schema.pipe_usage_history( date_range_start=>dateadd('hour',-12,current_timestamp()), pipe_name=>'mydb.public.mypipe'));
アカウントの過去14日間のデータロード履歴を1日周期で取得します。
select * from table(information_schema.pipe_usage_history( date_range_start=>dateadd('day',-14,current_date()), date_range_end=>current_date()));
アカウントの指定されたパイプの過去14日間のデータロード履歴を1日周期で取得します。
select * from table(information_schema.pipe_usage_history( date_range_start=>dateadd('day',-14,current_date()), date_range_end=>current_date(), pipe_name=>'mydb.public.mypipe'));