- カテゴリ:
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 でいくつかのクレジットを消費したことを示す場合があります。これは、データがロードされてはいないものの、データの圧縮とメンテナンスのプロセスでクレジットが消費されていることを意味します。
Snowflakeは、Snowpipeファイル料金と同等の料金で、外部テーブルおよび外部ステージでのディレクトリテーブルの自動更新通知分を請求します。PIPE_USAGE_HISTORY 関数をクエリするか、Account Usage PIPE_USAGE_HISTORY ビュー を調べると、外部テーブルとディレクトリテーブルの自動更新通知によって発生する料金を見積もることができます。自動更新パイプは NULL パイプ名の下にリストされることに注意してください。Information Schemaテーブル関数 AUTO_REFRESH_REGISTRATION_HISTORY を使用して、テーブルレベル/ステージレベルの粒度で外部テーブルの自動更新通知履歴を表示することもできます。
自動更新通知の課金を回避するには、外部テーブルとディレクトリテーブルの手動更新を実行します。外部テーブルの場合は、 ALTER EXTERNAL TABLE <名前> REFRESH ... ステートメントを使用して、外部テーブルを外部ストレージに手動で同期できます。ディレクトリテーブルの場合は、 ALTER STAGE <名前> REFRESH ... ステートメントを使用して、ディレクトリを外部ストレージに手動で同期できます。
出力¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
---|---|---|
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'));