snowflake-eyecatch

Blog

 

この記事では、クラウドベースのSaaS型データウェアハウスであるSnowflakeについて、特徴・メリット・活用事例・注意点を解説します。Snowflakeの導入を検討している方や、データウェアハウスの活用事例などをお探しの方はぜひご覧ください。

 

Snowflakeとは:データ分析用のDWH

Snowflakeは、Snowflake社の提供する、クラウドベースで動くSaaS型データ分析用DWHです。従来の伝統的なDWHに比べて柔軟性が高く、AWS・Azure・GCPなどのクラウドサービス上で動作します。

 

Snowflake以外のクラウド型DWHとして、Amazon RedshiftやGoogle BigQueryなどが代表的です。

 

DWHとは、データウェアハウス(Data Warehouse)の略で、「データを格納する倉庫」のことを指します。売上、在庫、顧客情報といった、企業の蓄積する大量のデータを集約する役割を持っています。

 

さらに、蓄積したデータを分析しやすい形に整理整頓する機能を併せ持っている点が、データを一元的に蓄積するデータレイクと異なる点です。

Snowflakeの特徴

 Snowflakeの特徴は以下の通りです。

 

・クラウド上に構築されたSaaS型のDWH
・SQLやGUIによる分析が可能
・3層のレイヤーからなる構造
・従量課金の料金体系
・ステージを使ったデータロード
・Snowpipeによるデータストリーミング
・半構造化データをネイティブサポート
・タイムトラベルで過去データにアクセス
・ロールベースのアクセス制御

 

それぞれの特徴について順に解説します。

クラウド上に構築されたSaaS型のDWH

Snowflakeは、クラウド上に構築されたSaaS型のデータウェアハウスです。

 

クラウドサービスであるAWS・Azure・GCPのいずれかで動作します。複数のクラウドサービスをまたいで、マルチクラウド的に使うことはできません。また、自社サーバを用意してオンプレミス環境で使用することもできません。

 

インフラリソースは他ユーザーと共有されますが、格納したデータが共有されることはありません。

SQLやGUIによる分析が可能

Snowflakeでは、ANSI準拠のSQLが使用可能です。

 

さらに、GUIによるテーブル作成が用意されており、SQLの扱いに慣れていないユーザーがマウスとキーボード操作によりテーブルを作成することも可能となっています。

3層のレイヤーからなる構造

Snowflakeは3層のレイヤーからなっており、この構造がSnowflakeの大きな特徴のひとつとなっています。

 

・Data Storage Layer
・Query Processing Layer
・Cloud Service Layer

 

各レイヤーは、次の役割を持っています。

Data Storage Layer(データストレージレイヤー)

Data Strorage Layerは、Snowflakeにロードされた全データが置かれるレイヤーです。

 

データはそれぞれ、内部の最適化されたマイクロパーティションとして保存されます。このレイヤーに置かれたデータに、ユーザーが直接触れることはできません。

 

マイクロパーティションはテーブルを保持したストレージユニットで、イミュータブル(不変)です。

Query Processing Layer(クエリプロセッシングレイヤー)

仮想ウェアハウスが稼働するレイヤーです。仮想ウェアハウスとは、データに対してクエリを実行するマシンのことで、それぞれにCPU・メモリ・SSDが備わっています。SQLなどのDML実行時に稼働します。

 

仮想ウェアハウスの作成には事実上制限がなく、組織の役割やプロジェクトに応じて自由に作成することができます。

 

ストレージレイヤーと完全に分離する形で、クエリを実行・操作するレイヤーが存在している点がSnowflakeの最大の特徴のひとつと言えるでしょう。

Cloud Service Layer(クラウドサービスレイヤー)

Snowflakeの各種管理を担うレイヤーです。

 

認証認可、メタデータ管理を行うほか、クエリを実行前に最適化したりプルーニングしたりといったSQLオプティマイザや、トランザクション管理などを全般的に処理します。

