動的テーブルをモニターする

このトピックでは、パイプラインの動的テーブルを表示し、理解する方法について説明します。

セクション

説明

動的なテーブルのリストや特定の列の情報の表示

スキーマ内の動的テーブルをリストし、それらの情報を表示します。

動的テーブルに接続されたテーブルのグラフ表示

動的テーブルに接続されたテーブルのグラフをご覧ください。

SQL テーブル関数を使用した動的テーブルの監視

SQL テーブル関数を使用して、動的テーブルを監視します。

動的テーブルのリフレッシュ・ステータスの監視

動的テーブルの更新ステータスを表示します。

動的なテーブルのリストや特定の列の情報の表示

スキーマ内の動的テーブルをリストし、それらの動的テーブルに関する情報を表示するには、動的テーブルに対して MONITOR 権限を持つロールを使用している限り、以下の SQL コマンドまたは Snowsight のいずれかを使用することができます。

詳細については、 動的テーブルのメタデータを表示する権限 をご参照ください。

現在のデータベース(現在データベースが使用されていない場合はアカウント)内の動的テーブルをリストするには、 SHOW DYNAMIC TABLES コマンドを使用します。

たとえば、データベース mydb 内とスキーマ myschema 内にある product_ で始まる名前の動的テーブルをリストするには、次の SQL ステートメントを実行します。

SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
Copy
+-------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  | created_on               | name       | database_name | schema_name | cluster_by | rows | bytes  | owner    | target_lag | refresh_mode | refresh_mode_reason  | warehouse | comment | text                            | automatic_clustering | scheduling_state | last_suspended_on | is_clone  | is_replica  | is_iceberg | data_timestamp           | owner_role_type |
  |-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  |2025-01-01 16:32:28 +0000 | product_dt | my_db         | my_schema   |            | 2    | 2048   | ORGADMIN | DOWNSTREAM | INCREMENTAL  | null                 | mywh      |         | create or replace dynamic table | OFF                  | ACTIVE           | null              | false     | false       | false      |2025-01-01 16:32:28 +0000 | ROLE            |
                                                                                                                                                                                         |  product dt ...                 |                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                       |
  +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

動的テーブルの列に関する情報を出力するには、 DESCRIBE DYNAMIC TABLE コマンドを使用します。

例えば、 my_dynamic_table の列をリストアップするには、次の SQL ステートメントを実行します。

DESC DYNAMIC TABLE my_dynamic_table;
Copy
+-------------------+--------------------------------------------------------------------------------------------------------------------------+
  | name   | type         | kind   | null? | default | primary key | unique key | check | expression | comment | policy name  | privacy domain |
  |-------------------+------------------------------------------------------------------------------------------------------------------------|
  | AMOUNT | NUMBER(38,0) | COLUMN | Y     | null    | N           | N          | null  | null       | null    | null         | null           |                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                       |
  +-------------------+------------------------------------------------------------------------------------------------------------------------+

TABLES ビュー の結果には動的テーブルも含まれています。

動的テーブルに接続されたテーブルのグラフ表示

依存関係の表示は、動的テーブル・チェーンのトラブルシューティングに特に役立ちます。 Snowsight では、系統グラフを使用して、ある動的テーブルがどの動的テーブルに依存しているかを視覚化できます。例えば、以下のような識別が可能です。

  • 動的テーブルがデータを取得する上流の依存関係。

  • 動的テーブルの変更によって影響を受ける可能性のあるダウンストリームの依存関係。

グラフの例。

依存関係はリフレッシュパフォーマンスに影響を与えます。例えば、動的テーブルの上流テーブルに、リフレッシュ・スケジュールの直前に大容量のデータが追加されたとします。動的テーブルがリフレッシュを終えるまで待たされ、ターゲット・ラグを逃してしまいます。入力テーブルが "実行中 "と表示され、遅延していることがわかります。

