データは、世界で最も価値のある資源と言われ、ある調査会社のレポートでは「収集/分析されたデジタルデータの急速な増加は、現在、世界中で最も急速に成長し、最も成功している企業の全体的な成功の核となっている」と取り上げられています。ビジネスのデジタル化によって急速に増えていくデータをいかに効率的に、そして、いかに戦略的に活用していくのか? これまではいわゆるIT企業だけの課題でしたが、デジタルトランスフォーメーション(DX)の広がりと共に、一般企業の課題にもなりつつあります。Snowflakeは一般企業でもこの課題を解決できるように、クラウドテクノロジーをベースに構築された超高速でスケーラブルな次世代データプラットフォーム・データクラウドを提供することで支援します。

今回のコラムでは、DX時代のデータプラットフォームにおける課題とSnowflakeソリューションと題してご紹介します。

エンタープライズが直面する課題

新たなテクノロジーがデータ活用を変えています。クラウドの台頭・進化は、データ処理をスケールし、データを一元化する機能を提供しています。そして、IoT、モバイルやSNSはデータの爆発を起こし、洞察のための新たな機会を生み出しています。さらに、分析の多様化はどこにおいても誰にとっても重要性が高まっています。これらの進化・トレンドを取り入れることでビジネスへの影響が大きくなり「より良い・迅速なビジネス意思決定」「データ管理・分析のスケーリング時のコスト削減」「データで優れた顧客体験の創出」といった形でビジネスインパクトを与えることができます。一方で、一般企業がこのようなメリットを享受するためには、解決しなくてはならないIT課題が未だ山積みです。

  • 一方でIT課題は未だ山積み

例えば、従来型DWHを使っている場合、性能面では、多くの競合するワークロードへの対応、単一ジョブ・クエリ処理性能の容易な向上、多数の同時実行数への対応などがIT課題として残っています。特に従来型DWHの制約を引きずっており、スケーリング能力が低くリソースが固定化されてしまいがちです。具体的には、ピーク時に必要なリソースでオーバーサイジングしてしまうことでコストに悩まされたり、逆に、平均的に必要なリソースでアンダーサイジングした場合は性能問題に悩まされたりします。また、構築・運用管理面では、初期コストはもちろんのこと、そもそもインテグレーションの難易度が高い・工数が膨大、インフラ管理運用の作業負荷などが課題となっています。

DX時代に適したデータプラットフォームであるSnowflakeとその適用ワークロード

このようなIT課題を解決するために、Snowflakeはクラウドテクノロジーをベースに構築された超高速でスケーラブルな次世代データプラットフォームを開発・提供しています。フルマネージド/SaaS型で提供される「Snowflake」の最大の特徴は、そのアーキテクチャをデータプラットフォーム向けに一新し、複数のワークロードを同時に実行させてもレスポンス・スループットの低下が起こらないようにしたことです。

  • データプラットフォーム向けの新しいアーキテクチャ

従来型DWHで一般的だった「シェアードナッシング型」は、複数のワークロードが同時に実行されると互いにリソースが競合し、処理が遅くなるという課題がありました。この課題に対しSnowflakeは「マルチクラスタ・シェアードデータ」と呼んでいるコンピュートリソースとストレージを分離したアーキテクチャを開発しました。

このアーキテクチャにより、前述した「従来型DWHの制約を引きずっており、スケーリング能力が低くリソースが固定化されてしまいがち」というIT課題を3つのスケーリング方式でクリアすることができます。

  1. スケールアクロス: 複数のワークロードごとにウェアハウスを独立して用意することを指す。用途が異なるワークロードそれぞれにウェアハウスを用意する。複数のワークロードがコンピュートリソースを共有しないため、同時に実行しても互いに性能面で影響を与えずに実行が可能。
  2. スケールアップ: 個々のワークロードが動作するウェアハウスの処理能力を高めることを指す。実際には、ウェアハウスを構成するサーバクラスタのサーバ台数を増やす。これによって、処理時間を変えることなくデータ処理量を増やしたり、データ処理量を変えることなく処理時間を減らしたりすることが可能。
  3. スケールアウト: あるワークロードを実行するウェアハウスを複数用意することを指す(マルチクラスタウェアハウス)。同時実行数が増加して、処理負荷が一時的に高まる場合に、同じ用途のウェアハウスを複数用意して、多数の同時実行を捌くことが可能。
  • スケールするための3要素

