Snowflakeのマイクロパーティションのメリットと関西ユーザー会
Snowflakeの関西のユーザー会の熱量が高いと聞き、ぜひ体感してみたいとのことで参加をしてきました。
Snowflakeはコミュニティ活動がたいへん盛んで、さまざまなイベントが企画・実践されています。今は東京が主力ですが、関西も追いつけ追い越せという勢いを感じました。
マイクロパーティションについて学ぶ
Snowflake Data SuperheroであるSakatokuさんによるSnowflakeのアーキテクチャであるマイクロパーテイションについてたっぷり紹介していただきました。
当日の資料も公開してくださり、学習が捗ります。
そしてWestのメンバーの方がマイクロパーティションのまとめの図を用意してくださいました。この図を見れば今回の記事のすべてがわかります。
本記事ではマイクロパーテイションがあることでのメリットの部分を抜粋して紹介します。
列指向型のデータベースである
圧縮率や集計速度を上げるためか、Snowflakeの基本コンセプトは列指向型
ただしハイブリッドテーブルがあるため、行指向型を選択することができる。アプリや基幹システムなどでINSERTやUPDATEが大量発生する場合のロック緩和を考えることができる。
行指向、列指向の詳細については別の記事で紹介します。
メタデータを有効に活用して集計レスポンスを上げる
マイクロパーティション単位でメタデータを保有しており、SELECTの段階でメタデータを見に行くことで集計レスポンスを向上させる動きがある。
カーディナリティの情報もあるので、メタデータを見るだけである程度集計レスポンスを予測することができるのもいいですね。
不変(イミュータブル)を活用したタイムトラベル
マイクロパーティションはその情報を保持し続ける。過去の情報も効率的に保存をしており、参照することができる。
尚、数件程度のマイクロパーティションは内部的にオートマージするように設計されているよう。
旧ファイルが存在し続ける限り、過去のファイルを参照して以前のデータを掘り起こすことができる。
さいごに
SnowflakeはクラウドDBとしての高い技術力だけでなく初心者エンジニアにも入門しやすい設計となっている。またコミュニティの充実度からも自己学習が捗る製品であり、今後の拡張性もあることを体感しました。
今後、弊社ビジネスでもSnowflakeを導入・活用をしていくので、さらに学習・体験を深めてまいります。