SHOW TABLES¶
アクセス権限があるテーブルをリストします。これには、まだTime Travelの保持期間内にあり、削除できないテーブルも含まれます。このコマンドを使用して、現在の/指定されたデータベースまたはスキーマの、またはアカウント全体のテーブルを一覧表示できます。
出力は、データベース、スキーマ、およびテーブル名の辞書順に並べられたテーブルのメタデータとプロパティを返します(出力列の説明については、このトピックの 出力 を参照)。提供されたフィルターを使用して結果をフィルターする場合には、これに注意することが重要です。
- こちらもご参照ください。
CREATE TABLE、 DROP TABLE、 UNDROP TABLE、 ALTER TABLE、 DESCRIBE TABLE
TABLES ビュー (情報スキーマ)
構文¶
SHOW [ TERSE ] TABLES [ HISTORY ] [ LIKE '<pattern>' ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
パラメーター¶
TERSE
オプションで、出力列のサブセットのみを返します。
created_on
name
kind
kind
列の値は常に TABLE です。database_name
schema_name
デフォルト: 値なし(出力にすべての列を含む)
HISTORY
必要に応じて、まだパージされていない(つまり、それぞれのTime Travel保持期間内にある)ドロップされたテーブルを含めます。ドロップされたテーブルに複数のバージョンが存在する場合、出力には各バージョンの行が表示されます。出力には、追加の
dropped_on
列も含まれ、次を表示します:日付とタイムスタンプ(ドロップされたテーブルの場合)。
NULL
(アクティブなテーブルの場合)。
デフォルト:値なし(ドロップされたテーブルは出力に 含まれない)
LIKE 'pattern'
オプションで、オブジェクト名でコマンド出力をフィルタリングします。フィルターは、 SQL ワイルドカード文字(
%
および_
)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。たとえば、次のパターンは 同じ 結果を返します。
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. デフォルト: 値なし(フィルタリングは出力に非適用)。
[ IN ... ]
オプションで、コマンドのスコープを指定します。次のいずれかを指定します。
ACCOUNT
アカウント全体の記録を返します。
DATABASE
、 .DATABASE db_name
現在使用中のデータベースまたは指定されたデータベース(
db_name
)の記録を返します。db_name
なしでDATABASE
を指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。SCHEMA
、 .SCHEMA schema_name
、 .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'
は結果を返します(入力文字列に一致する行がある場合)。
使用上の注意¶
アカウント(またはデータベースまたはスキーマ)に多数のテーブルがある場合、アカウント全体(またはテーブルまたはスキーマ)を検索すると、大量のコンピューティングリソースが消費される可能性があります。
出力では、結果がデータベース名、スキーマ名、そしてテーブル名の順に並べ替えられます。これは、データベースの結果に複数のスキーマからのテーブルが含まれる可能性があり、ページネーションの崩れる可能性があることを意味します。ページネーションが期待どおりに動作するためには、単一のスキーマに対して SHOW TABLES コマンドを実行する必要があります。SHOW TABLES コマンドに IN SCHEMA
schema_name
パラメーターを使用することができます。あるいは、 SHOW TABLES コマンドを実行する前に USE SCHEMA コマンドを実行すると、現在のコンテキストでスキーマを使用することができます。
このコマンドの実行には、稼働中のウェアハウスを必要としません。
LIMIT rows
の値は10000
を超えることはできません。LIMIT rows
が省略され、結果セットが10K行より大きい場合、コマンドはエラーになります。10Kを超える記録が存在する結果を表示するには、
LIMIT rows
を含めるか、 Snowflake Information Schema の対応するビューをクエリします。
このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。
出力¶
コマンド出力では、次の列にテーブルプロパティとメタデータが提供されます。
列 |
説明 |
---|---|
created_on |
テーブルが作成された日時。 |
名前 |
テーブルの名前。 |
database_name |
テーブルが保存されているデータベース。 |
schema_name |
テーブルが保存されているスキーマ。 |
種類 |
テーブルタイプ: TABLE (永続テーブル用)、 TEMPORARY、または TRANSIENT。 |
コメント |
テーブルのコメント。 |
cluster_by |
テーブルのクラスタリングキーとして定義された列。 |
行 |
テーブル内の行数。外部テーブルの場合はNULLを返します。 |
bytes |
クエリでテーブル全体がスキャンされる場合にスキャンされるバイト数。この数は、テーブルの実際の物理バイト(ディスクに保存されているバイト)数とは異なる場合があることに注意してください。 |
所有者 |
テーブルを所有するロール。 |
retention_time |
変更および削除されたデータがTime Travel用に保持される日数。 |
dropped_on |
テーブルがドロップされた日時。テーブルがアクティブな場合は NULL。この列は、コマンドに HISTORY キーワードが指定されている場合にのみ表示されます。 |
automatic_clustering |
アカウントで 自動クラスタリング が有効になっている場合、テーブルで明示的に有効( |
change_tracking |
|
search_optimization |
|
search_optimization_progress |
検索用に最適化されたテーブルのパーセンテージ。この値は、最適化が最初にテーブルに追加されたとき、および検索最適化サービスで保守が行われたときに増加します。新しく最適化されたテーブルでの検索最適化のパフォーマンス向上を測定する前に、これがテーブルの完全最適化を示すまで待ちます。 |
search_optimization_bytes |
このテーブルのために検索最適化サービスが消費するストレージの追加バイト数。 |
is_external |
外部テーブルの場合は |
enable_schema_evolution |
テーブルで スキーマ進化 が有効になっている場合は |
owner_role_type |
オブジェクトを所有するロールのタイプ、 |
is_event |
イベントテーブルである場合は |
budget |
オブジェクトが予算によって監視されている場合、 予算 の名前です。それ以外の場合は、 NULL です。 |
is_hybrid |
ハイブリッドテーブルの場合は |
is_iceberg |
テーブルが Icebergテーブル の場合は |
テーブルのために指定できるプロパティの詳細については、 CREATE TABLE をご参照ください。
注釈
クローンテーブルおよび削除されたデータを含むテーブルの場合、テーブルに表示される bytes
は、テーブルの物理バイト数と異なる場合があります。
クローンテーブルは、新しい行がテーブルに追加されるか、テーブル内の既存の行が変更または削除されるまで、追加のデータストレージを利用しません。テーブルがほとんどまたはまったく変更されていない場合、表示されるバイト数は、テーブルに保存されている実際の物理バイト数よりも 多くなります。
テーブルから削除されたデータは、データのTime Travel保持期間(デフォルトは1日)とFail-safe期間(7日)の両方が経過するまでSnowflakeで維持されます。これら2つの期間中、表示されるバイト数は、テーブルに保存されている実際の物理バイト数よりも 少なくなります。
クローン作成、Time Travel、およびFail-safeに関連するバイト単位のテーブルサイズの詳細については、 TABLE_STORAGE_METRICS Information Schemaビューをご参照ください。
例¶
これらの例は、指定されたパラメーターに基づいて表示する権限を持つすべてのテーブルを示しています。
サンプルデータセット のテーブルに対して SHOW TABLES を実行します。例では、 TERSE パラメーターを使用して出力を制限します。
tpch_sf1
スキーマのLINE
で始まる名前を持つすべてのテーブルを表示します。SHOW TERSE TABLES IN tpch_sf1 STARTS WITH 'LINE';+-------------------------------+----------+-------+-----------------------+-------------+ | created_on | name | kind | database_name | schema_name | |-------------------------------+----------+-------+-----------------------+-------------| | 2016-07-08 13:41:59.960 -0700 | LINEITEM | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | +-------------------------------+----------+-------+-----------------------+-------------+
tpch_sf1
スキーマのPART
というサブ文字列を含む名前を持つすべてのテーブルを表示します。SHOW TERSE TABLES LIKE '%PART%' IN tpch_sf1;+-------------------------------+-----------+-------+-----------------------+-------------+ | created_on | name | kind | database_name | schema_name | |-------------------------------+-----------+-------+-----------------------+-------------| | 2016-07-08 13:41:59.960 -0700 | JPART | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | JPARTSUPP | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | PART | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | PARTSUPP | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | +-------------------------------+-----------+-------+-----------------------+-------------+
tpch_sf1
スキーマのテーブルを表示するが、出力は3行に制限し、J
で始まるテーブル名から開始します。SHOW TERSE TABLES IN tpch_sf1 LIMIT 3 FROM 'J';+-------------------------------+-----------+-------+-----------------------+-------------+ | created_on | name | kind | database_name | schema_name | |-------------------------------+-----------+-------+-----------------------+-------------| | 2016-07-08 13:41:59.960 -0700 | JCUSTOMER | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | JLINEITEM | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | JNATION | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | +-------------------------------+-----------+-------+-----------------------+-------------+
HISTORY パラメーターを使用してドロップされたテーブルを表示します。
現在のスキーマにテーブルを作成してから、それをドロップします。
CREATE OR REPLACE TABLE test_show_tables_history(c1 NUMBER); DROP TABLE test_show_tables_history;コマンド出力にドロップされたテーブルを含めるには、 HISTORY パラメーターを使用します。
SHOW TABLES HISTORY LIKE 'test_show_tables_history';出力では、
dropped_on
列にテーブルがドロップされた日時が表示されます。