このアーキテクチャはスケーリング機能に代表される性能面のメリットだけでは無く、運用管理面でも役に立つ機能を提供しています(それらについては以降の「データプラットフォームとして最大限活用できるSnowflakeの機能」として、その代表的な機能とメリットをまとめておりますので、そちらもご参照ください)。これらを活用することで、従来型DWHの制約によりDBA・インフラ管理者がマニュアルでカバーしていた多くの運用・管理の工数を極小化すること(ニアゼロマネジメント)が可能です。

そして、従来型DWHと比較して性能面と運用管理面が飛躍的に向上したことにより、Snowflakeはクラウドデータプラットフォームとして、いわゆるデータウェアハウスワークロードだけでは無く、次世代データプラットフォームに必要な6つのワークロードをカバーします。

  • 1つのプラットフォーム、1つのデータロード(コピー)で、すべてのワークロードを支える

Snowflake活用事例

既に海外では多くの企業がSnowflakeを採用してデータ活用を進めていますが、その一例として、Deliveroo社をご紹介します。Deliveroo社はイギリスのロンドンに本拠地を構えるベンチャー企業で、フード・デリバリー・サービス事業をイギリスの他、フランス、オランダ、ドイツ、ベルギーといった欧州各国で展開しています。フードデリバリーという業態から想像することが容易ですが、金・土・日が最も忙しいため、IT課題としては、忙しい週末を乗り越えた月曜日の朝に様々な問題が発生していました。具体的には、ETLと分析のデュアルワークロードの発生、ビジネスの成長に伴う大量データ処理の必要性、分析ユーザが増えることによる同時実行数の増加に伴う対応などがありました。ETLワークロードの処理が遅延した場合、分析ユーザは対応できず待機することになります。その結果、経営陣は週明けに週末レポートを見ることができず、ビジネスアナリストは翌週の計画を立てることができないといった問題が発生しました。当初はIT課題であったものがビジネスへの影響として顕在化したため、Deliveroo社はこれらの課題を解決するために行動する必要があると考えました。

  • Deliveroo社の課題

そこで、Deliveroo社はこれらの課題を解決するために、リソースの制限がある従来型クラウドDWHからSnowflakeへの移行を決断しました。具体的な対応としては、

  1. ETLと分析のワークロードをそれぞれ別々のウェアハウスに分離
  2. ETL用のウェアハウスをデータロード量が急増する週末にスケールアップして処理を高速化
  3. 分析用のウェアハウスを分析ユーザが増加する週明けにスケールアウトして同時実行数の増加に対応

を行いました。つまり、Snowflakeのスケーリング機能をフル活用することで、ビジネスの成長を止めないデータプラットフォームを実現しました。

データプラットフォームとして最大限活用できるSnowflakeの機能

今回のコラムの最後に、Snowflakeがデータプラットフォームとしてユーザに提供する優れた機能・サービスをご紹介します。

機能
説明
Time Travel
最大90日間に定義された期間内における任意の履歴データ(変更または削除されたデータ)にアクセスできます。次のタスクを実行するための強力なツールとして機能します。
  • 誤ってまたは意図的に削除された可能性のあるデータ関連オブジェクト(テーブル、スキーマ、およびデータベース)の復元
  • 過去の重要なポイントからのデータの複製とバックアップ
  • 指定された期間のデータ使用量/操作の分析
Fail-safe
(Time Travelとは別に)システム障害やハードウェア障害やセキュリティ違反など、その他の災害が発生した場合に履歴データを保護します。
Snowpipe
継続的なデータインジェスチョンサービス。ファイルがステージに追加され、インジェスチョンのために送信されてから数分以内にデータをロードします。サーバレスコンピューティングモデルにより、ロード容量を管理し、需要を満たす最適なコンピューティングリソースを確保します。新しいデータが利用可能になり次第、マイクロバッチにロードするための「パイプライン」を提供します。
クローン
既存のオブジェクトのコピーを作成します。データベース、スキーマ、およびテーブルのゼロコピークローンを作成するために使用します。クローンは書き込み可能で、そのソースから独立しています。
半構造化データのネイティブサポート
アプリケーション、センサー、モバイルデバイスなどからの絶え間なく増大する量の機械生成されたデータを含む、多数のソースから複数の形式で提供される、JSON、Avro、ORC、Parquet、XMLなどの半構造化データをサポートします。
  • 変換せずに半構造化データをロードするための柔軟なスキーマデータ型
  • 最適化された内部ストレージ形式へのデータの自動変換
  • 高速で効率的な SQLクエリのためのデータベース最適化
