カテゴリ:

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

STORAGE_LIFECYCLE_POLICY_HISTORY

過去14日間のアカウントでの ストレージライフサイクルポリシー の実行履歴を返します。

このテーブル関数を使用して、実行終了時刻の降順で最新のポリシー実行(完了または実行中)をクエリします。ストレージライフサイクルポリシーの監視については、ストレージライフサイクルポリシーの監視 をご参照ください。

こちらもご参照ください。

CREATE STORAGE LIFECYCLE POLICYALTER STORAGE LIFECYCLE POLICYDROP STORAGE LIFECYCLE POLICY

構文

オブジェクトごと

STORAGE_LIFECYCLE_POLICY_HISTORY( REF_ENTITY_NAME => '<string>', REF_ENTITY_DOMAIN => '<string>' [, TIME_RANGE_START => <constant_expr> ] [, TIME_RANGE_END => <constant_expr> ] [, RESULT_LIMIT => <integer> ] ) 
Copy

ストレージライフサイクルポリシーごと

STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => '<string>' [, TIME_RANGE_START => <constant_expr> ] [, TIME_RANGE_END => <constant_expr> ] [, RESULT_LIMIT => <integer> ] ) 
Copy

引数

注釈

関数を呼び出す場合、以下のオプションのいずれかを指定します。

  • REF_ENTITY_NAME および REF_ENTITY_DOMAIN:オブジェクト(テーブル)にアタッチされているすべてのストレージライフサイクルポリシーの実行履歴を取得します。

  • POLICY_NAME:名前で指定された特定のストレージライフサイクルポリシーの実行履歴を取得します。

必須:

REF_ENTITY_NAME => 'string'

実行が発生したオブジェクト(テーブル)の識別子(例:ストレージライフサイクルポリシーがアタッチされているテーブルの名前)。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。

REF_ENTITY_DOMAIN => 'string'

ストレージライフサイクルポリシーがアタッチされているオブジェクト型。

  • 'Table':ストレージライフサイクルポリシーがテーブルにアタッチされていることを指定します。

POLICY_NAME => 'string'

実行履歴を取得するストレージライフサイクルポリシーの識別子。ポリシー名を指定しない場合は、REF_ENTITY_NAMEおよびREF_ENTITY_DOMAINの値を指定する必要があります。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

オプション:

TIME_RANGE_START => constant_expr, . TIME_RANGE_END => constant_expr

ポリシー実行が発生した過去14日以内の時間範囲。

どちらのパラメータも指定されていない場合、関数はEND_TIMEの降順で最新のポリシー実行の行(RESULT_LIMITまで)を返します。

RESULT_LIMIT => integer

関数が返す行の最大数。

範囲: 11000

デフォルト: 1000

戻り値

この関数は、ストレージライフサイクルポリシーの実行履歴記録を返します。各記録には、ポリシー名、関連テーブル、実行状態、開始時刻と終了時刻、実行結果など、ポリシーの実行に関する情報が含まれています。

列の詳しい説明については 出力 をご参照ください。

出力

この関数は、次の列を返します。

列名

データ型

説明

POLICY_DB

VARCHAR

ポリシーが含まれるデータベースの名前。

POLICY_SCHEMA

VARCHAR

ポリシーが含まれるスキーマの名前。

POLICY_NAME

VARCHAR

ポリシーの名前。

REF_ENTITY_DB

VARCHAR

ポリシーがアタッチされているオブジェクトを含むデータベースの名前。

REF_ENTITY_SCHEMA

VARCHAR

ポリシーがアタッチされているオブジェクトを含むスキーマの名前。

REF_ENTITY_NAME

VARCHAR

ポリシーがアタッチされているオブジェクトの名前。

REF_ENTITY_DOMAIN

VARCHAR

ポリシーがアタッチされているオブジェクトのドメイン(型)(例: Table)。

STATE

VARCHAR

ポリシー実行の状態: QUEUEDEXECUTINGSUCCEEDEDFAILED

START_TIME

TIMESTAMP_LTZ

ポリシー実行内の任意のタスクが開始されたときの最も古いタイムスタンプ。

END_TIME

TIMESTAMP_LTZ

ポリシー実行内の任意のタスクが完了したときの最も直近のタイムスタンプ。

EXECUTION_RESULT

VARIANT

ポリシー実行中に実行されたジョブの結果を含むJSONオブジェクト。詳細については、 EXECUTION_RESULTフィールド をご参照ください。

POLICY_BODY

VARCHAR

ストレージライフサイクルポリシーの本文。

EXECUTION_RESULTフィールド

:code:`EXECUTION_RESULT`列は、ポリシー実行の各タスクタイプごとにネストされたオブジェクトを含むJSONオブジェクトです。

  • EXPIRE:有効期限操作(行の永久削除)の結果が含まれます。

  • ARCHIVE:アーカイブ操作(行をアーカイブストレージに移動)の結果が含まれます。

  • EXPIRE_ARCHIVE:有効期限操作(アーカイブストレージからの行の永久削除)の結果が含まれます。