従量課金の料金体系

Snowflakeの料金体系は、仮想ウェアハウスの稼働時間に対して課金される従量課金となっています。そのほかに、ストレージに格納するデータ量などに応じてかかる費用もありますが、基本的には「仮想ウェアハウスのサイズ×利用時間」に依存します。

 

仮想ウェアハウスのサイズはTシャツなどと同じXS~4XLとなっており、直感的に選びやすくなっています。

 

なお、仮想ウェアハウスの費用は秒単位でかかるため、小さめのサイズで長時間作業するよりも、大きめのサイズで短時間で済ませる方が、総合的な費用も安く済むように設定されています。

ステージを使ったデータロード

Snowflakeにデータをロードする際は、データを一旦ステージに配置し、ステージからSnowflakeにロードする形をとります。

 

ステージとは、Snowflake用のファイルリポジトリのことで、Snowflakeにとってデータをロード・アンロードしやすい環境です。ステージは2種類あり、Snowflakeの内部にステージを作るInternal Stage(内部ステージ)と、外部ストレージをステージとして利用するExternal Stage(外部ステージ)があります。

 

External Stage(外部ステージ)として扱えるクラウドストレージは次の3つです。

 

・Amazon S3
・Azure Blob
・Google Cloud Storage

Snowpipeによるデータストリーミング

Snowflakeには、Snowpipeという機能があります。Snowpipeは、特定のステージから継続的にデータをロードし続ける機能です。

 

特定のデータをテーブルにストリーミングするイメージで使うことができ、IoTにおけるセンサーデータの保持などに利用できます。

半構造化データをネイティブサポート

Snowflakeでは、半構造化データをそのままテーブルに入れられます。対応する半構造化データファイル形式は次の通りです。

 

・JSON
・XML
・Avro
・ORC
・Parquet

 

半構造化データはVARIANT型というカラムにロードされ、直接SQLを実行することができます。なかには、半構造化データ専用の関数もあります。

タイムトラベルで過去データにアクセス

Snowflakeでは、タイムトラベルという機能により過去のデータにアクセスできます。

 

データベース、テーブル、スキーマといった各種過去データに対して、クエリの実行、複製、リストアが可能です。遡れる日数はエディションによって異なり、StandardとPremiumでは最大1日、Enterprise以上では最大90日遡ることができます。

 

また、タイムトラベル機能の有効期間を過ぎたデータに対して、さらに7日間保持するフェールセーフ機能も備えています。

 

タイムトラベル機能はユーザーの任意で扱えますが、フェールセーフ部分はSnowflake社の担当者のみがアクセス可能であり、復元には特殊な手続きが必要です。

ロールベースのアクセス制御

Snowflakeでは、ユーザーやグループに権限を割り当てるのではなく、ロールによってアクセスを制御します。

 

ユーザーには複数のロールを割り当てることができ、またロールにロールを付与して階層化することも可能です。データベース単位だけでなくテーブル単位で権限付与が可能であり、外部の組織へもロールを付与するだけでデータ共有できます。

 

加えて、Secure Data Sharingを利用すれば、実際のデータをコピー・転送することなく、Snowflakeのアカウントを持っていないサードパーティアカウントに対してデータ共有することも可能です

 

参考:

アクセス制御の概要 — Snowflake Documentation

Secure Data Sharingの紹介 — Snowflake Documentation

Snowflakeのメリット

Snowflakeが、その他のデータウェアハウスと比べて優れている点は主に次の通りです。

 

・クラウドベースのSaaS型のためインフラ不要で導入が簡単
・コストを抑えつつスケールアップ・スケールアウトが容易
・非エンジニアでも分析ができる
・データ変換が不要になり管理の手間が省ける
・データを共有しやすい
・エラーやバックアップの手間を削減できる

 

「Snowflakeの特徴」も踏まえながらそれぞれ見ていきましょう。