特定の動的テーブルのグラフを表示するには、次のようにします。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで、 Monitoring » Dynamic Tables に進みます。

  3. 動的テーブルを選択します。デフォルトでは Graph が表示されます。動的テーブルのノードが選択されたグラフが表示されます。右側の Details ペインには、ラグ・メトリクスと構成に関する情報が表示されます。

  4. グラフに別のテーブルの詳細を表示するには、そのテーブルを選択します。

グラフを更新するには、グラフの上にあるバーの更新ボタンを選択します。

グラフの表示を更新する。

UPSTREAM_FAILED エラー・コードが原因でリフレッシュに失敗した場合、グラフを使用して、どのアップストリーム・テーブルが原因で失敗したかを視覚化できます。

グラフの表示内 UPSTREAM_FAILED。

グラフ内の表の詳細を表示するには、 動的なテーブルのリストや特定の列の情報の表示 を参照してください。

SQL テーブル関数を使用した動的テーブルの監視

以下の INFORMATION_SCHEMA テーブル関数を使用して、動的テーブルを監視します。

  • DYNAMIC_TABLES: 現在時刻から7日以内の、ラグ・メトリクスの集計や最新のリフレッシュのステータスなど、動的テーブルに関するメタデータを返します。

  • DYNAMIC_TABLE_REFRESH_HISTORY: リフレッシュのステータス、トリガー、ターゲット・ラグを含む、動的テーブルの完了したリフレッシュと実行中のリフレッシュに関する情報を返します。

    • DYNAMIC_TABLE_REFRESH_HISTORY ビュー: この Account Usage 表示には、動的テーブル更新履歴の情報も表示されます。これは、 DYNAMIC_TABLE_REFRESH_HISTORY テーブル関数のデータ保持時間(7日間)よりも長い問題をデバッグするのに便利です。

  • DYNAMIC_TABLE_GRAPH_HISTORY: 各動的テーブルの履歴、プロパティ、他のテーブルや動的テーブルへの依存関係を提供する情報を返します。

    このテーブル関数を使用すると、指定した時点における動的テーブルの依存関係ツリーのスナップショットを取得できます。

    また、動的テーブルのプロパティの時間経過にともなう変更も出力に反映されます。各行は、動的テーブルと特定のプロパティのセットを表します。動的テーブルのプロパティ(例えばターゲット・ラグ)を変更すると、関数は最新のプロパティを返します。

動的テーブルのリフレッシュ・ステータスの監視

ここでは、すべてまたは特定の動的テーブルの更新ステータスを表示する方法を説明します。

リフレッシュのトラブルシューティングについては、 動的テーブル更新のスキップ、スロー、失敗のトラブルシューティング および 動的テーブルのリフレッシュに関する一般的な問題の診断 を参照してください。

すべての動的テーブルのリフレッシュを監視

Snowsight または DYNAMIC_TABLES テーブル関数を使用して、すべての動的テーブルの更新ステータスを表示できます。

Snowsight にサインインします。ナビゲーションメニューで Monitoring » Dynamic Tables を選択します。

このページでは、すべての動的テーブルの状態と最終更新ステータスを表示できます。データベースやスキーマでフィルターをかけて結果を絞り込むこともできます。

Snowsightの履歴表示を更新します。

特定の動的テーブルのすべてのリフレッシュを監視

Snowsight または DYNAMIC_TABLES_REFRESH_HISTORY テーブル関数を使用すると、指定した動的テーブルの更新履歴を表示できます。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Monitoring » Dynamic Tables を選択します。

  3. 動的テーブルを選択し、 Refresh History タブを開きます。

    このページには、動的テーブルの更新履歴が表示され、各更新のステータス、期間、実際のタイムラグ時間、各更新で変更された行数などの情報が含まれます。

    また、動的テーブルのラグ・メトリクスも表示されます。このメトリクスには、ターゲット・ラグ内の時間の割合や、指定されたインターバル中に実際にかかった最長のラグ時間などが含まれます。

Snowsightの履歴表示を更新します。