ネストされた各オブジェクトには次のフィールドを含めることができ、特定のフィールドは特定のタスクタイプに適用されます。

フィールド名

説明

START_TIME

個別のタスク開始タイムスタンプ。

END_TIME

個別のタスク終了タイムスタンプ

STATE

個別のタスクステータス: SUCCEEDED``または``FAILED

ROWS_EXPIRED

(EXPIREタスクのみ)アクティブなストレージから完全に削除された行の数。

ROWS_ARCHIVED

(ARCHIVEタスクのみ)ストレージにアーカイブされた行数。

ROWS_EXPIRED_FROM_ARCHIVE

(EXPIRE_ARCHIVEタスクのみ)アーカイブストレージから完全に削除された行の数。

ERROR_MESSAGE_CODE

タスク実行中に発生したエラーのタイプを識別するコード。

ERROR_MESSAGE

詳細なエラーメッセージ。

EXECUTION_RESULT 本文:

EXECUTION_RESULT = {  “EXPIRE”: {  “start_time”: "Thu, 27 Jun 2024 02:57:57 -0700",  “end_time”: "Thu, 27 Jun 2024 02:58:01 -0700",  “state”: "SUCCEEDED",  “rows_expired”: 100,  “error_message_code”: null,  “error_message”: null  } } 

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、 最低 1 つ の次の 権限 が必要です。

権限

オブジェクト

メモ

APPLY STORAGE LIFECYCLE POLICY

グローバル

関数を呼び出すロールにこの権限がある場合、Snowflakeは、Snowflakeアカウント内のすべてのポリシーとそれらに関連付けられたテーブルに関するすべてのポリシー実行を返します。

APPLY

ストレージライフサイクルポリシー

ポリシーの実行を表示するには、ロールに、ポリシーに関連付けられたテーブルに対するOWNERSHIP権限も必要です。この権限は、ロールにグローバル APPLYSTORAGELIFECYCLEPOLICY 権限がある場合には必要ありません。

OWNERSHIP

テーブル

ポリシーの実行を表示するには、ロールに、テーブルに関連付けられたポリシーに対するAPPLY権限も必要です。この権限は、ロールにグローバル APPLYSTORAGELIFECYCLEPOLICY 権限がある場合には必要ありません。

使用上の注意

  • 結果は、クエリを実行するロールに付与された権限に基づいて返されます。

    • ロールにグローバル APPLYSTORAGELIFECYCLEPOLICY 権限がある場合、Snowflakeはアカウント内のポリシーとテーブルの関連付けに関連するすべてのポリシー実行を返します。

    • ロールに特定のストレージライフサイクルポリシーに対するAPPLY権限がある場合、Snowflakeは、関数を呼び出すロールが所有するオブジェクトに対してのみ、そのポリシーの実行を返します。

    • ポリシーに対するAPPLY権限またはOWNERSHIP権限のいずれかをロールが有していても、ポリシーがアタッチされているテーブルに対するOWNERSHIP権限がない場合は、Snowflakeは結果にポリシーのポリシー実行を表示しません。

    • ロールにポリシー権限がないが、ポリシーがアタッチされているテーブルに対するOWNERSHIP権限がある場合、Snowflakeはエラーメッセージを返し、ポリシー実行は返しません。

t1 という名前のテーブルのストレージライフサイクルポリシー履歴を取得するには、REF_ENTITY_NAME および REF_ENTITY_DOMAIN 引数を指定します。

SELECT * FROM TABLE ( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( REF_ENTITY_NAME => 'my_db.my_schema.t1', REF_ENTITY_DOMAIN => 'Table' ) ); 
Copy

slp という名前のポリシーが関連付けられている各テーブルのストレージライフサイクルポリシー履歴を取得し、結果を100行に制限します。

SELECT * FROM TABLE( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => 'my_db.my_schema.slp', RESULT_LIMIT => 100 ) ); 
Copy

過去1時間以内にスケジュールされた、指定されたポリシーの最新の実行を100個取得します。

SELECT * FROM TABLE( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => 'my_db.my_schema.slp', TIME_RANGE_START => DATEADD('HOUR', -1, CURRENT_TIMESTAMP()), RESULT_LIMIT => 100 ) ); 
Copy

30分の時間範囲内で特定のテーブルのポリシー実行履歴を取得します。

SELECT * FROM TABLE ( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( REF_ENTITY_NAME => 'my_db.my_schema.t1', REF_ENTITY_DOMAIN => 'Table', TIME_RANGE_START => TO_TIMESTAMP_LTZ('2024-07-08 12:00:00.000 -0700'), TIME_RANGE_END => TO_TIMESTAMP_LTZ('2024-07-08 12:30:00.000 -0700') ) ); 
Copy