- カテゴリ:
COPY_HISTORY¶
このテーブル関数を使用して、さまざまなディメンションに沿って過去14日間のSnowflakeデータのロード履歴をクエリできます。この関数は、 Snowpipe を使用して、 COPY INTO <テーブル> ステートメントと連続データロードの両方のロードアクティビティを返します。テーブル関数は、 LOAD_HISTORY ビュー の10,000行の制限を回避します。結果は、 SQL 述語を使用してフィルタリングできます。
また、 Snowsight でデータロードの詳細を表示することもできます。 コピー履歴を使用してデータロードのアクティビティをモニターする をご参照ください。
構文¶
COPY_HISTORY(
TABLE_NAME => '<string>'
, START_TIME => <constant_expr>
[, END_TIME => <constant_expr> ] )
引数¶
必須:
TABLE_NAME => 'string'
テーブル名を指定する文字列です。
START_TIME => constant_expr
過去14日以内のタイムスタンプ( TIMESTAMP_LTZ 形式)です。ロードイベントを取得するための時間範囲の開始をマークします。
オプション:
END_TIME => constant_expr
過去14日以内のタイムスタンプ( TIMESTAMP_LTZ 形式)です。ロードイベントを取得するための時間範囲の終了をマークします。
デフォルト: CURRENT_TIMESTAMP。
使用上の注意¶
一括データロードの場合、この関数は、Snowflakeアカウントに対する MONITOR 権限を持つロール、 または スキーマとデータベースに対する USAGE 権限とテーブルに対する任意の権限を持つロールの結果を返します。
Snowpipeデータロードの場合、この関数は、Snowflakeアカウントに対する MONITOR 権限を持つロール、 または パイプを含むスキーマおよびデータベースに対する USAGE 権限とテーブルに対する任意の権限を持つロールの結果を返します。さらに、パイプ上の MONITOR が使用できない場合、パイプ名、パイプテーブル名、パイプスキーマ名、パイプカタログ名は NULL としてマスクされます。
Information Schemaテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。
このビューは、14日を上限としたコピー履歴を返します。この制限を回避するには、 COPY_HISTORY ビュー (Account Usage)を使用します。
関数には、エラーの有無にかかわらず完了するまで実行された COPY INTO コマンドのみが含まれます。
テーブルオブジェクトをドロップまたは再作成すると、テーブルへの一括データロード(COPY INTO <テーブル> ステートメント)の履歴データがドロップされます。
パイプオブジェクトをドロップまたは再作成すると、パイプを使用したSnowpipeデータロードの履歴データがドロップされます。
出力¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
---|---|---|
FILE_NAME |
TEXT |
ソースファイルの名前とファイルへの相対パス。 |
STAGE_LOCATION |
TEXT |
ソースファイルが配置されているステージの名前。 |
LAST_LOAD_TIME |
TIMESTAMP_LTZ |
ファイルのロードが終了した日時。 |
ROW_COUNT |
NUMBER |
ソースファイルからロードされた行の数。 |
ROW_PARSED |
NUMBER |
ソースファイルから解析された行数(STATUS が |
FILE_SIZE |
NUMBER |
ロードされたソースファイルのサイズ(単位: バイト)。 |
FIRST_ERROR_MESSAGE |
TEXT |
ソースファイルの最初のエラー。 |
FIRST_ERROR_LINE_NUMBER |
NUMBER |
最初のエラーの行番号。 |
FIRST_ERROR_CHARACTER_POS |
NUMBER |
最初のエラー文字の位置。 |
FIRST_ERROR_COLUMN_NAME |
TEXT |
最初のエラーの列名。 |
ERROR_COUNT |
NUMBER |
ソースファイル内のエラー行の数。 |
ERROR_LIMIT |
NUMBER |
エラーの数がこの制限に達した場合、中止します。 |
STATUS |
TEXT |
ステータス: |
TABLE_CATALOG_NAME |
TEXT |
ターゲットテーブルが存在するデータベースの名前。 |
TABLE_SCHEMA_NAME |
TEXT |
ターゲットテーブルが存在するスキーマの名前。 |
TABLE_NAME |
TEXT |
ターゲットテーブルの名前。 |
PIPE_CATALOG_NAME |
TEXT |
パイプが存在するデータベースの名前。 |
PIPE_SCHEMA_NAME |
TEXT |
パイプが存在するスキーマの名前。 |
PIPE_NAME |
TEXT |
ロードパラメーターを定義するパイプの名前。 COPY ステートメントのロードの場合は |
PIPE_RECEIVED_TIME |
TIMESTAMP_LTZ |
パイプ経由でロードされたファイルの INSERT リクエストが受信された日時。 COPY ステートメントロードの場合は、 |
例¶
過去1時間のすべてのロードのアクティビティに関する詳細を取得します。
select * from table(information_schema.copy_history(TABLE_NAME=>'MYTABLE', START_TIME=> DATEADD(hours, -1, CURRENT_TIMESTAMP())));