レプリケーション
異なる地域および異なるクラウドプラットフォームの複数のSnowflakeアカウント間でデータベースを複製および同期します。
フェールオーバー・フェールバック
ビジネス継続性と災害復旧のために、異なる 地域の複数のアカウントにデータベースをフェールオーバーできるようにします。異なるクラウドプラットフォームでホストされているアカウント間でのフェールオーバーがサポートされています。
列レベルのセキュリティ
テーブルまたはビュー内の列にマスキングポリシーを適用できます。現在、列レベルのセキュリティは2つの機能で構成されています。
  • ダイナミックデータマスキング
  • 外部トークン化
AWS PrivateLink / Azure Private Link
[AWS] プライベートVPCエンドポイントを作成するためのものです。これにより、パブリックインターネットを経由せずに、 AWS VPCs 間の直接的かつ安全な接続が可能になります。 AWS 上のSnowflakeは VPC として実装されているため、 PrivateLink はSnowflakeと他の AWS VPC (同じ AWS 地域内)の間に安全なネットワークを作成して、不正な外部アクセスに対する十分な保護を提供します。
FedRAMP, NIST 800-53, HIPAA, PCI, ISO/IEC 27001, SOC2 Type 2, SOC1 Type 2対応
各種情報セキュリティ認証
フェデレーション認証とSSO
セキュアSSO(シングルサインオン)を使用してSnowflakeに接続できます。SSOを有効にすると、外部のSAML2.0準拠のIDプロバイダ(IdP)を介して認証されます。このIdPで認証されると、ユーザはSnowflakeにログインすることなく、IdPセッションの間、Snowflakeで1つ以上のセッションを安全に開始できます。
多要素認証
多要素認証(MFA)をサポートしており、Snowflakeに接続するユーザのログインセキュリティを強化しています。MFAサポートは、Snowflakeによって完全に管理されるDuo Securityサービスを搭載した統合Snowflake機能として提供されます。
地理空間データのネイティブサポート
地球表面のポイント、ライン、ポリゴンなどの地理空間機能をサポートします。
外部テーブル
クラウドストレージ(Amazon S3、Google Cloud Storage、またはMicrosoft Azure Blob)データレイクにあるデータファイルを参照します。外部テーブルには、ファイルパス、バージョン識別子、パーティション情報などのデータファイルに関するファイルレベルのメタデータが保存されます。これにより、データレイク内のファイルに保存されているデータを、データベース内にあるかのようにクエリできます。
外部関数
Snowflake外で実行されるコードを呼び出します。実行されたコードはリモートサービス と呼ばれます。ユーザは自分のリモートサービスを作成して呼び出すか、サードパーティが作成したリモートサービスを呼び出すことができます。これらのリモートサービスは、 AWS Lambdaなどのクラウドサーバーレスコンピューティングサービスを含む、任意の HTTP サーバースタックを使用して記述できます。
検索最適化
大きなテーブルでの選択的ポイントルックアップクエリのパフォーマンスを自動メンテナンスで大幅に向上させます。
マテリアライズドビュー
事前に計算されたデータセットを後で使用するために保存されます。データは事前に計算されているため、クエリは高速です。特に頻繁に実行され、大規模なデータセットで実行される、高価な集計、射影、および選択操作を高速化できます。
Secure Data Sharing
Snowflakeアカウント内のデータベース内の選択したオブジェクトを他のSnowflakeアカウントと共有できます。アカウント間で実際のデータのコピー、または転送はされません。すべての共有は、Snowflakeの独自のサービスレイヤーとメタデータストアを介して行われます。
Premierサポート
標準で、24時間365日のサポート窓口、緊急度に応じたサポート対応を提供します。
例: 緊急度1の問題の場合、24時間365日の対応範囲と1時間の応答ウィンドウ
上記の機能で主なものの詳細については、次回以降でご紹介したいと思います。また、これら以外にも様々な機能がありますので、詳しく知りたい方は以下よりドキュメントもご参照ください。
Snowflakeドキュメント(日本語):https://docs.snowflake.com/ja/index.html

Snowflakeでは、無償トライアル環境をご用意しております。こちらのURLから簡単なご登録頂くことで、$400(USD)分・30日間無償でお試しいただけます。ぜひご登録・お試しください。
無償トライアル:https://trial.snowflake.com
※本記事はSnowflakeから提供を受けております。著作権は同社に帰属します。

[PR]提供:Snowflake