ALTER ICEBERG TABLE ... CONVERT TO MANAGED¶
外部Icebergカタログを使用する Apache Iceberg™テーブル を、Snowflakeをカタログとして使用するテーブル(Snowflake管理Icebergテーブル)に変換します。
変換されたテーブルは、読み取りと書き込みの両方の操作をサポートし、Snowflakeはコンパクションなどのテーブルのすべてのライフサイクルメンテナンスを処理します。詳細については、 テーブル変換前と変換後 をご参照ください。
構文¶
ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> CONVERT TO MANAGED [ BASE_LOCATION = '<directory_for_table_files>' ] [ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ] パラメーター¶
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';