ALTER ICEBERG TABLE ... CONVERT TO MANAGED

外部Icebergカタログを使用する Apache Iceberg™テーブル を、Snowflakeをカタログとして使用するテーブル(Snowflake管理Icebergテーブル)に変換します。

変換されたテーブルは、読み取りと書き込みの両方の操作をサポートし、Snowflakeはコンパクションなどのテーブルのすべてのライフサイクルメンテナンスを処理します。詳細については、 テーブル変換前と変換後 をご参照ください。

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

CREATE ICEBERG TABLEDROP ICEBERG TABLESHOW ICEBERG TABLESDESCRIBE ICEBERG TABLE

構文

ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> CONVERT TO MANAGED [ BASE_LOCATION = '<directory_for_table_files>' ] [ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ] 
Copy

パラメーター

table_name

変換するテーブルの識別子。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

[ BASE_LOCATION = 'directory_for_table_files' ]

Snowflakeがテーブルのデータファイルとメタデータファイルを書き込めるディレクトリへのパス。テーブルの EXTERNAL_VOLUME 位置からの相対パスを指定します。詳細については、 データとメタデータのディレクトリ をご参照ください。

元の CREATE ICEBERG TABLE ステートメントが BASE_LOCATION を許可していなかったり、含んでいなかったりする場合は、このプロパティの値を指定する必要があります。

テーブルを変換した後に、このディレクトリを変更することはできません。

STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED }

テーブルのストレージシリアル化ポリシーを指定します。変換時に指定されなかった場合、テーブルはスキーマ、データベース、またはアカウントレベルで設定された値を継承します。どのレベルでも値が指定されていない場合、テーブルではデフォルト値が使用されます。

テーブルを変換した後に、このパラメーターの値を変更することはできません。

  • COMPATIBLE:Snowflakeは、サードパーティのコンピューティングエンジンとの相互運用性を実現するエンコードと圧縮を実行します。

  • OPTIMIZED:Snowflakeは、Snowflake内で優れたテーブルパフォーマンスを実現するエンコードと圧縮を実行します。

デフォルト: OPTIMIZED

アクセス制御の要件

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

権限

オブジェクト

メモ

OWNERSHIP

Icebergテーブル

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

外部ボリューム

USAGE

カタログ統合

スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。

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

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

使用上の注意

  • このコマンドを実行できるのは、テーブルの所有者(つまり、テーブルに対する OWNERSHIP 権限を持つロール)以上のみです。

  • カタログリンクデータベースのテーブルの変換はサポートされていません。

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

次の例では ALTER ICEBERG TABLE ... CONVERT TO MANAGED ステートメントを使用して、Snowflakeが管理していないテーブルをIcebergカタログとしてSnowflakeを使用するテーブルに変換します。

ALTER ICEBERG TABLE myTable CONVERT TO MANAGED BASE_LOCATION = 'my/relative/path/from/external_volume'; 
Copy