- カテゴリ:
DYNAMIC_TABLE_REFRESH_HISTORY¶
このテーブル関数は、 動的テーブル の各リフレッシュ(完了および実行中)に関する情報を返します。
このテーブル関数は、現在進行中のすべてのリフレッシュと、現時刻から7日以内に DATA_TIMESTAMP のあるすべてのリフレッシュを返します。
構文¶
DYNAMIC_TABLE_REFRESH_HISTORY(
  [ DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , NAME => '<string>' ]
  [ , NAME_PREFIX => '<string>' ]
  [ , ERROR_ONLY => { TRUE | FALSE } ]
)
引数¶
すべての引数はオプションです。引数が提供されない場合は、アカウント内にあるすべての動的テーブルから100個のリフレッシュが返されます。
- DATA_TIMESTAMP_START => constant_expr、 .- DATA_TIMESTAMP_END => constant_expr
- リフレッシュが発生した時間範囲(TIMESTAMP_LTZ形式)。 - 開始バージョンも終了バージョンも指定されていない場合、デフォルトの範囲は過去1日です。 
- 終了バージョンが指定されていない場合は、 CURRENT_TIMESTAMP が範囲の終了として使用されます。 
- 開始バージョンが指定されていない場合、範囲は DATE_TIMESTAMP_END の開始1日前から始まります。 
 
- RESULT_LIMIT => integer
- 関数によって返される行の最大数を指定する数です。一致する行の数がこの制限よりも大きい場合は、指定された制限まで、最新(およびまだ実行中)のリフレッシュが返されます。 - 結果にフィルターを適用するには、すべての動的テーブルにフィルターが適用されるように、 RESULT_LIMIT の制限値も十分に大容量に指定してください。 - 範囲: - 1~- 10000- デフォルト: - 100。
- NAME => string
- 動的テーブルの名前。 - 名前は一重引用符で囲む必要があり、大文字と小文字は区別されません。 - 非修飾名( - dynamic_table_name)、部分修飾名(- schema_name.dynamic_table_name)、または完全修飾名(- database_name.schema_name.dynamic_table_name)を指定できます。- オブジェクト名解決の詳細については、 オブジェクト名の解決 をご参照ください。 - 関数は、このテーブルのリフレッシュを返します。 
- NAME_PREFIX => string
- 動的テーブルのプレフィックス。 - 名前のプレフィックスは一重引用符で囲む必要があり、大文字と小文字は区別されません。 - この関数は、このプレフィックスで始まる名前のテーブルのリフレッシュを返します。 - この引数を使用して、特定のデータベースまたはスキーマの動的テーブルのリフレッシュを返すことができます。 
- ERROR_ONLY => TRUE | FALSE
- TRUE に設定すると、この関数は失敗したかキャンセルされたリフレッシュのみを返します。 
出力¶
この関数は、次の列を返します。
これらの列を表示するには、 MONITOR 権限を持つロールを使用する必要があります。詳細については、 動的テーブルのメタデータを表示する権限 をご参照ください。
| 列名 | データ型 | 説明 | 
|---|---|---|
| NAME | TEXT | 動的テーブルの名前。 | 
| SCHEMA_NAME | TEXT | 動的テーブルを含むスキーマの名前。 | 
| DATABASE_NAME | TEXT | 動的テーブルを含むデータベースの名前。 | 
| STATE | TEXT | 動的テーブルのリフレッシュのステータス。ステータスは、次のいずれかになります。 
 | 
| STATE_CODE | TEXT | リフレッシュの現行状態を表すコード。 | 
| STATE_MESSAGE | TEXT | リフレッシュの現行状態の説明。 | 
| QUERY_ID | TEXT | 動的テーブルの結果を生成した SQL ステートメントの ID。 | 
| DATA_TIMESTAMP | TIMESTAMP_LTZ | リフレッシュが評価されたトランザクションのタイムスタンプ。(実際のリフレッシュの時間より少し前になる可能性があります。)このタイムスタンプより前に到着した、ベースオブジェクト内のすべてのデータが、現在動的テーブルに含まれています。 | 
| REFRESH_START_TIME | TIMESTAMP_LTZ | リフレッシュジョブの開始時刻。 | 
| REFRESH_END_TIME | TIMESTAMP_LTZ | リフレッシュの完了時刻。 | 
| COMPLETION_TARGET | TIMESTAMP_LTZ | 動的テーブルのラグを TARGET_LAG パラメーター以下に維持するためにこのリフレッシュを完了する必要がある時刻。これは最後のリフレッシュの DATA_TIMESTAMP + TARGET_LAG に等しくなります。 | 
| QUALIFIED_NAME | TEXT | 動的テーブルのグラフに表示される動的テーブルの完全修飾名。これは、出力を DYNAMIC_TABLE_GRAPH_HISTORY 関数の出力と結合するために使用できます。 | 
| LAST_COMPLETED_DEPENDENCY | OBJECT | 次のプロパティを含んでいます。 
 | 
| STATISTICS | OBJECT | 次のプロパティを含んでいます。 
 | 
| REFRESH_ACTION | TEXT | 次のいずれか: 
 | 
| REFRESH_TRIGGER | TEXT | 次のいずれか: 
 | 
| TARGET_LAG_SEC | NUMBER | この列は、リフレッシュが発生した時点の動的テーブルのターゲットラグ値を説明します。 | 
| GRAPH_HISTORY_VALID_FROM | TIMESTAMP_NTZ | 特定のリフレッシュが動的テーブルのどのバージョンに対応するかを明確にするために、リフレッシュが発生した DYNAMIC_TABLE_GRAPH_HISTORY テーブル関数の VALID_FROM タイムスタンプをエンコードします。対応する動的テーブルが作成されていないと、この値が NULL になる場合もあります。 | 
使用上の注意¶
- 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。 
例¶
失敗したかキャンセルされたリフレッシュを取得します。
SELECT name, state, state_code, state_message, query_id, data_timestamp, refresh_start_time, refresh_end_time FROM TABLE ( INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY ( NAME_PREFIX => 'MYDB.MYSCHEMA.', ERROR_ONLY => TRUE ) ) ORDER BY name, data_timestamp;