クラウドベースのSaaS型のためインフラ不要で導入が簡単

SnowflakeはクラウドベースのSaaS型データウェアハウスなので、インフラが不要であり、導入に際して環境を構築するといった時間や手間がかかりません。

 

30日間の無料トライアル期間も用意されており、導入ハードルの低いサービスのひとつと言えるでしょう。

コストを抑えつつスケールアップ・スケールアウトが容易

Snowflakeの仮想ウェアハウスは、必要なときに必要なサイズと数を起動して対応するため、必要に応じてスケールアップ・ダウンすることが容易です。

 

また、仮想ウェアハウスは同時に最大10個起動できるので、水平スケール(マルチクラスター化)も可能となっています。

 

秒単位での従量課金という料金体系により、そうしたリサイズに伴ってコストが大きく変わる余地が少ない点も大きなメリットと言えるでしょう。

非エンジニアでも分析ができる

Snowflakeでは、SQLで分析が可能なことに加え、GUIによる直感的な操作に対応しているため、非エンジニアでも分析に参加できます。

 

大規模な分析にはSQLが欠かせないものの、これから分析に取り組むユーザーにとって非常に頼もしい機能です。

データ変換が不要になり管理の手間が省ける

あるサービスのデータを分析したいとき、APIから取得したデータが半構造化データであるケースは少なくありません。こうした場合にも、Snowflakeなら変換の手間をかけることなくそのままデータをロードして分析にかけることができます。

 

さらに、変換の手順をスキップすることで、データレイク的にデータを集約しやすくなります。これにより、データの散逸を防ぐ効果が期待できるとともに、セキュリティの観点からも品質向上が見込めます。

データを共有しやすい

ロールベースのアクセス制御により、適切な権限管理に基づいたデータ共有がしやすいのもSnowflakeの大きなメリットのひとつです。

 

例えば顧客とデータを共有したい場合も、データをコピーしたり移転したりする必要はありません。顧客用のロールさえ用意しておけば、複数のユーザーに対して同様の権限を付与することも容易です。

エラーやバックアップの手間を削減できる

タイムトラベル機能は、ヒューマンエラーやシステムエラーといった各種エラーによって生じうる損失を防ぎます。

 

エディションによっては最大90日のタイムトラベルが可能であり、Snowflakeにデータが集約されていれば、平時に手作業でバックアップを行う必要もほとんどなくなるでしょう。

Snowflakeの活用事例

Snowflakeの活用事例をいくつかご紹介します。

Capital One


capitalone-logo

 クレジットカード事業、インターネットバンキングなどの金融事業を展開するアメリカの「Capital One」は、Snowflakeの導入によりパフォーマンスが4~6倍ほど向上しました。

 

同社は、数百TBのデータと20万以上のテーブルを抱えており、それらに対して数千人のユーザーが同時にクエリを実行する複雑な環境でした。

 

これに対して、Snowflakeは仮想ウェアハウスのマルチクラスター化によるスケールアウトで対応。金融機関として必須の、セキュリティやリスク要件を満たしていたことも導入要因のひとつです。

 

参考:

Capital One Joins Snowflake’s Series D Funding Round|Snowflake

Capital One – Enabling the Future of Banking with Snowflake|Snowflake

DWHの課題を一挙に解決する真のクラウド型DWH、Snowflakeとは何者か|ZDNet Japan

Deliveroo


deliveroo-logo

Amazonも出資する、ロンドンに本拠を置くフードデリバリー企業「Deliveroo」は、Snowflakeの導入によりリアルタイムな意思決定を実現しています。

 

それまで同社では、週末の繁忙期から週明けの月曜の朝にかけて、ETLと分析の処理が重なり作業負荷が増大し、経営陣は繁忙期のデータをリアルタイムに見られず、アナリストは翌週の計画を立てられないという課題が発生していました。

 

