カテゴリ:

Information Schemaテーブル関数

DYNAMIC_TABLES

このテーブル関数は、 動的テーブル に関するメタデータを返します。これには、ラグメトリクスの集計や、現時刻から7日以内にある最新のリフレッシュのステータスが含まれます。

構文

DYNAMIC_TABLES (
  [ NAME => '<string>' ]
  [ , REFRESH_DATA_TIMESTAMP_START => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , INCLUDE_CONNECTED => { TRUE | FALSE } ]
)
Copy

引数

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

NAME => 'string'

動的テーブルの名前。

名前は一重引用符で囲む必要があり、大文字と小文字は区別されません。

非修飾名(dynamic_table_name)、部分修飾名(schema_name.dynamic_table_name)、または完全修飾名(database_name.schema_name.dynamic_table_name)を指定できます。

オブジェクト名解決の詳細については、 オブジェクト名の解決 をご参照ください。

関数は、このテーブルのメタデータを返します。

REFRESH_DATA_TIMESTAMP_START => constant_expr

動的テーブルのターゲットラグに関連するメトリクスを計算するための時間(TIMESTAMP_LTZ 形式)。LATEST_DATA_TIMESTAMP が REFRESH_DATA_TIMESTAMP_START 以上のすべてのリフレッシュを含みます。

デフォルト: リフレッシュ履歴にあるすべてのリフレッシュは7日間保持されます。

RESULT_LIMIT => integer

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

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

範囲: 110000

デフォルト: 100

INCLUDE_CONNECTED => { TRUE | FALSE }

TRUE に設定すると、この関数は NAME 引数で指定された動的テーブルに接続されているすべての動的テーブルのメタデータを返します。

NAME 引数を指定する必要があります。 RESULT_LIMIT 引数は指定しないでください。

デフォルト: FALSE

出力

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

これらの列を表示するには、 MONITOR 権限を持つロールを使用する必要があります。それ以外の場合、関数は NAMESCHEMA_NAMEDATABASE_NAMEQUALIFIED_NAME の値のみを返します。動的テーブル権限の詳細については、 動的テーブルのメタデータを表示する権限 をご参照ください。

列名

データ型

説明

NAME

TEXT

動的テーブルの名前。

SCHEMA_NAME

TEXT

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

DATABASE_NAME

TEXT

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

QUALIFIED_NAME

TEXT

動的テーブルの完全修飾名。

TARGET_LAG_SEC

NUMBER

この動的テーブルのターゲットラグタイム(秒単位)。これは、動的テーブルの TARGET_LAG パラメーターで指定された値です。

TARGET_LAG_TYPE

TEXT

ターゲットラグの型。次のいずれかになります。

  • USER_DEFINED: 動的テーブルに指定された TARGET_LAG パラメーターよって決定されます。

  • DOWNSTREAM: DOWNSTREAM ターゲットラグのある動的テーブルを含みます。

SCHEDULING_STATE

OBJECT

次で構成される OBJECT。

  • STATE (TEXT): スケジューリング状態(RUNNING または SUSPENDED)。

  • REASON_CODE (TEXT): 動的テーブルが実行されていない理由のコードを指定します。

  • REASON_MESSAGE (TEXT): 動的テーブルが実行されていない理由のテキストによる説明。動的テーブルが RUNNING の状態でない場合にのみ適用されます。

  • SUSPENDED_ON (TIMESTAMP_LTZ): 動的テーブルが中断された時のタイムスタンプ。動的テーブルが SUSPENDED 状態の場合にのみ適用されます。

  • RESUMED_ON (TIMESTAMP_LTZ): 動的テーブルが再開された時のタイムスタンプ。動的テーブルが RUNNING 状態の場合にのみ適用されます。

MEAN_LAG_SEC

NUMBER

この動的テーブルのリフレッシュの平均ラグタイム(秒単位)。

MAXIMUM_LAG_SEC

NUMBER

この動的テーブルのリフレッシュの最大ラグタイムを秒単位で指定します。

TIME_ABOVE_TARGET_LAG_SEC

NUMBER

保持期間中、または最後の設定変更以降、実際のラグが定義されたターゲットラグを上回った時間(秒単位)。

TIME_WITHIN_TARGET_LAG_RATIO

NUMBER

実際のラグがターゲットラグ内にある場合の、保持期間または最終構成変更からの時間の割合。

LATEST_DATA_TIMESTAMP

TIMESTAMP_LTZ

最後にリフレッシュに成功したデータのタイムスタンプ。

LAST_COMPLETED_REFRESH_STATE

TEXT

動的テーブルの最終に中止したリフレッシュのステータス。次のいずれかになります。

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

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

  • UPSTREAM_FAILED: アップストリームのリフレッシュが失敗したため、リフレッシュが実行されませんでした。

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

LAST_COMPLETED_REFRESH_STATE_CODE

TEXT

リフレッシュの現行状態を表すコード。

LAST_COMPLETED_REFRESH_STATE が FAILED の場合、この列には失敗に関連するエラーコードが表示されます。

LAST_COMPLETED_REFRESH_STATE_MESSAGE

TEXT

リフレッシュの現行状態の説明。

LAST_COMPLETED_REFRESH_STATE が FAILED の場合、この列には失敗に関連するエラーメッセージが表示されます。

EXECUTING_REFRESH_QUERY

TEXT

存在する場合、これはリフレッシュジョブのクエリ ID を表します。NULLの場合、実行中のリフレッシュジョブはありません。

使用上の注意

  • 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。

指定された動的テーブルと接続されているすべての動的テーブルの名前、ラグ情報、最後にリフレッシュに成功したデータのタイムスタンプを取得します。

SELECT
  name,
  target_lag_sec,
  mean_lag_sec,
  latest_data_timestamp
FROM
  TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLES (
      NAME => 'mydb.myschema.mydt',
      INCLUDE_CONNECTED => TRUE
    )
  )
ORDER BY
  target_lag_sec
Copy