なぜ重要か
従来は、動的Apache Icebergテーブルの作成と既存テーブルの変更を別の操作として扱う必要がありました。この機能により、同じ宣言的な定義を再実行して、作成または既存定義への反映を行えるようになります。一方、未指定プロパティがデフォルト値に戻るため、既存設定を意図せず変更しない設計が必要です。
対象となるチーム
- データ基盤・データエンジニアリングチーム
- Snowflake管理者・プラットフォームエンジニア
- CI/CDやIaCを担当する開発・運用チーム
- Apache Icebergテーブルを管理するデータレイクチーム
提供条件
- 公開日: 2026-08-13
- 提供ステータス: リリースノートに記載なし
- 対応エディション: リリースノートに記載なし
- 対応リージョン: リリースノートに記載なし
- 前提機能・必要バージョン: リリースノートに記載なし
ユースケース
- CI/CDでテーブル定義を再実行可能な形で管理する。初回は作成、2回目以降は既存テーブルの目標状態への更新に利用できます。
- 開発・検証・本番環境へ同じ動的Icebergテーブル定義を展開する。環境ごとの差分は、定義を生成する仕組み側で管理します。
- 運用中のテーブルプロパティを宣言的に見直す。指定しない設定がデフォルト値へ戻るため、変更対象だけでなく維持したい設定も定義に含めます。
- テーブルが存在するかどうかを事前に分岐せず、デプロイ用SQLを統一する。コマンド実行後に必要なリフレッシュは別の運用として扱います。
仕組みと使い方
使用するコマンドは CREATE OR ALTER DYNAMIC ICEBERG TABLE です。対象テーブルが存在しない場合は作成し、存在する場合は文で指定した完全な目標状態に合わせてインプレースで変更します。指定しなかったプロパティはデフォルト値にリセットされます。コマンド自体はリフレッシュを起動しないため、データ更新が必要な場合の手順は別途設計してください。具体的な句やプロパティの構文は、公式の CREATE OR ALTER DYNAMIC ICEBERG TABLE リファレンスで確認します。
導入ステップ
- 公式構文を確認し、作成時・変更時に設定するプロパティを洗い出します。
- 既存テーブルの定義と設定を確認し、維持したいプロパティを目標状態の定義に明示します。
- まず非本番環境で
CREATE OR ALTER DYNAMIC ICEBERG TABLEを実行し、作成または変更結果を検証します。 - リフレッシュが必要な処理かどうかを判断し、必要であれば別コマンドまたは既存の運用手順で実施します。
- 権限、エディション、リージョンでの利用可否を公式ドキュメントとアカウント環境で確認してから本番へ展開します。
運用上の注意
- この文は完全な目標状態を表します。指定しないプロパティはデフォルト値に戻るため、既存設定を保持したい場合は定義への記載漏れに注意してください。
- コマンドを実行してもリフレッシュは自動的に開始されません。定義変更とデータ更新のタイミングを分けて運用してください。
- 既存テーブルに対する変更可能範囲を事前に確認してください。特定のストレージ・カタログ関連プロパティは変更できません。
- 本番で直接試す前に、既存テーブルの定義を取得して差分を確認する運用が適しています。
制約事項
- 既存の動的Icebergテーブルについて、EXTERNAL_VOLUME、CATALOG、BASE_LOCATIONの変更はサポートされません。
- 通常のdynamic tableをdynamic Iceberg tableへ変換することはできません。
- dynamic Iceberg tableを通常のdynamic tableへ変換することもできません。
- 提供ステータス、エディション、リージョンごとの制約はリリースノートに記載がありません。
次に確認すること
- 公式の
CREATE OR ALTER DYNAMIC ICEBERG TABLE構文ページで、使用可能な句、プロパティ、変更時の制約を確認する。 - 対象アカウントでの提供状況、必要な権限、エディション、リージョン対応を確認する。
- 既存テーブルの定義を取得し、未指定プロパティがデフォルトへ戻る影響を非本番環境で検証する。
- コマンド実行後にリフレッシュが必要な場合の公式手順と、既存パイプラインへの影響を確認する。
公式情報
仕様・提供条件は更新される可能性があります。導入前に必ず公式リリースノートを確認してください。