SHOW ICEBERG TABLES

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

このコマンドを使用して、現在の/指定されたデータベースまたはスキーマの、またはアカウント全体のIcebergテーブルを一覧表示できます。

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

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

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

CREATE ICEBERG TABLEDROP ICEBERG TABLEDESCRIBE ICEBERG TABLEALTER ICEBERG TABLESHOW TABLES

構文

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

パラメーター

TERSE

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

  • created_on

  • name

  • kind

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

  • database_name

  • schema_name

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

ICEBERG

Icebergテーブルのみを返します。

LIKE 'pattern'

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

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

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

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

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

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

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

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

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

  • db_name を指定しない場合は、次のようになります。

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

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

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

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

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

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

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

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

アクセス制御の要件

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

権限

オブジェクト

メモ

SELECT

Icebergテーブル

SHOW ICEBERG TABLES の出力に特定のIcebergテーブルを表示するには、ロールがそのテーブルに対して SELECT 権限を持っている必要があります。

スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。

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

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

使用上の注意

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

  • このコマンドは、実行中のウェアハウスを必要としません。

  • LIMIT rows の値は 10000 を超えることはできません。 LIMIT rows が省略され、結果セットが10K行より大きい場合、コマンドはエラーになります。

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

  • このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。

出力

注釈

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

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

説明

created_on

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

name

テーブルの名前。

database_name

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

schema_name

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

owner

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

external_volume_name

Icebergテーブルのデータとメタデータが保存されている外部ボリュームの名前。

catalog_name

テーブルがSnowflakeによって管理されていない場合、Icebergテーブルに関連付けられたカタログ統合オブジェクトの名前。テーブルがSnowflakeによって管理されている場合は SNOWFLAKE

iceberg_table_type

Icebergテーブルのタイプ。テーブルがSnowflakeによって管理されていない場合は UNMANAGED。それ以外の場合は、 NOT ICEBERG

catalog_table_name

カタログが認識するテーブル名。

catalog_namespace

テーブルのカタログ名前空間。テーブル作成時に定義された名前空間。それ以外の場合は、テーブルによって使用されるカタログ統合に関連付けられたデフォルトの名前空間。

file_path

EXTERNAL_VOLUME の場所からテーブルのメタデータとデータファイルへの相対パス。特定のタイプのIcebergテーブルを作成する場合に BASE_LOCATION として定義されます。

can_write_metadata

Snowflakeが file_path で指定された場所にメタデータを書き込めるかどうかを示します。

comment

テーブルのコメント。

name_mapping

列の投影 を使用するテーブル列に関する情報を持つオブジェクトのリスト。詳細については、 name_mapping をご参照ください。

owner_role_type

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

name_mapping

name_mapping 出力列は、 列の投影 を使用するテーブル列に関する情報を提供します。

テーブルに関連する名前マッピングを持つ列がない場合、出力列の値は [NULL] になります。それ以外の場合、値はオブジェクトのリストであり、各オブジェクトは関連する名前のマッピングを持つ列に対応しています(マッピングされたフィールドと呼ばれることもあります)。各オブジェクトは次の3つのプロパティを含むことができます。

  • field-id: Icebergフィールド ID。

  • names: フィールドの名前文字列のリスト。

  • fields: 構造体、マップ、リスト列の子フィールドのフィールドマッピングのリスト。

例:

[
  {
    "field-id": 1,
    "names": [
      "id",
      "record_id"
    ]
  },
  {
    "field-id": 2,
    "names": [
      "data"
    ]
  },
  {
    "field-id": 3,
    "names": [
      "location"
    ],
    "fields": [
      {
        "field-id": 4,
        "names": [
          "latitude",
          "lat"
        ]
      },
      {
        "field-id": 5,
        "names": [
          "longitude",
          "long"
        ]
      }
    ]
  }
]
Copy

注釈

列(または 構造化型 列のフィールド)に関連する名前マッピングがない場合、フィールド IDs は連続しない可能性があります。

tpch.public スキーマで表示する権限がある、名前が glue で始まるすべてのIcebergテーブルを表示します。

SHOW ICEBERG TABLES LIKE 'glue%' IN tpch.public;
Copy

SHOW TABLES によるIcebergテーブルの識別

SHOW TABLES コマンドの出力には、テーブルがIcebergテーブルであるかどうかを示す列があります。この列は、通常の SHOW TABLES 出力列 に加えて表示されます。

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

列名

is_iceberg

テーブルがIcebergテーブルの場合、 Y、それ以外の場合は N