Snowflakeの認定資格Snowpro Coreでよく問われるシェア・クローン・レプリケーションができるオブジェクトについてまとめてみました。
試験勉強や実務にご活用ください。
シェアできるもの
Snowflakeでは共有したいものをカプセル化したシェアオブジェクトを使うことで、異なるアカウント間でデータを共有します。
ここではそのシェアオブジェクトに追加できるものが、シェア可能なものという扱いになります。
- データベース
- スキーマ (データベースについてくる。単体では不可。)
- テーブル
- 動的テーブル
- 外部テーブル
- Apache Icebergテーブル
- セキュアビュー
- セキュアマテリアライズドビュー
- セキュアユーザー定義関数
- コードなしモデル
ノーマルビューなどのセキュアでないオブジェクトはSECURE_OBJECTS_ONLY=FALSE
を指定することでシェア可能。
参考資料
クローンできるもの
Snowflake上のオブジェクトを瞬時にコピーできるのがクローン機能です。
クローンされただけではストレージを消費せず、スナップショットとして簡単に保持できるのが特徴です。
- データベース
- スキーマ
- テーブル(仮テーブルを除く)
- マイクロパーティション(テーブルのクローンについてくる。単体では不可。)
- 外部ステージ
- 内部ステージ(名前付きでないもの)
参考資料
レプリケーション(複製)できるもの
レプリケーション機能はデータベースやアカウント全体を別のリージョンやアカウントにコピーする機能です。
レプリケーションはデータの複製を目的としたときはデータベース単位、ユーザーやロールなどのオブジェクトの複製を目的としたときはアカウント単位で行います
- データベース
- テーブル(自動クラスタリング含む)
- 永続テーブル
- 一時テーブル(Transient Table)
- 動的テーブル
- シーケンス
- ビュー
- 通常ビュー
- マテリアライズドビュー
- セキュアビュー
- ファイル形式
- ステージ
- パイプ
- ストアドプロシージャ
- ストリーム
- タスク
- データメトリック
- ポリシー
- 集計ポリシー
- 認証ポリシー
- 列レベルマスキングポリシー
- パスワードポリシー
- プライバシーポリシー
- 投影ポリシー
- 行アクセスポリシー
- セッションポリシー
- タグベースのマスキングポリシー
- タグ
- アラート
- シークレット
- ネットワークルール
- クラスインスタンス
- パッケージポリシー
- シェアオブジェクト
- 自分がプロバイダーとして作成したもののみ(シェアされたものは不可)
以下はBusiness Critical Edition以上でできるもの
- 統合
- ネットワークポリシー
- アカウントに紐づいたパラメータ
- リソースモニター
- ロール
- ロールに付与された権限も一緒にレプリケーションされる
- ORGADMINも可能
- ユーザー
- ユーザーに付与されたロールも一緒にレプリケーションされる
- パスワードなどの認証設定も一緒に複製される
- ウェアハウス