11. 10
3. Snowflakeアーキテクチャ ~ステージ~
• ユーザ・ステージ、テーブル・ステージ、インターナル・
ネームドステージの3種類が存在
– ユーザステージ(@~)
ユーザ固有のファイルを格納するために用意されている
ステージング領域
– テーブルステージ(@<table_name>)
テーブルごとに用意されているステージング領域
– インターナルネームドステージ(@<stage_name>)
最も柔軟性があるステージング領域で、必要に応じて作成する必要があるステージ
ング領域で、複数ユーザでロードしたり、複数テーブルにロードする際に使用する
• データベースに登録したいファイルをPUTコマンドでステージング領域に格
納した後、COPY INTOコマンドでステージング領域からデータベーステーブ
ルにロード
• S3に格納されているデータであれば、COPY INTOコマンドでステージング領
域を経由して直接データベーステーブルにロード可能
• ロードファイルは10~100MBに分割しておいた方がパフォーマンスを上げる
ことが可能
• データロードだけでなく、ステージ、もしくはS3にアンロード可能
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
12. 11
3. Snowflakeアーキテクチャ ~テーブル(1/3)~
<マイクロパーティション>
• 従来型のデータウェアハウスでは、パフォーマンスと
スケーラビリティを実現するために、テーブルを静的
パーティショニングで分割
₋ 指定する分散キーによっては、データが不均衡になる
₋ メンテナンスに手間がかかる
• Snowflakeでは、テーブル内のデータが複数行単位で自動分割され、それぞれマイ
クロパーティションにマッピングされる
₋ ユーザが明示的にデータ分割方式を定義する必要がない
• 圧縮前で50~500MB(Snowflake内では圧縮される)に
分割されるため、クエリ高速化するためのプルーニング、
DMLの効率化が可能
• マイクロパーティション内で列ごとに個別に格納、
圧縮される
Country Product Revenue
US Camera 3,000
US TV 1,250
JP Camera 700
US Video 2,000
JP TV 500
UK TV 450
■テーブルイメージ
PRODUCT_REVENUEテーブル
Micro
Partition1
(row3,5,6)
Country
JP
JP
UK
Product
Camera
TV
TV
Revenue
700
500
450
Micro
Partition2
(row1,2,4)
Country
US
US
US
Product
Camera
TV
Video
Revenue
3,000
1,250
2,000
■マイクロパーティション
物理格納イメージ
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
13. 12
3. Snowflakeアーキテクチャ ~テーブル(2/3)~
<クラスタリングキー>
• データ格納時に、日付などの列は自動的にソートされて格納
されるが、クラスタリングキーを定義することで、マイクロ
パーティション内のデータの並び順を明示的に制御することが可能
₋ カーディナリティが高いWHERE句で指定される列や結合列を指定することで、クエリの
スキャン効率や列圧縮率を高めることが可能
₋ 明示的にRECLUSTER句を指定したALTER TABLEコマンドを実行することで、テーブル
を再クラスタリング可能
<永続テーブル/トランジエントテーブル/テンポラリテーブル>
• 永続テーブルは、ユーザが明示的に削除するまでデータが保持され、タイムトラ
ベル&リカバリが可能
• トランジエントテーブルは、ユーザが明示的に削除するまでデータが保持され、
タイムトラベルは可能だが、リカバリできない
• テンポラリテーブルは、セッション単位でデータを保持するため他のユーザは参
照できず、タイムトラベルは可能だが、リカバリはできない
Table Type Persistence Time Travel
Retention Period
(Days)
Failsafe Period
(Days)
永続(EE以上) 明示的に削除されるまで 0~90 7
永続(PE以下) 明示的に削除されるまで 0 or 1 7
トランジエント 明示的に削除されるまで 0 or 1 0
テンポラリ セッションの間 0 or 1 0
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
14. 13
3. Snowflakeアーキテクチャ ~テーブル(3/3)~
<セキュアビュー>
• セキュアビューを使用することで、ビュー定義、およびビュー
を構成するテーブルへのアクセスを隠蔽した状態であっても、
ユーザが必要なデータにアクセスすることが可能
₋ CURRENT_ACCOUNT、CURRENT_ROLE、CURRENT_USERファンクションを活用する
ことで、セキュアにデータシェアリング(後述)を行うことが可能
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
15. 14
3. Snowflakeアーキテクチャ ~ウェアハウス(1/2)~
• ウェアハウスは、ストレージと分離されたコンピュート
リソースで、クエリやDMLを実行する際に必ず必要
• ウェアハウスが起動している間、エディション、ウェアハウスサ
イズ、クラスタ数に応じてクレジットが消費され、費用がかかる
<エディション>
• エディションには、Standard Edition、Premier Edition、Enterprise Edition、
Enterprise Edition for Sensitive Data、Virtual Private Snowflakeがあり、
エディションごとにコンピュートリソースの単価が決められている
₋ 詳細は「4. 参考情報」のエディションごとの機能、サポートレベル、価格を参照
<ウェアハウスサイズ>
• ウェアハウスサイズは、クラスタ内のサーバ数を示していて、1サーバのスペックは
「Amazon C3.2XLarge 8 cores, 15 gigs of ram, 160 SSD」
₋ リニアな性能向上を実現 (ウェアハウスサイズを倍にすると、処理時間は1/2)
Warehouse
Size
Servers/
Cluster
Credits/
Hour
Credits/
Seconds
Additional Details
X-Small 1 1 0.0003 CREATE WAREHOUSEコマンド実行時のデフォルトサイズ
Small 2 2 0.0006
Medium 4 4 0.0012
Large 8 8 0.0024
X-Large 16 16 0.0048 Webインタフェースでウェアハウス作成時のデフォルトサイズ
2X-Large 32 32 0.0096
3X-Large 64 64 0.0192
4X-Large 128 128 0.0384
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
16. 15
3. Snowflakeアーキテクチャ ~ウェアハウス(2/2)~
<クラスタ数>
• ウェアハウス内でクラスタを複数作成可能(EE以上)
₋ クラスタ数は1~10を指定可能
₋ オートサスペンド(ユーザアクセスがなくなった後何秒でサスペンド
するか設定可能)/オートレジューム可能
₋ 4X-Largeで10クラスタ起動すると、1時間で1,280クレジット(EEの場合3,840ドル)かか
るため、クラスタ数を増やす場合は慎重に!
• ALTER WAREHOUSEコマンドにて、ウェアハウスのサスペンド/レジューム可能
₋ サスペンドしている間は課金されない
₋ ウェアハウスが起動している間のみ秒単位で課金される
• 例えばオンライン/夜間バッチのようにユースケースが異なる処理については、
ウェアハウスを複数作成することでウェアハウス間の競合なく処理を行うことが
可能
• ウェアハウスサイズによって単一処理時間、クラスタ数によって同時実行数を調
整することが可能
• パーティションキャッシュはマイクロパーティションのキャッシュで、ウェアハ
ウス起動後にクエリを実行することで、スキャン対象データがウェアハウスの実
体であるEC2のSSDにキャッシュされる
₋ ウェアハウスの起動/レジューム直後はデータがキャッシュされていないため、初回アク
セスから性能を出したい場合は、ウォームアップも検討する必要あり
₋ 検索対象データが大量な場合は、全てのデータがSSDに載るかも確認が必要
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
17. 16
3. Snowflakeアーキテクチャ ~リザルトキャッシュ~
• クエリの実行結果のキャッシュでS3に格納されている
• クライアントはクラウドサービス経由か直接S3からダウンロード
₋ サイズの上限はない
₋ 性能検証を行う場合はUSE_CACHED_RESULTをFALSEにすることで
リザルトキャッシュを無効化することも検討
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
18. 17
3. Snowflakeアーキテクチャ ~ユーザアクセス~
• 標準SQL
₋ SQL-99の大部分、およびSQL-2003の分析拡張部分をサポート
₋ データ型、SQL構文、事前定義関数
https://docs.snowflake.net/manuals/sql-reference/intro-
summary-sql.html
• ユーザ定義関数
₋ https://docs.snowflake.net/manuals/sql-reference/user-
defined-functions.html
• トランザクションサポート
₋ https://docs.snowflake.net/manuals/sql-
reference/transactions.html
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ
19. 18
3. Snowflakeアーキテクチャ ~その他情報~
<Data Sharing>
• 従来のデータ連携では、ファイル出力/連携/取り込み、もしくは
APIによる連携が必要だった
• Snowflakeが以下のアーキテクチャを持っていることで、自社DB
と他社DBの一部をセキュリティを担保しつつ、最も効率的に連携することが可能
₋ コンピュートとストレージの疎結合
₋ 強固なメタデータ管理によるアクセス制御
₋ 無制限な同時実行
<クローン>
• テーブル、スキーマ、データベース単位でクローニング可能
• タイムトラベル機能と合わせて使用することで、EE以上であれば
最大90日前のクローンも作成可能
<バックアップ&リカバリ>
• 従来型のデータベースでは、多くの場合完全バックアップと増分バックアップを
取得
₋ データストレージの増大
₋ データ再ロード、リカバリ時のビジネスダウンタイム
₋ (場合によって)最後のバックアップ以降のデータ損失
• マルチデータセンタや冗長化アーキテクチャは従来のバックアップの必要性を大
幅に軽減する
• データ破損や紛失の可能性はあるため、効率的で費用対効果の高いバックアップ
の代替手段として、7日間分の回復可能な履歴データ(Failsafe)を自動取得
Staging Location(S3バケット) F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
F
i
l
e
s
テーブル
(Object)
S3
EC2
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
ウェアハウス
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
S
S
D
(
パ
ー
テ
ィ
シ
ョ
ン
キ
ャ
ッ
シ
ュ
)
・
・
・
リザルトキャッシュ
オンラ
イン用
Wareh
ouse
バッチ
用
Ware
house
リザルトキャッシュ クラウド
サービス
認証、
認可
イン
フラ
管理
Web
管理
ツー
ル
オプ
ティ
マイ
ザ
トラ
ンザ
ク
ショ
ン管
理
セ
キュ
リ
ティ
ステージ
(Object)
メタ
デー
タ