SHOW EXTERNAL TABLES¶
アクセス権限がある外部テーブルをリストします。このコマンドを使用して、現在の/指定されたデータベースまたはスキーマの、またはアカウント全体の外部テーブルを一覧表示できます。
出力は、データベース、スキーマ、および外部テーブル名の辞書順に並べられた外部テーブルのメタデータとプロパティを返します。出力列の説明については、このトピック内の詳細については、出力 をご参照ください。提供されたフィルターを使用して結果をフィルターする場合は、この動作を理解することが重要です。
- こちらもご参照ください。
CREATE EXTERNAL TABLE、 DROP EXTERNAL TABLE、 ALTER EXTERNAL TABLE、 DESCRIBE EXTERNAL TABLE
構文¶
SHOW [ TERSE ] EXTERNAL TABLES [ LIKE '<pattern>' ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
APPLICATION <application_name> |
APPLICATION PACKAGE <application_package_name> |
}
]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
パラメーター¶
TERSE出力列のサブセットのみを返します。
created_onnamekinddatabase_nameschema_name
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を指定しても出力には影響しません。
APPLICATION application_name、 .APPLICATION PACKAGE application_package_name名前付き Snowflake Native App またはアプリケーションパッケージの記録を返します。
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'は結果を返します(入力文字列に一致する行がある場合)。
出力¶
コマンド出力では、次の列にテーブルプロパティとメタデータが提供されます。
列 |
説明 |
|---|---|
created_on |
外部テーブルが作成された日時。 |
name |
外部テーブルの名前。 |
database_name |
外部テーブルのスキーマのデータベース。 |
schema_name |
外部テーブルのスキーマ。 |
invalid |
TRUE 外部テーブルの説明で参照されているステージまたはファイル形式のいずれかが削除された場合。 |
invalid_reason |
INVALID 列に TRUE 値が表示されている場合、外部テーブルが無効である理由。 |
owner |
外部テーブルを所有するロール。 |
comment |
外部テーブルのコメント。 |
stage |
外部テーブル定義で参照されるステージの完全修飾名。 |
location |
外部テーブル定義の外部ステージとフォルダーパス。データコンシューマーアカウントでインポートされた共有の外部テーブルの NULL。 |
file_format_name |
外部テーブル定義の名前付きファイル形式。ステージ定義で指定されたファイル形式を表示しません。 |
file_format_type |
外部テーブル定義で指定されたファイル形式タイプ。ステージ定義で指定されたファイル形式タイプを表示しません。 |
cloud |
ステージングされたデータファイルが配置されているクラウド。 |
region |
ステージングされたデータファイルが配置される地域。 |
notification_channel |
外部テーブルのAmazon SQS キューのAmazonリソース名。 |
last_refreshed_on |
外部テーブルのメタデータが、手動または自動のいずれかで、外部ステージおよびパスの関連ファイルの最新セットと最後に同期された時間を示すタイムスタンプ。 |
table_format |
外部テーブルによって参照されるステージングされたファイルのテーブル形式。可能な値: DELTA、 UNSPECIFIED。 |
last_refresh_details |
将来の機能をサポートします。現在は NULL のみです。 |
owner_role_type |
オブジェクトを所有するロールのタイプ。例えば |
外部テーブルに指定できるプロパティの情報については、 CREATE EXTERNAL TABLE をご参照ください。
使用上の注意¶
このコマンドでは、削除された外部テーブルはリストされません。
このコマンドの実行には、稼働中のウェアハウスは必要ありません。
このコマンドは、現在のユーザーの現在のロールに少なくとも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 の対応するビューをクエリします。
例¶
tpch.public スキーマで表示する権限がある、名前が line で始まるすべての外部テーブルを表示します。
SHOW EXTERNAL TABLES LIKE 'line%' IN tpch.public;