動的テーブルのモニタリングについて¶
動的テーブルの情報を表示するには、Snowsightと SQL のどちらでも使用できます。次のセクションでは、動的テーブルの情報をモニターおよび表示するためのさまざまな方法について説明します。
タスク |
説明 |
---|---|
動的テーブルのリフレッシュをモニターします。 |
|
動的テーブルのグラフを調査します。 |
|
SQL を使用して動的テーブルを調査します。 |
Snowsightを使用したリフレッシュのモニタリング¶
リフレッシュにエラーがあるかどうかを調べるには、 動的テーブルの詳細ページ で、 Refresh History タブを選択します。
タブの上部に表示される情報には次が含まれます。
動的テーブルの最新更新日時
動的テーブルのターゲットタイムラグ
指定された間隔における動的テーブルの実際の最長ラグタイム
このタブには、リフレッシュの履歴を含むテーブルも表示されます。履歴の各リフレッシュについて、テーブルには以下の情報が表示されます。
リフレッシュが評価されたときのトランザクションのタイムスタンプ
(これは、リフレッシュが開始された実際の時間より少し前になる場合があります。)
リフレッシュの完了までにかかった時間
リフレッシュがコミットする直前に到達するターゲットラグと最大ラグ
リフレッシュのステータス
Snowsightを使用した動的テーブルグラフの調査¶
Snowsightでは、有向非巡回グラフ(DAG)を表示できます。このグラフを使用して、指定された動的テーブルがどのテーブルに依存しているかを判断できます。たとえば、次が可能です。
動的テーブルがどこからデータを取得するかを判断します。
動的テーブルの上流依存関係を識別する。
動的テーブルの変更によって影響を受ける可能性のある下流の依存関係を識別する。
動的テーブルを含むグラフを調べるには、
動的テーブルの詳細ページ で、 Graph タブを選択します。
動的テーブルのノードが選択されたグラフが表示されます。右側の Details ペインには、選択したテーブルまたは動的テーブルに関する情報が表示されます。
グラフ内にある別の項目の詳細を表示するには、その項目を選択します。
グラフ内のテーブルの詳細を表示するには、テーブルのノードにカーソルを合わせ、ノードの右上隅にある Go to Dynamic Table Page または Go to Table Page を選択します。
表示されたグラフと情報を最新の変更にリフレッシュするには、グラフの上にあるバーのリフレッシュボタンを選択します。
次の画像は、 Graph タブと Details ペインを表示しています。
Details ペインで、
通常のベーステーブルの表示される情報には、以下が含まれます。
テーブルを所有するロールとテーブルの作成日
テーブル内の行数
テーブルのサイズ
動的テーブルの表示される情報には、以下が含まれます。
動的テーブルを所有するロールと動的テーブルの作成日
リフレッシュのモード
動的テーブルのウェアハウス
ターゲットラグ
平均的な実際のラグ
実際のラグの最大値
Information Schema関数を使用した動的テーブルのモニタリング¶
リフレッシュで問題が発生するかどうかを判断するには、以下の INFORMATION_SCHEMA テーブル関数を使用します。
DYNAMIC_TABLE_REFRESH_HISTORY は、アカウント内にある1つ以上の動的テーブルのリフレッシュ履歴を提供します。
DYNAMIC_TABLE_GRAPH_HISTORY は、各動的テーブルの履歴、プロパティ、他のテーブルや動的テーブルへの依存関係を提供します。
このテーブル関数を使用すると、指定した時点における動的テーブルの依存関係ツリーのスナップショットを取得できます。
また、動的テーブルのプロパティの時間経過にともなう変更も出力に反映されます。各行は、動的テーブルと特定のプロパティのセットを表します。動的テーブルのプロパティ(例: ターゲットラグ)を変更すると、この関数は、更新されたプロパティのセットに対して新しい出力行を生成します。
エラーのあったリフレッシュを識別するには、 DYNAMIC_TABLE_REFRESH_HISTORY 関数を呼び出し、引数 ERROR_ONLY => TRUE を渡します。
たとえば、
mydb
データベースとmyschema
スキーマの動的テーブルのリフレッシュエラーを確認する場合は、次のステートメントを実行します。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, refresh_version;