SHOW ICEBERG TABLES

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

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

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

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

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

CREATE ICEBERG TABLE , DROP ICEBERG TABLE , DESCRIBE ICEBERG TABLE , ALTER ICEBERG TABLE , SHOW TABLES

構文

SHOW [ TERSE ] [ ICEBERG ] TABLES [ LIKE '<pattern>' ]
                                  [ IN
                                        {
                                          ACCOUNT                  |

                                          DATABASE                 |
                                          DATABASE <database_name> |

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

アクセス制御の要件

この 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