Snowflakeとは
Snowflakeは、米国シリコンバレーで2012年に創業のSnowflake社が提供するSaaS(Software as a Service)型データプラットフォームの名称です。
ビッグデータに代表されるよう、膨大なデータがあふれている昨今、さまざまなデジタルデータの格納が可能な大容量ストレージとして、「データレイク」に対する期待が高まっています。
Snowflakeはクラウド型データウェアハウス(DWH)として知られていますが、さらに「データレイク」を処理するのに適した「データプラットフォーム」としても各分野から注目が集まっています。
Snowflakeはこれまでの伝統的なDWHと比較して柔軟性が高く、AWS・Azure・GCPなど他のクラウドパートナーのサービス上で動作します。クラウド型DWHとしては、すでに「Amazon Redshift」※1や「Google BigQuery」※2などがありますが、Snowflakeはこれらのユーザーまで取り込んでおり、今後の動きが注目されます。
【参考】:※1Amazon Redshift|AWS公式サイト
【参考】:※2BigQuery|Google Cloud公式サイト
flakeの名前の由来
多くの人がSnowflakeの名前の由来や意味が気になることでしょう。Snowflakeは日本語の「雪片」の英語です。雪片は雲(クラウド)から生まれます。
ここにSnowflakeの名前の由来があるようです。Snowflake社も同様の質問を受けることが多いようで、同社の公式ブログで名前の由来について紹介していますので、興味のある方は目を通してみてください。
【参考】:「Snowflake」という名前の背景|Snowflake公式ブログ
データウェアハウスとは
Snowflakeはクラウド型のデータウェアハウス(DWH)ですが、データウェアハウスとは何なのでしょうか?データウェアハウスの類似語にデータマートがありますが、その違いと先ほど登場したデータレイクとの関係についても探ってみましょう。
データウェアハウスの意味は「データの倉庫」です。指定した形式で必要なデータを一括保存し、直ちに分析できるようにデータベース化をして利用します。
例えば自社の顧客の買い物情報を一括保存しておき、「いつ、誰が、どんな商品を、どれだけ買ったか」といった情報をデータウェアハウスによって調べることができます。
データウェアハウスには業務などで必要なデータが全て保存されており、データの分析を行う人は、データウェアハウスにアクセスすることで、必要な情報をすぐ入手し、分析したり、生産活動や販売活動に生かすことができます。
このように、データウェアハウスはビッグデータが注目を浴びる以前から、企業などのデータの保存や活用に利用されていました。データウェアハウスと似たものにデータマートとデータレイクがあります。
データマートとは
データウェアハウスは企業活動などで得られたあらゆるデータが格納されており便利ですが、いざ必要な情報を得ようとした時に、必要のないデータが多くあり、やや不便です。
そこで、データウェアハウスのデータを部門単位などで分けて、データベースにしたものがデータマートです。部門の担当者はデータマートにアクセスすれば、自部門に必要な情報を直ちに入手できます。
データレイクとは
データレイクは、最近、ビッグデータの保存形式として注目を浴びているサーバーのタイプです。
ビッグデータには従来のテキストデータに加え、画像、動画、SNSなどのそれぞれ形式が異なるデータが集められていますが、これをデータウェアハウスで管理するためには、形式ごとにデータ加工が必要となり、データベース化するための手順が煩雑になります。
データレイクでは「タグ」と呼ばれるキーワードのようなものを付けて、異なる形式のデータを同じ場所に保存します。これによって異なる形式のデータをまとめて同時に比較や分析を行うことが容易になり、さまざまな切り口から多面的な分析が行えるようになります。
これがデータレイクの強みですが、データの用途などを考慮せず、あらゆるデータを保存しようとすると、逆にデータを取り出しにくくなり、分析などが行いにくくなるため、データの活用という視点から保存や管理を行うべきです。
Snowflakeは何がすごい?その特徴とは
企業活動などでは、データ活用が重要な鍵になっていますが、データの収集からデータ統合、データ変換、データの正規化、データ活用に至るまで、さまざまなプロセスを経るため、多くの労力を消費します。
一方で、Snowflakeを利用すると、データ分析環境の構築が容易で、運用効率を大きく向上させることが可能です。
Snowflakeの最大の特徴は、ストレージとコンピュータのリソースを完全に分離した、Snowflake社独自のアーキテクチャにあり、複数のワークロードを大規模な並列処理ができる点です。これがSnowflakeの高いパフォーマンスを支え、さらに次のような優れた機能によって高い信頼性を保っているのです。
Snowflakeの特徴について、機能面から見ていきましょう。
データシェアリング
一般的に、データの格納場所(ストレージ)とデータ処理(コンピュートリソース)は1つにまとめられていますが、Snowflakeではそれらを分けたアーキテクチャを採用しています。
たとえば自分の保管データに、他者の管理するリソースを利用してアクセスすることが可能となっています。これらの機能は「データシェアリング」と呼ばれています。
これまで、データの格納場所と処理する場所が異なる場合は、必要なデータの複製を他者に送っていましたが、「データシェアリング」では自分のデータを直接他者に見せることで、データ複製に伴うリスクや作業が解消されるというメリットを得られます。
マルチクラウド
AWSやGCPなどにもデータウェアハウスサービスはありますが、他社のデータウェアハウスとの連携はできません。しかし、Snowflakeではマルチクラウドを前提とした環境を採用しており、クラウド間を越えてデータの連携が可能です。
ニアゼロメンテナンス
Snowflakeはニアゼロメンテナンスをポリシーとし、データメンテナンスに掛かる時間を最小限にしています。これを支える機能として、データを元に戻せる「タイムトラベル機能」、データウェアハウス環境のコピー時間を数秒に抑えられる「ゼロコピークローン機能」を有しています。
作成/停止が短時間
データウェアハウスの作成に、他製品では数分程度を要しますが、Snowflakeは作成/停止を短時間で行うことが可能です。
また停止も秒単位で行えるため、稼働時間で課金される従量制料金体系では無駄なコストの発生を防げます。
データの移行が簡単
Snowflakeはマルチクラウド環境を採用しているため、データの移行が簡単です。たとえばAWSにあるデータをGCPに移行するには大変な労力とコストが掛かりますが、Snowflakeでは移行のコストを最小限に抑えることが可能です。
パフォーマンス改善が簡単
データベースエンジニアの多くは、データベースのパフォーマンスを上げるために、サーバー増強やクエリーのチューニングに力を注いでいますが、Snowflakeでは現在の環境を止めずに、リソースの割り当てをGUI上で増やすといったことが短時間で行え、素早くパフォーマンス改善が行えます。
それによって簡単に処理の高速化を実現しています。
Snowflakeの主なメリット
ここまで、Snowflakeの概要や特徴となる機能について見てきましたが、Snowflakeを導入するメリットはどのようなものがあるのか、確認しておきましょう。
高速のデータ処理
Snowflakeは高速なデータ処理を強みとしており、これまでのデータウェアハウスでは不可欠だった、パフォーマンスチューニングに労力をかける必要がありません。Snowflakeは、ストレージとは切り離された処理層でクエリを実行します。
さらに大規模並列処理を用いてクエリを処理することによって、高速なデータ処理を実現しています。
分析や集計に専念できる
SaaS型で提供されるSnowflakeは、ハードウェアやソフトウェアを自社で保有する必要がありません。インフラ管理を完全にディストリビューターに任せることができ、ソフトウェアやデータの管理も不要です。
そのため、Snowflakeを採用すると、従来のデータウェアハウス運用で時間がかかっていたデータウェアハウスに関する管理業務が不要になり、本来の目的である分析や集計業務に専念することができます。また、クエリなどの知識がなくとも、管理コンソールから分析が行える点は大きなメリットと言えます。
Snowflakeを活用しましょう
ここまで紹介したように、Snowflake はクラウドベースのデータウェアハウスです。
データウェアハウスの構築はハードルが高いイメージがありましたが、Snowflake はSaaS 型のサービスとして登場し、コンピュート部分とストレージ部分が完全に分離されたアーキテクチャを持つことで、それぞれが柔軟にスケーリングできる先進的なサービスであることが分かりました。
Snowflakeには30日間無償トライアルが用意されており、下のリンクから申し込みができます。アカウントを作成し、登録すると30日間無償、400ドル分のクレジットが提供されます。クラウドプラットフォームとしてAWS、Azureのいずれかを選択できます。
登録後にアクティベートを求めるメールが届きますので、メールに従ってアクティベートを行うと管理コンソールに飛びます。この管理コンソールからデータベースの作成、SQLの実行、データウェアハウスの作成などができます。
データベースを学んでいる方、クラウドを勉強している方はぜひ一度利用してみることをお勧めします。
【参考】:30日間の無料トライアルを開始|Snowflake 公式
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから