SHOW DYNAMIC TABLES¶
アクセス権限がある 動的テーブル をリストします。このコマンドを使用して、現在の/指定されたデータベースまたはスキーマの、またはアカウント全体の動的テーブルをリストできます。
- こちらもご参照ください。
CREATE DYNAMIC TABLE、 ALTER DYNAMIC TABLE、 DESCRIBE DYNAMIC TABLE、 DROP DYNAMIC TABLE、 SHOW OBJECTS、 TABLES ビュー (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>' ] ]
パラメーター¶
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
があり、両方とも指定したデータベースコンテキストのスコープ内にある場合(つまり、選択したデータベースがschema1
とschema2
の親である場合)の場合、 SHOW TABLES はt1
テーブルの1つのみを表示します。SCHEMA
、 .SCHEMA schema_name
現在使用中のスキーマまたは指定されたスキーマ(
schema_name
)の記録を返します。データベースが使用中の場合、または完全修飾
schema_name
(例:db.schema
) を指定する場合、SCHEMA
はオプションです。データベースが使用されていない場合は、
SCHEMA
を指定しても出力には影響しません。
デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。
データベース:
DATABASE
がデフォルトです(つまり、コマンドはデータベースで表示する権限を持つオブジェクトを返します)。データベースなし:
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 権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
動的テーブルを SHOW するには、テーブルに対する MONITOR 権限を持つロールを使用する必要があります。
このコマンドの実行には、稼働中のウェアハウスは必要ありません。
このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。
MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。
このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。このコマンドの出力をクエリするには、 パイプ演算子 を使用することもできます。
LIMIT rows
の値は10000
を超えることはできません。LIMIT rows
を省略した場合、結果セットが1万行を超えるとコマンドはエラーになります。1万件を超える記録が存在する結果を表示するには、
LIMIT rows
を含めるか、 Snowflake Information Schema の対応するビューをクエリします。
出力¶
コマンド出力では、次の列にテーブルプロパティとメタデータが提供されます。
列 |
説明 |
---|---|
|
動的テーブルが作成された日時。 |
|
動的テーブルの名前。 |
|
動的テーブルが格納されているデータベース。 |
|
動的テーブルが格納されているスキーマ。 |
|
動的テーブルのクラスタリングキー。 |
|
テーブル内の行数。 |
|
クエリで動的テーブル全体がスキャンされる場合のバイト数。 . . この数は、テーブルの実際の物理バイト(ディスクに格納されているバイト)数とは異なる場合があることに注意してください。 |
|
動的テーブルを所有するロール。 |
|
動的テーブルのコンテンツがリアルタイムから遅れる最大時間。 |
|
動的テーブルが増分リフレッシュを使用する場合は |
|
リフレッシュモードが選択された理由の説明。 |
|
増分リフレッシュを実行するために必要なリソースを提供するウェアハウス。 |
|
動的テーブルのコメント。 |
|
この動的テーブルを作成したコマンドのテキスト(例: |
|
動的テーブルで自動クラスタリングを有効にするかどうか。現在、動的テーブルではサポートされていません。 |
|
リフレッシュをアクティブにスケジューリングしている動的テーブルに対しては RUNNING を、また中断している動的テーブルに対しては SUSPENDED を表示します。 |
|
最後に中断されたときのタイムスタンプ。 |
|
動的テーブルがクローンである場合は TRUE、それ以外の場合は FALSE。 |
|
動的テーブルがレプリカの場合は TRUE、それ以外の場合は FALSE。 |
|
動的テーブルがApache Iceberg™の動的テーブルの場合は TRUE、それ以外の場合は FALSE。 |
|
動的テーブルに含まれるベースオブジェクトにあるデータのタイムスタンプ。 |
|
オブジェクトを所有するロールのタイプ、例えば |
例¶
mydb.myschema
スキーマの product_
で始まる名前を持つすべての動的テーブルを表示します。
SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;