この課題を、Snowflakeの半構造化データのネイティブサポートや仮想ウェアハウスによるマルチクラスターが解消します。現在は、物流アルゴリズムを利用した配送効率化に役立てる施策も実施中とのことです。

 

参考:

Deliveroo Delivers with Real-time Data|Snowflake

DWHの課題を一挙に解決する真のクラウド型DWH、Snowflakeとは何者か|ZDNet Japan

ドミノ・ピザ・エンタープライズ・リミテッド(DPE)


domino's-logo

オーストラリア最大のピザチェーンであるドミノ・ピザ・エンタープライズ・リミテッド(DPE)は、Snowflakeの利用によりデータの収集とフローが向上することを評価しています。

 

もともとDPEはデータ主導型の企業で、世界中に展開するそれぞれの地域から収集した膨大な量の顧客データを保有しています。Snowflakeは、それらデータへのアクセスと分析を容易なものにしました。

 

また同社は、顧客の個人情報を保護することを最重要視しており、DPEのグループ最高デジタル技術責任者であるGillespie氏は、

 

「個人データをマスクするダッシュボードを作成すると非常に役立ちます。データの管理が容易になり、コンプライアンス要件が簡素化されます」Pizza Made Easy at Domino’s: Using Digital Data to Offer Customers Better End-to-End Experiences|Snowflake

 

と語っています。

 

参考:

Pizza Made Easy at Domino’s: Using Digital Data to Offer Customers Better End-to-End Experiences|Snowflake

Swiggy


swiggy-logo

インドのフードデリバリープラットフォーム・Swiggyは、Snowflakeを使用してクエリが20%高速化しました。

 

同社のプラットフォームには、160,000件以上のレストランと、25万人以上の配送パートナーが参加しており、顧客からの注文は毎月数百万件におよびます。

 

Snowflakeは、こうした複雑かつ膨大なクエリの最適化にも活躍します。

 

参考:

Swiggy: 20% Faster Queries for Food Delivery Platform with Snowflake|Snowflake

Till


till-logo

Tillは、毎年約500億ドル発生しているといわれる家賃滞納の課題解決に取り組むアメリカのスタートアップ企業です。

 

Tillは、賃貸人のPII(個人を特定できる情報)を取り扱うため、セキュリティを確保することが重要でした。そこでTillは、Snowflakeのダイナミックデータマスキング機能を活用しています。

 

TillのCTOであるAustin氏は、

 

「Snowflakeは、非常に優れたデータセキュリティ機能を数多く提供します。実際、高度なセキュリティ機能を備えたスノーフレークに近づく人は誰もいません。」How Till Is Transforming the Rental Experience with Personalized Financial Solutions|Snowflake

 

と語ります。

 

参考:

How Till Is Transforming the Rental Experience with Personalized Financial Solutions|Snowflake

家賃滞納を防ぐフレキシブル家賃の決済ソリューション|JNEWS.com

ダイナミックデータマスキングについて — Snowflake Documentation

Snowflakeの導入を検討する上での注意点

Snowflakeのデメリットを挙げるとすれば、主に1点に集約されます。それは、クラウドベースのSaaSであるという点です。

 

SaaSであるため、すでにクラウドベースのサービスを利用している企業・組織にとっては導入が容易な一方で、自社サーバなどを構築しておりオンプレミスな形式をとっている場合はかえって使いづらいサービスといえます。

 

現在の環境に対してSnowflakeが最適な選択肢であるか否か、よく検討することをおすすめします。

 

AWS・Azure・GCPなどの導入が済んでいるなら、30日の無料トライアルを検討すると良いでしょう。

関連サービス

マクロセンドは、AI活用の前段階として必要な、データ自動収集システム、データレイク・DWH基盤構築、セルフデータプレパレーションツールの提供等、各企業の状況・要望に合わせたデータ活用、DXを支援するサービスを行っております。興味のある方は、以下のサービス記事もご確認ください。