SHOW HYBRID TABLES

アクセス権限がある ハイブリッドテーブル をリストします。

このコマンドを使用して、現在/指定のデータベースまたはスキーマの、またはアカウント全体のハイブリッドテーブルをリストできます。

このコマンドは SHOW TABLES とは異なる出力列を返します。

出力は、データベース、スキーマ、およびハイブリッドテーブル名の辞書順に並べられたハイブリッドテーブルのメタデータとプロパティを返します(出力列の説明については、このトピックの 出力 を参照)。これは、提供されたフィルターを使用して結果をフィルターする場合に注意することが重要です。

このトピックでは、 ハイブリッドテーブル と指定することで混乱を避ける場合を除き、ハイブリッドテーブルを単に「テーブル」と呼ぶことに注意してください。

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

CREATE INDEX、 DROP INDEX、 SHOW INDEXES、 CREATE HYBRID TABLE、 DROP TABLE、 DESCRIBE TABLE

構文

SHOW [ TERSE ] [ HYBRID ] TABLES [ LIKE '<pattern>' ]
                                 [ IN { ACCOUNT | DATABASE [ <db_name> ] | SCHEMA [ <schema_name> ] } ]
                                 [ STARTS WITH '<name_string>' ]
                                 [ LIMIT <rows> [ FROM '<name_string>' ] ]

パラメーター

TERSE

オプションで、出力列のサブセットのみを返します。

  • created_on

  • name

  • kind

    kind 列の値は常に HYBRID TABLE です。

  • database_name

  • schema_name

デフォルト:値なし(出力にすべての列を含む)

HYBRID

ハイブリッドテーブルのみを返します。

LIKE 'pattern'

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

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

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

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

IN  ACCOUNT | DATABASE [ db_name ] | SCHEMA [ schema_name ]

必要に応じて、コマンドのスコープを指定します。これはコマンドが、現在/指定されたデータベースまたはスキーマの記録のみをリストするか、アカウント全体に表示するかを決定します。

キーワード ACCOUNT を指定すると、コマンドは、現在のアカウントのデータベースすべてにあるすべてのスキーマの記録を取得します。

キーワード DATABASE を指定すると、次のようになります。

  • db_name を指定すると、コマンドは、指定されたデータベースのスキーマすべての記録を取得します。

  • :samp:`{db_name}`を指定しない場合、以下のようになります:

    • 現在のデータベースがある場合、コマンドは、現在のデータベースにあるスキーマすべての記録を取得します。

    • 現在のデータベースがない場合、コマンドは、アカウントにあるすべてのデータベースとスキーマの記録を取得します。

キーワード SCHEMA を指定すると、次のようになります。

  • 修飾されたスキーマ名(例: my_database.my_schema)を指定すると、コマンドは、指定されたデータベースとスキーマの記録を取得します。

  • 修飾されていない schema_name を指定すると、次のようになります。

    • 現在のデータベースがある場合、コマンドは、現在のデータベースにある指定されたスキーマの記録を取得します。

    • 現在のデータベースがない場合、コマンドは、エラー SQL compilation error: Object does not exist, or operation cannot be performed を表示します。

  • :samp:`{schema_name}`を指定しない場合、以下のようになります:

    • 現在のデータベースがある場合は、次のようになります。

      • 現在のスキーマがある場合、コマンドは、現在のデータベースにある現在のスキーマの記録を取得します。

      • 現在のスキーマがない場合、コマンドは、現在のデータベースにあるスキーマすべての記録を取得します。

    • 現在のデータベースがない場合、コマンドは、アカウントにあるすべてのデータベースとすべてのスキーマの記録を取得します。

デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベース: 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' は結果を返します(入力文字列に一致する行がある場合)。

使用上の注意

  • アカウント(またはデータベースまたはスキーマ)に多数のハイブリッドテーブルがある場合に、アカウント全体(またはデータベースまたはスキーマ)を検索すると、大量のコンピューティングリソースが消費される可能性があります。

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

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

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

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

    たとえば、パイプ演算子または RESULT_SCAN 関数を使用して、 SHOW コマンド出力から特定の列を選択したり、行をフィルター処理したりできます。

    出力列を参照する場合は、列名に 二重引用符で囲まれた識別子 を使用します。たとえば、出力列 type を選択するには、 SELECT "type" を指定します。

    SHOW コマンドの出力列名は小文字のため、二重引用符で囲まれた識別子を使用する必要があります。二重引用符により、 SELECT リストまたは WHERE 句内の列名が、スキャンされた SHOW コマンド出力内の列名と一致することが保証されます。

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

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

出力

注釈

次の出力スキーマは SHOW HYBRID TABLES コマンドのものです。SHOW TABLES の出力の情報については、 SHOW TABLES によるハイブリッドテーブルの識別 (このトピック内)をご参照ください。

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

列

説明

created_on

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

name

テーブルの名前。

database_name

テーブルが保存されているデータベース。

schema_name

テーブルが保存されているスキーマ。

owner

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

rows

テーブル内の行数。

bytes

クエリでテーブル全体がスキャンされる場合にスキャンされるバイト数。この数は、テーブルの実際の物理バイト数(つまりディスク上に保存されているバイト数)とは異なる可能性があることに注意してください。

comment

テーブルのコメント。

owner_role_type

オブジェクトを所有するロールのタイプ。例えば ROLE があります。. Snowflake Native App がオブジェクトを所有する場合、値は APPLICATION になります。. 削除されたオブジェクトには所有者ロールがないため、オブジェクトを削除した場合、Snowflakeは NULL を返します。

注釈

rows、 bytes 列の数値は、データが常に変化している場合(例えば、ハイブリッドテーブルに新しいデータが継続的に挿入されている場合)、正確でない可能性があります。

最初にテーブルを作成してロードした後、これらの列に NULL の値が表示される場合があります。バックグラウンドで圧縮操作が定期的に実行され、これらの統計情報は更新されます。大容量のロードの場合、初期の圧縮自体に時間がかかることがあります。その間、 SELECT COUNT(*) クエリを実行して、正確な行数を取得することができます。

SHOW TABLES によるハイブリッドテーブルの識別

SHOW TABLES コマンドの出力には、テーブルがハイブリッドテーブルであるかどうかを示す列があります。

この列は、通常の SHOW TABLES 出力列 に加えて表示されます。

この列には次のような名前と可能な値があります。

列名

値

is_hybrid

テーブルがハイブリッドテーブルの場合は Y、それ以外の場合は、 N。

例

mydb.myschema スキーマで表示する権限がある、名前が product_ で始まるすべてのハイブリッドテーブルを表示します。

SHOW HYBRID TABLES LIKE 'product_%' IN mydb.myschema;