こちらの記事は、Azure BLOBのデータをSnowflakeに連携しPower BIで可視化するまでの手順を解説する、計4記事に渡るシリーズものの1記事です。
- 【第0回】 Snowflake とは ★本記事
- 【第1回】 データベース・スキーマ・テーブル作成
- 【第2回】 Azure~Snowflake間のデータ連携
- 【第3回】 テーブルの可視化
Snowflakeとは
SnowflakeはSaaS型のクラウドデータプラットフォームです。サイロ化されているデータの一元管理・統合や分析等、様々なワークロードを単一のプラットフォームで実現可能です。
また、社内外でのデータ共有も可能です。グループ企業・社外パートナーのデータやオープンデータを活用し、データ分析を促進できます。
Snowflakeには以下のような特長があります。
- AWS・Azure・GCPなどのクラウドサービス上で動作する
- 独自のSQLデータベースエンジンにより高速なデータ処理を実現
- クエリに必要なリソースに応じて、ウェアハウス(計算リソース)が自動でスケーリングされるため、複数のユーザーが同時にクエリを実行しても遅延が発生しない
- データは自動的にマイクロパーティションに分割され、列指向の状態に編成されるため、複雑なチューニングをすることなく、一定のクエリ処理性能を実現
- フルマネージドサービスのため、運用負荷が軽減される
- Secure Data Sharing機能によるSnowflakeアカウント間でのデータ共有が可能
Snowflake アーキテクチャ
Snowflakeはストレージ、コンピュート、クラウドサービスの3層のアーキテクチャになっています。
それぞれの層は物理的には分離されていますが、論理的には統合されています。
ストレージ層
Snowflakeにロードされたデータが保存される層です。
Snowflakeにロードされたデータは自動で圧縮されるため、ストレージコストが最適化されます。
Snowflakeテーブル内のすべてのデータは、連続したストレージ単位であるマイクロパーティションに自動的に分割されます。テーブル内の行のグループは個々のマイクロパーティションにマップされ、列指向の状態に編成されます。この構造により、非常に大きなテーブルに対してもきめ細かなプルーニングが可能になっています。
顧客はSnowflakeに保存されたデータに直接アクセスすることはできず、SQL操作でのみアクセスすることができます。
データのロード/アンロードが可能なクラウドストレージは以下です。
-
- Amazon S3
- Azure Blob
- Google Cloud Storage
コンピュート層
SQLクエリの実行はコンピュート層で行われます。
Snowflakeでは、仮想ウェアハウスという計算リソースを使用し、クエリを処理します。
各仮想ウェアハウスはクラウドパロバイダーからSnowflakeによって割り当てられたMPPコンピュートクラスタです。
各仮想ウェアハウスは他の仮想ウェアハウスと独立しているため、各仮想ウェアハウスは他の仮想ウェアハウスのパフォーマンスに影響を与えません。
クラウドサービス層
クラウドサービス層は、Snowflake全体のアクティビティを調整するサービスのコレクションになっています。
クラウドサービス層で管理されるサービスは以下です。
- 認証
- インフラストラクチャ管理
- メタデータ管理
- クエリの解析および最適化
- アクセス制御
これらのサービスが、ログインからクエリディスパッチまでのユーザーリクエストを処理するために、Snowflakeのさまざまなコンポーネントをすべて結び付けています。
連携できるサードパーティツール
Snowflakeは以下のカテゴリに分類される様々なサービスと連携することができます。
- SQL 開発および管理
- DBeaver、SQL Workbench等
- セキュリティ、ガバナンス、および可観測性
- Informatica、Datadog等
- データ統合
- Talend、Fivetran等
- ビジネスインテリジェンス(BI)
- Microsoft Power BI、Tableau等
- ネイティブプログラムインターフェイス
- Apache Spark、Python等
- 機械学習およびデータサイエンス
- Databricks、DataRobot等
その他連携可能なツールに関しましては、「https://docs.snowflake.com/ja/user-guide/ecosystem-all.html#all-partners-technologies-alphabetical」のサイトから確認することができます。
コスト試算
コスト試算は「https://www.snowflake.com/pricing/?lang=ja」のサイトから確認することができます。
クラウドサービスをAWS、リージョンをAsia Pacific(Tokyo)、USD支払いの場合、下図のように試算されます。試算額は2023/03/17時点のものです。
1クレジットは最小サイズの仮想ウェアハウスを1時間起動した場合の料金に当たります。
ストレージにはオンデマンド(従量課金)とキャパシティ(事前購入)のオプションがあります。
仮想ウェアハウスの利用コストについては予測が難しいです。
無料トライアル「https://signup.snowflake.com/?_l=ja」でリソース感を把握できれば、より詳細なコスト試算が可能です。
おわりに
本記事ではSnowflakeの概要を紹介させていただきました。
次回はSnowflake上でのデータベース・スキーマ・テーブルの作成方法について紹介させていただきます。