企業のデータドリブン経営に欠かせない大量のデータ処理。散在するデータの活用について悩みを持つ企業も多いのではないでしょうか。そのようなデータに関わる問題の解決に役立つ、クラウドネイティブのDWHとして最近話題となっている「Snowflake」について、何ができるのかを分かりやすくご紹介します。
Snowflakeとは
大容量のデータを扱うには、大きなストレージが必須となります。また管理者にとっては、データの処理速度、セキュリティ上の問題など考えるべき課題が多くあります。Snowflakeは、そのようなデータ運用、活用の問題を解決し、高速に、かつ効率的な活用ができるように考えられたクラウド型データプラットフォームです。
アメリカに拠点を置く会社
Snowflake社は、米国モンタナ州のボーズマンに拠点を置く会社で、クラウドコンピューティングベースのデータウェアハウスを扱っています。
クラウドベースのDWH提供だけにとどまらず、ユーザーのタスクに応じてデータのストレージに関する分析サービスまで提供しているのが大きな特徴です。
Snowflake社が提供するクラウドサービス
Snowflakeは、クラウドベースのSaaS型データプラットフォームとして2014年に提供されはじめました。Saasとは、インターネットに接続できる環境であれば利用できる、ソフトウェアをインストールすることなく使えるクラウド型サービスのことです。
ビッグデータを格納できる「データレイク」は、構造化などにとらわれるデータウェアハウスと違い、半構造化、非構造化データを含めどのようなデータでも格納でき、安価で運用できるストレージです。インターネット上から収集される大量なデータの格納に最適ですが、この膨大なデータを扱うには困難がつきまといます。
データレイクの利用にあたっては、ユーザーがすばやく必要なデータを取り出し、分析できることが重要です。データレイクは、あらゆるデータが入っているため潜在的に必要なものまで網羅し利用できる、という利点はあるものの、ごちゃまぜになってしまい、必要な情報にアクセスできなくなるという懸念も残ります。せっかくのデータを利用できないとなると、がらくたのごみ箱のようになってしまいます。
その問題を避けるためには、データレイク内のデータの出どころの明確化、またメタデータ化するなど、どこにどのデータがあるのかが見えるようにする必要があるでしょう
Snowflakeは、蓄積されたデータを分析しやすい形に整理整頓する機能をあわせ持っているため、データレイクのような大量データの活用にも力を発揮します。
また、Snowparkという機能を利用すれば、Snowparkに対応しているAIやELTベンダーのツールをSnowflake上で利用できるため、データ元を確定したり、必要なデータを整理し効率的にアクセスをしたりといったアプローチも可能となります。
Snowflakeの3つのメリット
では、Snowflakeを利用することにより具体的にどのようなメリットがあるのか、3点ご紹介します。
スケーラビリティが高い
まずひとつ目が、データ容量の拡張性です。従来のデータウェアハウスは、計算処理を行うコンピュートノードとデータストレージが一体になっているものがほとんどでした。そのため、増え続けるデータへのリソース配分を常に考える必要がありました。
しかしSnowflakeはコンピュートノードとストレージが別々になっているため、ワークロードに応じて必要なデータストレージを必要なだけ割り当てられるという利点があります。活用できるストレージの容量にはほぼ制限がなく、データ容量に応じて簡単にスケールの伸縮ができ、スケールのアップ、ダウンが可能となっています。そのため、事前のストレージ設計は不要なのです。
パフォーマンスが高い
Snowflakeは、コンピュートノードとストレージが分離しており、各タスクを処理実行するレイヤーが別となるため、異なるタスクを同時に処理する場合でもパフォーマンスが落ちることがありません。
同時に複数のコンピュートノードがストレージにアクセスする場合でも互いに干渉することなく、処理速度が落ちることがないのです。
データ共有が非常に簡単
これまでデータを共有する際には、ユーザーへアクセス権限を付与する方法が一般的でした。しかしSnowflakeは、ユーザーの役割やグループなどで分けたロール単位でのアクセス制御を行う仕組みをとっています。このことによって、ロール単位でデータをコピーせず瞬時に共有ができるのです。
外部組織へのデータアクセス権限の付与については、同じくロール単位でのアクセス権を付与することでコントロールします。そのため、適切な管理権限に基づきデータの共有ができます。また、Secure Data Sharing機能を利用すれば、データをコピーすることなしに、Snowflakeアカウントを持たない第三者にもデータ共有ができるため、セキュリティの観点から見ても安心です。ロールを指定するだけでデータをコピーすることなく、タイムリーなデータシェアが実現できることが大きなポイントといえるでしょう。
Snowflakeの5つの特長
では、ここからはSnowflakeの特長について、5点を紹介していきます。
クラウドの強みを最大限に活かしたアーキテクチャ
Snowflakeは、クラウドで動かすことを想定し開発されたアーキテクチャです。
ERPやCRMなどもクラウドへの移行が主流となってくる中、大量のデータ処理が必要となる点を見込んで設計されたといえるでしょう。コンピュートノードとデータストレージを完全に分離させ、クラウドならではの強みを活かして柔軟なスケーラビリティを利用できる点が魅力です。
コンピュートクラスタの変更機能
Snowflakeでは、データ量の増大やユーザーからのアクセス増加などで突発的な負荷がかかることを想定し、GUI画面上での簡単な操作のみで、実行処理を止めずに、即座にウェアハウスサイズを変更できるようになっています。
また、「オートスケールモード」を使えば、ユーザーの同時実行数に合わせて事前にユーザーが設定した最大数までコンピュートノードの数を自動的に追加し、また実行数が減れば減った分を一時停止するなど、適切なアクセス数でシームレスにデータへのアクセスが可能です。
処理を止めずにアクセスできることにより、データ利用時のパフォーマンスを落とさない仕組みとなっています。
最適化されたコスト設計
次の特長はコストが抑えられる点になります。クラウド環境のため、導入にかかる環境構築などの費用がかかりません。ランニングコスト面でも、ウェアハウスを実際に使用した分だけ費用が発生する従量課金制となっています。2つ目の特長でもご紹介した「オートスケールモード」や、ウェアハウスが未使用状態で一定時間経過すると自動的にシャットダウンする機能があり、無駄な料金が発生しないのがメリットです。
仮想ウェアハウスを通さず使えるクエリの結果は24時間保持されるため、こちらも早く、費用をかけずにアクセスができるといったコスト的にメリットがある設計になっています。
幅広いツールやテクノロジーと連携可能
Snowflakeは対応しているベンダーのツールと組み合わせて活用できるようになっています。代表的なツールには下記のようなものがあります。
代表例
- BIツール:Sisense、Tableau、Looker、Qlik など
- ETLツール:Talend、Matillion、Informatica など
- AIツール:Datarobot、H2O.ai など
特にETLツールとして有名な「Tableau」は、Snowflake内に蓄積したデータを読み込ませることで的確なデータ分析や可視化が可能となっています。また、AWSの機械学習サービス「Amazon SageMaker」や、エンタープライズAIプラットフォーム「DataRobot」も、Snowflakeと組み合わせることにより、大容量データ処理のパフォーマンスを格段に高速化できています。
マルチクラウドプラットフォームに対応
SnowflakeはAWS、GCP、Azureなどのパブリッククラウドにマルチに接続できるプラットフォームです。
Snowflake社は2019年2月に国内最初の拠点として、「AWSアジアパシフィック(東京)リージョン」を開設し、その後2021年10月には国内2拠点目として、Microsoft Azure の東日本リージョンでもサービス提供を開始しました。Microsoft Azure 上のSnowflakeの顧客には、マスターカードやケチャップでおなじみのハインツなどの、グローバル企業が名を連ねており、大手企業にも利用されていることがわかります。
グローバルsnowflakeでは異なるクラウドプラットフォーム、リージョン間でセキュアにデータ共有を行うことも可能です。
まとめ
Snowflakeは低コストながら、クラウドの強みを生かした高機能なデータプラットフォームです。Microsoft Azureの東京リージョン上でも提供開始されたため、より利便性が高まりました。
サンプルクエリーが用意されているため、自社のデータを提供することなく動作確認ができます。まずは無料トライアルがおすすめです。