SHOW DYNAMIC TABLES

アクセス権限がある 動的テーブル をリストします。このコマンドを使用して、現在の/指定されたデータベースまたはスキーマの、またはアカウント全体の動的テーブルをリストできます。

こちらもご参照ください。

CREATE DYNAMIC TABLEALTER DYNAMIC TABLEDESCRIBE DYNAMIC TABLEDROP DYNAMIC TABLESHOW OBJECTSTABLES ビュー (Information Schema)

構文

SHOW DYNAMIC TABLES [ LIKE '<pattern>' ]
                    [ IN
                      {
                           ACCOUNT              |

                           DATABASE             |
                           DATABASE <db_name>   |

                           SCHEMA               |
                           SCHEMA <schema_name> |
                           <schema_name>
                      }
                    ]
                    [ STARTS WITH '<name_string>' ]
                    [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

パラメーター

LIKE 'pattern'

オプションで、オブジェクト名でコマンド出力をフィルタリングします。フィルターは、 SQL ワイルドカード文字(% および _)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。

たとえば、次のパターンは 同じ 結果を返します。

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. デフォルト: 値なし(フィルタリングは出力に非適用)。

[ IN ... ]

オプションで、コマンドのスコープを指定します。次のいずれかを指定します。

ACCOUNT

アカウント全体の記録を返します。

DATABASE. DATABASE db_name

現在使用中のデータベースまたは指定されたデータベース(db_name)の記録を返します。

db_name なしで DATABASE を指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。

注釈

データベースコンテキストで IN 句を指定せずに SHOW コマンドを使用すると、予想よりも少ない結果になる可能性があります。

IN 句を使用しない場合、同じ名前のオブジェクトは一度だけ表示されます。例えば、 schema1 にテーブル t1 、そして schema2 にテーブル t1 があり、両方とも指定したデータベースコンテキストのスコープ内にある場合(つまり、選択したデータベースが schema1schema2 の親である場合)の場合、 SHOW TABLES は t1 テーブルの1つのみを表示します。

SCHEMA. SCHEMA schema_name

現在使用中のスキーマまたは指定されたスキーマ(schema_name)の記録を返します。

データベースが使用中の場合、または完全修飾 schema_name (例: db.schema) を指定する場合、 SCHEMA はオプションです。

データベースが使用されていない場合は、 SCHEMA を指定しても出力には影響しません。

IN ... を省略した場合、コマンドのスコープは、セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベースが現在使用中の場合、コマンドはデータベースで表示する権限を持つオブジェクトを返します。これは、IN DATABASE を指定するのと同じ効果があります。

  • データベースが現在使用中でない場合、コマンドはアカウントで表示する権限を持つオブジェクトを返します。これは、IN ACCOUNT を指定するのと同じ効果があります。

STARTS WITH 'name_string'

オプションで、オブジェクト名の先頭に表示される文字に基づいてコマンド出力をフィルタリングします。文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

たとえば、次の文字列は 異なる 結果を返します。

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. デフォルト: 値なし(フィルターは出力に適用されない)

LIMIT rows [ FROM 'name_string' ]

オプションで、返される行の最大数を制限すると同時に、結果の「ページネーション」を有効にします。実際に返される行数は、指定された制限より少ない場合があります。例えば、既存のオブジェクトの数が指定された制限より少ないなどです。

オプションの FROM 'name_string' サブ句は、結果の「カーソル」として効果的に機能します。これにより、指定された文字列と一致するオブジェクト名を持つ最初の行に続く指定された行数を取得できます。

  • 文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

  • 文字列に完全なオブジェクト名を含める必要はありません。部分的な名前がサポートされています。

デフォルト:値なし(出力に制限は適用されない)

注釈

FROM 'name_string' 句と STARTS WITH 'name_string' 句の両方をサポートする SHOW コマンドの場合、同じステートメントでこれらの両方の句を組み合わせることができます。ただし、両方の条件を満たしている必要があります。そうでない場合、互いにキャンセルされ、結果が返されません。

さらに、オブジェクトは名前の辞書式順序で返されるため、 FROM 'name_string' は、 STARTS WITH 'name_string' によって返される行よりも辞書式の値が大きい行のみを返します。

例:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' は結果を返しません。

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' は結果を返しません。

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' は結果を返します(入力文字列に一致する行がある場合)。

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

SELECT

リストしたい動的テーブル。

MONITOR 権限がない場合、一部のメタデータは非表示になります。詳細については、 動的テーブルのメタデータを表示する権限 をご参照ください。

スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • 動的テーブルを SHOW するには、テーブルに対する MONITOR 権限を持つロールを使用する必要があります。

  • このコマンドの実行には、稼働中のウェアハウスは必要ありません。

  • このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。

  • MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。

  • このコマンドの出力を後処理するには、 パイプ演算子->>)または RESULT_SCAN 関数。どちらのコンストラクトも、出力を クエリできる結果セットとして扱います。

    このコマンドの出力列名は小文字で生成されます。パイプ演算子または でこのコマンドの結果セットを消費する場合 RESULT_SCAN 関数の場合は、を使用します 二重引用符で囲まれた識別子 クエリの列名に を使用し、スキャンされた出力の列名と一致するようにします。たとえば、出力列の名前が次の場合 type``次に を指定します ``"type" 識別子用。

  • LIMIT rows の値は 10000 を超えることはできません。LIMIT rows を省略した場合、結果セットが1万行を超えるとコマンドはエラーになります。

    1万件を超える記録が存在する結果を表示するには、 LIMIT rows を含めるか、 Snowflake Information Schema の対応するビューをクエリします。

