カテゴリ:

Information Schemaテーブル関数

DYNAMIC_TABLE_REFRESH_HISTORY

このテーブル関数は、 動的テーブル の各リフレッシュ(完了および実行中)に関する情報を返します。

このテーブル関数は、現在進行中のすべてのリフレッシュと、現時刻から1日以内に REFRESH_VERSION のあるすべてのリフレッシュを返します。

構文

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 } ]
)
Copy

引数

すべての引数はオプションです。引数が提供されない場合は、アカウント内にあるすべての動的テーブルから100個のリフレッシュが返されます。

DATA_TIMESTAMP_START => constant_expr. DATA_TIMESTAMP_END => constant_expr

リフレッシュが発生した時間範囲(TIMESTAMP_LTZ形式)。

  • 開始バージョンも終了バージョンも指定されていない場合、デフォルトの範囲は過去1日です。

  • 終了バージョンが指定されていない場合は、 CURRENT_TIMESTAMP が範囲の終了として使用されます。

  • 開始バージョンが指定されていない場合、範囲は DATE_TIMESTAMP_END の開始1日前から始まります。

RESULT_LIMIT => integer

関数によって返される行の最大数を指定する数です。

一致する行の数がこの制限よりも大きい場合は、指定された制限まで、最新(およびまだ実行中)のリフレッシュが返されます。

範囲: 110000

デフォルト: 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 に設定すると、この関数は失敗したかキャンセルされたリフレッシュのみを返します。

出力

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

列名

データ型

説明

NAME

TEXT

動的テーブルの名前。

SCHEMA_NAME

TEXT

動的テーブルを含むスキーマの名前。

DATABASE_NAME

TEXT

動的テーブルを含むデータベースの名前。

STATE

TEXT

動的テーブルのリフレッシュのステータス。ステータスは、次のいずれかになります。

  • SCHEDULED: リフレッシュは予定されていますが、まだ実行されていません。

  • EXECUTING: リフレッシュが進行中です。

  • SUCCEEDED: リフレッシュは正常に完了しました。

  • FAILED: 実行中にリフレッシュに失敗しました。

  • CANCELLED: 実行前にリフレッシュがキャンセルされました。

  • SKIPPED: 自動リフレッシュプロセスが何らかの理由でリフレッシュを実行しなかったことを示します。たとえば、動的テーブルの入力がリフレッシュされなかったか、一貫したパフォーマンスの負荷を軽減するためなどです。

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 パラメーター以下に維持するためにこのリフレッシュを完了する必要がある時刻。以前の REFRESH_VERSION + TARGET_LAG と同じ。

QUALIFIED_NAME

TEXT

動的テーブルのグラフに表示される動的テーブルの完全修飾名。これは、出力を DYNAMIC_TABLE_GRAPH_HISTORY 関数の出力と結合するために使用できます。

LAST_COMPLETED_DEPENDENCY

OBJECT

次のプロパティを含んでいます。

  • qualified_name: 利用可能になる最新の依存関係の修飾名。

  • data_timestamp: その依存関係のリフレッシュバージョン。

STATISTICS

OBJECT

次のプロパティを含んでいます。

  • numInsertedRows: 挿入された行の数。

  • numDeletedRows: 削除された行の数。

  • numCopiedRows: 変更されずにコピーされた行の数。

  • numAddedPartitions: 追加されたパーティションの数。

  • numRemovedPartitions: 削除されたパーティションの数。

    例: UPDATE ステートメントが10行のパーティション内の1行を更新するとします。すると、上記のメトリックは、1行が挿入され、1行が削除され、9行がコピーされたことを示します。さらに、1つのパーティションが削除され、1つのパーティションが追加されます。

REFRESH_ACTION

TEXT

次のいずれか:

  • NO_DATA - ベーステーブルに新しいデータはありません。ベーステーブルにデータがあるかどうかに関係なく、新しく作成された動的テーブルの最初のリフレッシュには適用されません。

  • REINITIALIZE - クローン中にベーステーブルが変更されたか、クローンされた動的テーブルのソーステーブルがリフレッシュされました。

  • FULL - フルリフレッシュ。動的テーブルに増分リフレッシュできないクエリ要素が含まれているか(SHOW DYNAMIC TABLE refresh_mode_reasonをご参照ください)、フルリフレッシュの方が増分リフレッシュよりもの安価なためです。

  • INCREMENTAL - 通常の増分リフレッシュ。

REFRESH_TRIGGER

TEXT

次のいずれか:

  • SCHEDULED - ターゲットラグまたはダウンストリームターゲットラグを満たすための通常のバックグラウンドリフレッシュ。

  • MANUAL - ALTER DYNAMIC TABLE <名前> REFRESH を使用したユーザー/タスク

使用上の注意

  • 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の 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;
Copy