Snowflakeでは、用途や保持期間、復元性、コストなどの要件に応じて4種類のテーブルを使い分けることができます。それぞれのテーブルタイプの特徴を、以下のように体系的にまとめます。
テーブルタイプ | 保存期間 | Time Travel | Fail-safe | 主な用途・特徴 |
---|
Permanent(永続) | 永続的 | 最大90日(デフォルト1日) | 7日間 | 通常のプロダクションデータ、バックアップやアーカイブにも適 |
Transient(一時的) | 永続的 | 最大1日(デフォルト1日) | なし | 一時的だが再利用するデータ、コスト削減重視の用途 |
Temporary(一時) | セッション中 | セッション中のみ有効 | なし | ステージング、ETL中間データ、一時的な演算結果保存 |
External(外部) | 外部ストレージ | なし | なし | S3などの外部ストレージにあるデータを仮想的に参照 |
🔍 各タイプの補足説明
✅ 1. Permanent Table(永続テーブル)
- デフォルトのテーブルタイプ。
- Time TravelとFail-safeが利用可能で、バックアップやデータ保全に最適。
- コストは最も高いが、重要データの保持に向く。
✅ 2. Transient Table(トランジェントテーブル)
- Fail-safeが無効化されているため、コスト削減に向く。
- Time Travelは使用可能(最大1日)。
- ログデータや一時的だがセッションを超えて使いたいデータに適している。
✅ 3. Temporary Table(テンポラリテーブル)
- セッションが終了すると自動削除。
- 他のユーザーやセッションからは見えない。
- ETL処理の一時保存に最適で、性能面でも軽量。
✅ 4. External Table(外部テーブル)
- 実体はSnowflake外(例:Amazon S3)にある。
- スキーマ定義はSnowflake内に持ち、データはクエリ時にアクセス。
- データレイク連携や大規模ログ分析などに使用される。
💡 選び方の観点まとめ
観点 | 推奨テーブルタイプ |
---|
高可用性・安全性 | Permanent |
コスト削減 | Transient or Temporary |
一時利用 | Temporary |
外部連携 | External |