- カテゴリ:
テーブル関数 (情報スキーマ)
STORAGE_LIFECYCLE_POLICY_HISTORY¶
過去14日間のアカウントでの ストレージライフサイクルポリシー の実行履歴を返します。
このテーブル関数を使用して、実行終了時刻の降順で最新のポリシー実行(完了または実行中)をクエリします。ストレージライフサイクルポリシーの監視については、ストレージライフサイクルポリシーの監視 をご参照ください。
- こちらもご参照ください。
CREATE STORAGE LIFECYCLE POLICY、 ALTER STORAGE LIFECYCLE POLICY、 DROP 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> ] ) ストレージライフサイクルポリシーごと
STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => '<string>' [, TIME_RANGE_START => <constant_expr> ] [, TIME_RANGE_END => <constant_expr> ] [, RESULT_LIMIT => <integer> ] ) 引数¶
注釈
関数を呼び出す場合、以下のオプションのいずれかを指定します。
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関数が返す行の最大数。
範囲:
1~1000デフォルト:
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 | ポリシーがアタッチされているオブジェクトのドメイン(型)(例: |
STATE | VARCHAR | ポリシー実行の状態: |
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 | 個別のタスクステータス: |
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' ) ); slp という名前のポリシーが関連付けられている各テーブルのストレージライフサイクルポリシー履歴を取得し、結果を100行に制限します。
SELECT * FROM TABLE( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => 'my_db.my_schema.slp', RESULT_LIMIT => 100 ) ); 過去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 ) ); 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') ) );