この記事では、クラウドベースのSaaS型データウェアハウスであるSnowflakeについて、特徴・メリット・活用事例・注意点を解説します。Snowflakeの導入を検討している方や、データウェアハウスの活用事例などをお探しの方はぜひご覧ください。
Snowflakeは、Snowflake社の提供する、クラウドベースで動くSaaS型データ分析用DWHです。従来の伝統的なDWHに比べて柔軟性が高く、AWS・Azure・GCPなどのクラウドサービス上で動作します。
Snowflake以外のクラウド型DWHとして、Amazon RedshiftやGoogle BigQueryなどが代表的です。
DWHとは、データウェアハウス(Data Warehouse)の略で、「データを格納する倉庫」のことを指します。売上、在庫、顧客情報といった、企業の蓄積する大量のデータを集約する役割を持っています。
さらに、蓄積したデータを分析しやすい形に整理整頓する機能を併せ持っている点が、データを一元的に蓄積するデータレイクと異なる点です。
Snowflakeの特徴は以下の通りです。
・クラウド上に構築されたSaaS型のDWH
・SQLやGUIによる分析が可能
・3層のレイヤーからなる構造
・従量課金の料金体系
・ステージを使ったデータロード
・Snowpipeによるデータストリーミング
・半構造化データをネイティブサポート
・タイムトラベルで過去データにアクセス
・ロールベースのアクセス制御
それぞれの特徴について順に解説します。
Snowflakeは、クラウド上に構築されたSaaS型のデータウェアハウスです。
クラウドサービスであるAWS・Azure・GCPのいずれかで動作します。複数のクラウドサービスをまたいで、マルチクラウド的に使うことはできません。また、自社サーバを用意してオンプレミス環境で使用することもできません。
インフラリソースは他ユーザーと共有されますが、格納したデータが共有されることはありません。
Snowflakeでは、ANSI準拠のSQLが使用可能です。
さらに、GUIによるテーブル作成が用意されており、SQLの扱いに慣れていないユーザーがマウスとキーボード操作によりテーブルを作成することも可能となっています。
Snowflakeは3層のレイヤーからなっており、この構造がSnowflakeの大きな特徴のひとつとなっています。
・Data Storage Layer
・Query Processing Layer
・Cloud Service Layer
各レイヤーは、次の役割を持っています。
Data Strorage Layerは、Snowflakeにロードされた全データが置かれるレイヤーです。
データはそれぞれ、内部の最適化されたマイクロパーティションとして保存されます。このレイヤーに置かれたデータに、ユーザーが直接触れることはできません。
マイクロパーティションはテーブルを保持したストレージユニットで、イミュータブル(不変)です。
仮想ウェアハウスが稼働するレイヤーです。仮想ウェアハウスとは、データに対してクエリを実行するマシンのことで、それぞれにCPU・メモリ・SSDが備わっています。SQLなどのDML実行時に稼働します。
仮想ウェアハウスの作成には事実上制限がなく、組織の役割やプロジェクトに応じて自由に作成することができます。
ストレージレイヤーと完全に分離する形で、クエリを実行・操作するレイヤーが存在している点がSnowflakeの最大の特徴のひとつと言えるでしょう。
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
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が、その他のデータウェアハウスと比べて優れている点は主に次の通りです。
・クラウドベースのSaaS型のためインフラ不要で導入が簡単
・コストを抑えつつスケールアップ・スケールアウトが容易
・非エンジニアでも分析ができる
・データ変換が不要になり管理の手間が省ける
・データを共有しやすい
・エラーやバックアップの手間を削減できる
「Snowflakeの特徴」も踏まえながらそれぞれ見ていきましょう。
SnowflakeはクラウドベースのSaaS型データウェアハウスなので、インフラが不要であり、導入に際して環境を構築するといった時間や手間がかかりません。
30日間の無料トライアル期間も用意されており、導入ハードルの低いサービスのひとつと言えるでしょう。
Snowflakeの仮想ウェアハウスは、必要なときに必要なサイズと数を起動して対応するため、必要に応じてスケールアップ・ダウンすることが容易です。
また、仮想ウェアハウスは同時に最大10個起動できるので、水平スケール(マルチクラスター化)も可能となっています。
秒単位での従量課金という料金体系により、そうしたリサイズに伴ってコストが大きく変わる余地が少ない点も大きなメリットと言えるでしょう。
Snowflakeでは、SQLで分析が可能なことに加え、GUIによる直感的な操作に対応しているため、非エンジニアでも分析に参加できます。
大規模な分析にはSQLが欠かせないものの、これから分析に取り組むユーザーにとって非常に頼もしい機能です。
あるサービスのデータを分析したいとき、APIから取得したデータが半構造化データであるケースは少なくありません。こうした場合にも、Snowflakeなら変換の手間をかけることなくそのままデータをロードして分析にかけることができます。
さらに、変換の手順をスキップすることで、データレイク的にデータを集約しやすくなります。これにより、データの散逸を防ぐ効果が期待できるとともに、セキュリティの観点からも品質向上が見込めます。
ロールベースのアクセス制御により、適切な権限管理に基づいたデータ共有がしやすいのもSnowflakeの大きなメリットのひとつです。
例えば顧客とデータを共有したい場合も、データをコピーしたり移転したりする必要はありません。顧客用のロールさえ用意しておけば、複数のユーザーに対して同様の権限を付与することも容易です。
タイムトラベル機能は、ヒューマンエラーやシステムエラーといった各種エラーによって生じうる損失を防ぎます。
エディションによっては最大90日のタイムトラベルが可能であり、Snowflakeにデータが集約されていれば、平時に手作業でバックアップを行う必要もほとんどなくなるでしょう。
Snowflakeの活用事例をいくつかご紹介します。
クレジットカード事業、インターネットバンキングなどの金融事業を展開するアメリカの「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
Amazonも出資する、ロンドンに本拠を置くフードデリバリー企業「Deliveroo」は、Snowflakeの導入によりリアルタイムな意思決定を実現しています。
それまで同社では、週末の繁忙期から週明けの月曜の朝にかけて、ETLと分析の処理が重なり作業負荷が増大し、経営陣は繁忙期のデータをリアルタイムに見られず、アナリストは翌週の計画を立てられないという課題が発生していました。
この課題を、Snowflakeの半構造化データのネイティブサポートや仮想ウェアハウスによるマルチクラスターが解消します。現在は、物流アルゴリズムを利用した配送効率化に役立てる施策も実施中とのことです。
参考:
オーストラリア最大のピザチェーンであるドミノ・ピザ・エンタープライズ・リミテッド(DPE)は、Snowflakeの利用によりデータの収集とフローが向上することを評価しています。
もともとDPEはデータ主導型の企業で、世界中に展開するそれぞれの地域から収集した膨大な量の顧客データを保有しています。Snowflakeは、それらデータへのアクセスと分析を容易なものにしました。
また同社は、顧客の個人情報を保護することを最重要視しており、DPEのグループ最高デジタル技術責任者であるGillespie氏は、
と語っています。
参考:
インドのフードデリバリープラットフォーム・Swiggyは、Snowflakeを使用してクエリが20%高速化しました。
同社のプラットフォームには、160,000件以上のレストランと、25万人以上の配送パートナーが参加しており、顧客からの注文は毎月数百万件におよびます。
Snowflakeは、こうした複雑かつ膨大なクエリの最適化にも活躍します。
参考:
Swiggy: 20% Faster Queries for Food Delivery Platform with Snowflake|Snowflake
Tillは、毎年約500億ドル発生しているといわれる家賃滞納の課題解決に取り組むアメリカのスタートアップ企業です。
Tillは、賃貸人のPII(個人を特定できる情報)を取り扱うため、セキュリティを確保することが重要でした。そこでTillは、Snowflakeのダイナミックデータマスキング機能を活用しています。
TillのCTOであるAustin氏は、
と語ります。
参考:
How Till Is Transforming the Rental Experience with Personalized Financial Solutions|Snowflake
ノバセル(ラクスル)
ラクスル株式会社が運営する運用型テレビCMサービス「ノバセル」では、テレビCMの放映効果をリアルタイムに測定するノバセルアナリティクスを提供しています。 ノバセルではデータを一元管理するために2021年1月からSnowflakeを導入し、同年7月にアナリティクスのデータをSnowflakeへ集約させました。 ノバセルがSnowflakeを導入した背景について、ノバセルCTOの戸辺純一郎氏は、競合他社と比べて使った分しかコストがかからない点、データ分析に伴う専門知識を必要とせず運用できる点、そして変化の激しい時代に対応できるスキーマオンリードに対応している点を、Snowflakeのメリットとして挙げています。 Snowflakeを導入することで、これまではパフォーマンスの最適化のために複雑な実装をする必要があったワークロードも開発の難易度が下がり、シンプルな実装で十分なパフォーマンスを維持することができるようになったとのことです。 参考: ラクスルが展開する運用型テレビCMサービス「ノバセル」にSnowflakeを採用 高品質なデータ分析とコスト削減を実現|Snowflake株式会社 Snowflakeから学ぶデータ活用 ラクスル社内勉強会レポート|RAKSUL 運用型のテレビCMを可能にするプラットフォーム「ノバセル」が誕生 印刷・物流に次ぐラクスルの第三の新規事業は“広告” 広告効果を可視化し企業の成長を支援!|RAKSUL
中外製薬
国内大手医薬品メーカーである中外製薬株式会社は、保有データの全社利活用を加速させるためにSnowflakeの利用を開始したことを2022年4月に発表しました。 医薬品の研究から開発・販売に至るバリューチェーン全体で扱われる膨大で複雑なデータに対して、それらを効率よく蓄積・分析・活用できる最適なデータプラットフォームとしてSnowflakeのデータクラウドを選択しました。 また、単一のパブリッククラウドに依存しないSnowflakeの接続環境が、セキュアで効率的なアクセスを可能にする点もSnowflakeを選択した理由のひとつとのことです。 同社は今後、各部門やプロジェクトが保有するデータをSnowflake上で統合し、同社のデジタル・IT基盤Chugai Scientific Infastructure(CSI)と連携させることで、全社で利活用できるデータ解析環境の整備を進めていきます。 参考: 中外製薬、Snowflake導入により、保有データの全社利活用を加速~スノーフレイクは、医療・ライフサイエンス分野における海外の経験と実績を国内において初めて展開~|中外製薬 中外製薬、SNOWFLAKE 導入により、保有データの全社利活用を加速 ~スノーフレイクは、医療・ライフサイエンス分野における海外の経験と実績を国内において初めて展開~|Snowflake
東京海上日動火災保険
東京海上日動火災保険株式会社は、自社のもつあらゆるデータを統合管理し自由に分析することを可能とする「協創型次世代データ分析基盤」を構築してきましたが、今回Snowlfakeを採用して新たなデータ活用基盤の構築に着手していることを2022年2月に発表しました。 Snowflakeデータクラウドの導入にあたり、同社は2020年度の約半年間、データクラウドを含む3製品について概念実証(PoC)を実施しています。その結果、Snowflakeの機能性や海外における大規模金融機関における実績などを決め手として採用に至ったといいます。 なお、今回の東京海上日動による採用は、Snowflakeにおいては金融・保険業界に向けた国内初の事例です。 参考: Snowflake、東京海上日動がSnowflake データクラウドを採用|日経クロステックActive 東京海上日動がSNOWFLAKEデータクラウドを採用 ~システムのクラウド移行とDX・データドリブン経営を加速~|Snowflake 新たな価値創出に向けた 新たな価値創出に向けた 価値創出に向けた事業の開始~データ中核会社「東京海上ディーアール」始動 ~データ中核会社「東京海上ディーアール」始動~ |東京海上日動 東京海上グループのデータ活用 グループのデータ活用を支えるインフラ を支えるインフラの強化~セキュアな「協創型次世代データ分析基盤 データ分析基盤」への発展~|東京海上日動
Snowflakeのデメリットを挙げるとすれば、主に1点に集約されます。それは、クラウドベースのSaaSであるという点です。
SaaSであるため、すでにクラウドベースのサービスを利用している企業・組織にとっては導入が容易な一方で、自社サーバなどを構築しておりオンプレミスな形式をとっている場合はかえって使いづらいサービスといえます。
現在の環境に対してSnowflakeが最適な選択肢であるか否か、よく検討することをおすすめします。
AWS・Azure・GCPなどの導入が済んでいるなら、30日の無料トライアルを検討すると良いでしょう。
マクロセンドは、AI活用の前段階として必要な、データ自動収集システム、データレイク・DWH基盤構築、セルフデータプレパレーションツールの提供等、各企業の状況・要望に合わせたデータ活用、DXを支援するサービスを行っております。興味のある方は、以下のサービス記事もご確認ください。
2021年4月9日