|
Snowflakeは、データウェアハウス(DWH)をはじめとした様々な機能を提供するクラウドプラットフォームです。本稿ではSnowflakeのアーキテクチャや特長を、初心者の方にも分かりやすく解説します。
Index
Snowflakeは、SaaS型のデータプラットフォームであり、DWH機能をはじめとした様々な機能を提供しています。
|
2014年にクラウドネイティブなDWHとして生まれたSnowflakeですが、データレイク機能や、他社とデータを共有する機能、Streamlitで簡易アプリを作成する機能など、単なるDWHにとどまらない様々な機能がリリースされています。特に最近は、生成AIを筆頭にAI/ML周りの機能拡充が進んでおり、「AIデータクラウド」としてその活用の幅を広げています。
また、Snowflakeはアマゾン ウェブ サービス(AWS)、Microsoft Azure、Google Cloudの各クラウドプラットフォームでの稼働をサポートしています。お客様がご利用中のクラウド環境に合わせてSnowflakeのホスティング先を選ぶことはもちろん、マルチクラウド環境でのご利用も可能です。
従来のDWHのアーキテクチャである「シェアードディスク」や「シェアードナッシング」では、その拡張性や処理性能に限界があり、複数のワークロードへの柔軟な対応が難しいという課題がありました。
そこで、Snowflakeではストレージとコンピュートを分離した全く新しいアーキテクチャを採用しました。これを、マルチクラスターシェアードデータ(multi-cluster, shared-data)と言います。
この辺りの背景はSnowflakeの論文「The Snowflake Elastic Data Warehouse」にも詳しく書かれています。
詳細が気になる方は、私が執筆した以下のZennブログをご参照ください。
|
Snowflakeでは、コンピュートレイヤを担うオブジェクトを「仮想ウェアハウス」と呼んでおり、ストレージレイヤとは完全に独立して稼働しています。これはつまり、仮想ウェアハウスはキャッシュを除いてテーブルデータを持っておらず、純粋なコンピュート機能(=CPUとメモリのセット)を提供するオブジェクトであることを意味します。なお、ストレージレイヤはAmazon S3(AWSの場合)などのオブジェクトストレージを内部的に使用しており、こちらのレイヤにテーブルデータなどが保管されます。ディスク容量設計を必要とせず、ほぼ無制限にデータを格納することが可能です。
さらに、Snowflakeはクラウドサービスレイヤを含む3層のアーキテクチャを採用しています。このクラウドサービスレイヤは、ユーザー認証、クエリ最適化、メタデータ管理などを担当し、いわばSnowflakeの頭脳部分です。
|
このように、コンピュートとストレージが完全に分離されていることが、Snowflakeのアーキテクチャ上の大きな特長となっています。これにより、Snowflakeはほぼ無制限のストレージを使いつつ、ストレージとは独立してコンピュートリソースを自由に拡張・管理することができるようになっています。
では、Snowflakeの具体的な特長について、以下の3つに分けて簡単に解説します。
なおこの章では、主にクラウドDWHとしての側面に焦点を当てて、Snowflakeの特長を述べています。
前述の通り、Snowflakeは独自の3層アーキテクチャにより、ストレージと独立してコンピュートリソースを自由に拡張・管理することができます。コンピュートレイヤを担う仮想ウェアハウスは、XS~6XL(AWS、Azureの場合)という抽象化されたコンピュートサイズを選択することができ、サイズを上げ下げすることによってスケールアップ/ダウンが可能です。さらに、クエリの同時実行数に応じて仮想ウェアハウス内のクラスタ数を増減させる、自動スケールアウト/インの機能も提供しています。
また、仮想ウェアハウスは1つのアカウント内にいくつも作成できるため、ワークロードに合わせて適切なサイズの仮想ウェアハウスをそれぞれ割り当てるといった運用が可能です。
|
従来のキャパシティ契約では、インスタンスが稼働している間はクエリが実行されていない時間もコストがかかるという費用体系であり、サイジングも事前に見積もったピーク時に合わせる形になるため、無駄なコストが発生していました。
一方、Snowflakeの仮想ウェアハウスも起動時間に対する課金ではありますが、常時起動しているものではなく、クエリを実行するときに自動で起動し、しばらくクエリ要求がないと自動で停止します。そのため、Snowflakeでは純粋に使った分だけ課金するという、いわば真の従量課金制を実現できます。さらに、ワークロードごとに仮想ウェアハウスを作成してそれぞれに適切なサイズを割り当てられるため、コストの最適化が図れます。
|
Snowflakeは早い段階からアカウント間のデータ共有やMarketplaceの機能をリリースしていました。こうしたデータシェアリングの機能を使うことで、SnowflakeのユーザーはETLツール等を使わずとも、他のアカウントが持つデータを利用したり、Marketplace上に公開されている外部データを分析に活用できます。
データシェアリング
|
Snowflakeではマスキングポリシーやセキュアビュー、RBACによる権限制御などの機能も提供されているため、きめ細やかな制御を行いつつセキュアなデータシェアリングが可能です。
本稿をまとめると、Snowflakeがすごい点は以下の4つです。
今回は、クラウドDWHとしての側面に焦点を当ててご紹介しましたが、Snowflakeは今や「AIデータクラウド」として、様々な機能をスピーディーに提供するプラットフォームへと進化しています。
本稿では伝えきれませんでしたが、2024年8月現在、Snowflakeの最新機能をいくつかピックアップすると以下のようなものがあります。
弊社ではお客様のご要件や目指したいゴールに合わせて、Snowflakeの最適な活用方法をご支援し、伴走いたします。Snowflakeの導入をお考えのお客様は、ぜひ弊社までお気軽にご相談ください。以下のページより30日間の無料トライアルを開始いただけます。
また弊社では、データ活用業務を担うユーザー部門向けにSQLの入門講座を用意しています。多くの練習問題を通して実用的なSELECT文を学べるため、ユーザー部門の方はもちろん、SQLを一から学びたいIT担当者の方にもおすすめの講座です。DWHからのデータ抽出について学びたい方は、ぜひお申し込みください。
2019年新卒入社。DataSpiderをはじめとしたETL/EAI製品のフィールド技術・サポート技術を担当した後、2023年からSnowflake担当技術として活動している。かな書道が趣味で、月2回の稽古を欠かさず、各展覧会への出品も毎年行っている。...show more
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。