出力

コマンド出力では、次の列にテーブルプロパティとメタデータが提供されます。

説明

created_on

動的テーブルが作成された日時。

name

動的テーブルの名前。

database_name

動的テーブルが格納されているデータベース。

schema_name

動的テーブルが格納されているスキーマ。

cluster_by

動的テーブルのクラスタリングキー。

rows

テーブル内の行数。

bytes

クエリで動的テーブル全体がスキャンされる場合のバイト数。. . この数は、テーブルの実際の物理バイト(ディスクに格納されているバイト)数とは異なる場合があることに注意してください。

owner

動的テーブルを所有するロール。

target_lag

動的テーブルのコンテンツがリアルタイムから遅れる最大時間。

refresh_mode

動的テーブルが増分リフレッシュを使用する場合は、INCREMENTAL を返し、リフレッシュのたびにテーブル全体を再計算する場合は FULL を返します。

refresh_mode_reason

リフレッシュモードが選択された理由の説明。INCREMENTAL がサポートされてている状況で、Snowflakeが FULL を選択した場合、出力にはフルリフレッシュの方がパフォーマンスに優れていると考えられる理由が示されています。関連情報がない場合は NULL が返されます。

warehouse

増分リフレッシュを実行するために必要なリソースを提供するウェアハウス。

comment

動的テーブルのコメント。

text

この動的テーブルを作成したコマンドのテキスト(例: CREATE DYNAMIC TABLE ...)。

automatic_clustering

動的テーブルで自動クラスタリングを有効にするかどうか。現在、動的テーブルではサポートされていません。

scheduling_state

リフレッシュをアクティブにスケジューリングしている動的テーブルに対しては RUNNING を、また中断している動的テーブルに対しては SUSPENDED を表示します。

last_suspended_on

最後に中断されたときのタイムスタンプ。

is_clone

動的テーブルがクローンである場合は TRUE、それ以外の場合は FALSE。

is_replica

動的テーブルがレプリカの場合は TRUE、それ以外の場合は FALSE。

is_iceberg

動的テーブルがApache Iceberg™の動的テーブルの場合は TRUE、それ以外の場合は FALSE。

data_timestamp

動的テーブルに含まれるベースオブジェクトにあるデータのタイムスタンプ。

owner_role_type

オブジェクトを所有するロールの型。例: ROLE. . データベースレベルのロール。たとえば DATABASE_ROLE は所有者にはできません。動的テーブルの所有者は、ウェアハウス上で USAGE の権限を持っている必要があります。ウェアハウスはアカウントレベルのオブジェクトであるため、データベースレベルで動作するデータベースロールにアクセス権を付与することはできません。. . Snowflake Native Appがオブジェクトを所有している場合、値は APPLICATION になります。. オブジェクトを削除した場合、削除されたオブジェクトには所有者ロールがないため、Snowflakeは NULL を返します。

immutable_where

動的テーブルに設定された IMMUTABLEWHERE:ref:不変性制約 <label-create_dt_immutability_constraints> を表示します。表示 NULL がない場合。

product_ スキーマの mydb.myschema で始まる名前を持つすべての動的テーブルを表示します。

SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
Copy