SHOW SNAPSHOTS

注釈

この操作は現在、 Snowflake’s Support Policy and Service Level Agreement に規定されたService Levelセットの対象外です。

アクセス権限のある スナップショット をリストします。

このコマンドを使用して、セッションの現在のデータベースとスキーマ、指定したデータベースまたはスキーマ、またはアカウント全体のオブジェクトをリストします。

出力には、各オブジェクトのメタデータとプロパティが含まれます。オブジェクトは、データベース、スキーマ、オブジェクト名で辞書順にソートされます(出力列の説明については、このトピックの Output をご参照ください)。結果をフィルターする場合は、順序に注意することが重要です。

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

CREATE SNAPSHOTALTER SNAPSHOTDESCRIBE SNAPSHOTDROP SNAPSHOT

構文

SHOW SNAPSHOTS [ LIKE '<pattern>' ]
               [ IN
                   {
                       ACCOUNT                  |

                       DATABASE                 |
                       DATABASE <database_name> |

                       SCHEMA                   |
                       SCHEMA <schema_name>     |
                       <schema_name>            |
                   }
               ]
               [ STARTS WITH '<name_string>' ]
               [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

パラメーター

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

出力

コマンドの出力には、オブジェクトのプロパティとメタデータを説明する以下の列が含まれます。

説明

name

スナップショットの名前。

state

スナップショットの現在のステータスを示す以下の値のいずれか:

  • INITIALIZED: スナップショット作成中です。

  • CREATED: スナップショットが作成され、ボリュームの作成に使用できます。

  • ERROR: スナップショットの作成に失敗しました。

database_name

スナップショットが作成されるデータベース。

schema_name

スナップショットが作成されるスキーマ。

service_name

スナップショットの作成元となる完全修飾サービス名。

volume_name

スナップショットが作成される指定されたサービスインスタンスのボリューム。

instance

サービスインスタンスの ID。

size

スナップショットのサイズ(単位: GB)。

comment

スナップショットについての一般コメント。

owner

スナップショットを所有するロール。

owner_role_type

オブジェクトを所有するロールの型(ROLE または DATABASE_ROLE)。

created_on

スナップショットが作成された日時。

アクセス制御の要件

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

権限

オブジェクト

メモ

OWNERSHIP または USAGE

スナップショット

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

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

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

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

使用上の注意

  • プレフィックス is_ で始まる列は、 Y (はい)または N (いいえ)のいずれかを返します。

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

  • コマンドは、コマンドを実行するために使用されるロールのアクセス権によって決定された通り、指定されたオブジェクトタイプに対して 最大 10Kのレコードを返します。フィルタが適用されていても、10Kの制限を超えるレコードは返されません。

    10Kを超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。

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

次の例では、現在のデータベースとスキーマのスナップショットをリストします。

SHOW SNAPSHOTS;
Copy

出力:

+-------------+---------+---------------+-------------+------------------------------------+-------------+----------+------+-----------------+-----------+-----------------+-------------------------------+-------------------------------+
| name        | state   | database_name | schema_name | service_name                       | volume_name | instance | size | comment         | owner     | owner_role_type | created_on                    | updated_on                    |
|-------------+---------+---------------+-------------+------------------------------------+-------------+----------+------+-----------------+-----------+-----------------+-------------------------------+-------------------------------|
| MY_SNAPSHOT | CREATED | TUTORIAL_DB   | DATA_SCHEMA | TUTORIAL_DB.DATA_SCHEMA.MY_SERVICE | block-vol1  | 0        |   10 | updated comment | TEST_ROLE | ROLE            | 2023-12-13 17:06:04.162 -0800 | 2023-12-13 17:06:56.303 -0800 |
+-------------+---------+---------------+-------------+------------------------------------+-------------+----------+------+-----------------+-----------+-----------------+-------------------------------+-------------------------------+