Snowflakeのアーキテクチャの構成要素・機能・特徴とは?

  • 公開日:
  • 最終更新日:

Snowflakeは、クラウド用にネイティブに設計された革新的なアーキテクチャが組み合わさったデータプラットフォームです。
本ブログ記事では、Snowflakeのアーキテクチャの構成要素(レイヤー)と各レイヤーの主要な機能・特徴について解説します。

Snowflakeのアーキテクチャの構成要素(レイヤー)

Snowflakeのアーキテクチャは、3つの重要なレイヤーで構成されています。

  1. データベースストレージ(ストレージ層)
    Snowflakeのストレージ層は、データの物理的な格納を担当します。ここでは、データはマイクロパーティションと呼ばれる小さなサイズに分割され、Amazon S3(Simple Storage Service)などのSnowflakeを構築する際に選択した、クラウドサービスのストレージに格納されます。
  2. クエリ処理(コンピューティング層)
    Snowflakeのコンピューティング層は、クエリの実行やデータ処理を担当します。
    コンピューティングリソースは、SnowflakeのVirtual Warehouse(仮想ウェアハウス、以後仮想ウェアハウスとする)と呼ばれる単位で提供されており、用途ごとに分離されています。それぞれが独立しているため、複数の仮想ウェアハウスが同時に実行されても互いに影響を及ぼすことはありません。
    また、仮想ウェアハウスは、コンピューティングリソースを動的にスケーリングすることができるため、負荷に応じて適切なリソースを割り当てることができます。

  3. クラウドサービス
    クエリの実行を最適化するための重要な要素が含まれています。Snowflakeは、クエリを実行する際に自動的に最適化を行い、クエリパフォーマンスを向上させることができます。
    例えば、自動メタデータ管理、データのスキャンの最適化、クエリの並列実行、キャッシングなどがあります。

Snowflakeは、データを保管する①ストレージ層と、クエリ処理を実行する②コンピュート層(仮想ウェアハウス)がそれぞれ分離独立しているため、データは集約して一箇所で保管しつつ、複数の処理を同時に実行可能となります。また、全体のアクティビティを調整する③クラウドサービスがパフォーマンスを向上してくれます。

Snowflakeのアーキテクチャ①データベースストレージの特徴

Snowflakeのストレージ層は、データの保存と管理を担う中核的なレイヤーです。
主な特徴は以下の通りです。

  1. コンピュートと分離されたスケーラブルなストレージ
    Snowflake
    では、データの保存(ストレージ)と処理(コンピュート)を分離しています。
    そのため、データ量の増加に応じてストレージのみを柔軟に拡張でき、効率的なスケーリングが可能です。

  2. クエリパフォーマンスの最適化
    Snowflake
    のストレージ層は、クエリのパフォーマンスを最適化するために、データを圧縮し、列指向ストレージを使用します。これにより、データのスキャン速度が向上し、クエリの実行が高速化されます。

  3. ACID準拠のトランザクションサポート
    Snowflake
    ACID*トランザクションに対応しています。これにより、データの整合性と信頼性が確保され、データの正確性が保たれます。
    ACID とは、データベースのトランザクションを定義する、Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)といった4つの特性の頭文字をとった略語で、この特性により、データベースは信頼性と拡張性の高いトランザクション処理を実現できる

  4. 自動データ分散による高い並列処理性能
    Snowflake
    は、データは内部的に分割(マイクロパーティション)され、自動的に分散配置されます。
    これにより並列処理が可能になり、大量データでも高速にアクセスできます。

  5. 高い耐障害性とデータ保護
    Snowflakeは、データの耐障害性を確保するために、ストレージの冗長性と自動バックアップを提供します。データは複数のデータセンターに複製され、万が一の障害に備えます。

  6. 高度なセキュリティ管理とアクセス制御
    Snowflakeのストレージ層は、高度なセキュリティ対策を提供しています。データは暗号化され、アクセス制御は厳密に管理されます。ロールベースのアクセス制御により、データへのアクセス権限を細かく設定できます。

Snowflakeのアーキテクチャ②クエリ処理の特徴

Snowflakeのコンピューティング層は、データの処理・分析を担うレイヤーであり、「仮想ウェアハウス」によって実現されます。主な機能・特徴は次の通りです。

  1. 仮想ウェアハウスによる柔軟なリソース分離
    仮想ウェアハウスは、クエリを実行するための独立した計算リソースです。
    用途ごとに分けることで、処理の干渉を防ぎ、安定したパフォーマンスを実現します。
  2. 需要に応じたスケーリング
    Snowflake
    は、処理負荷に応じて、コンピューティングリソースを拡張・縮小できます。
    これにより、パフォーマンスとコストの最適化が可能です。
  3. マルチクラウド対応
    Snowflakeは複数のクラウドプロバイダー(AWS、Azure、Google Cloud)に対応しており、環境に依存しない柔軟な運用が可能です。これにより、ユーザーは、自由なクラウド戦略を実現できます。
  4. 標準SQL対応
    Snowflake
    のコンピューティング層は、標準SQLをサポートしています。これにより、既存のSQLスキルを活用してクエリを実行し、データの操作や分析を行うことができます。SQLの互換性により、簡単に移行して新しいデータウェアハウス環境を構築できます。
  5. タスク自動化と監視機能
    Snowflake
    は、ジョブスケジューリングとモニタリング機能を提供しています。これにより、バックグラウンドで実行されるタスクやETL(Extract, Transform, Load)処理を自動化し、ジョブの進行状況を監視することができます。
  6. セキュリティとアクセス制御
    コンピューティング層でも、Snowflakeは高度なセキュリティ対策を提供しています。データの暗号化、ロールベースのアクセス制御、シングルサインオン(SSO)など、データへのアクセスを厳格に管理します。

Snowflakeのアーキテクチャ③クラウドサービスの特徴

クラウドサービスは、Snowflake 全体を統制する「頭脳」の役割を担います。主な機能・特徴は次の通りです。

  1. メタデータ管理
    テーブル定義や統計情報などのメタデータを管理し、効率的なデータ利用を支えます。
  2. クエリ最適化とパフォーマンス
    クラウドサービスレイヤーは、クエリの実行において最適化を行う重要な機能を備えています。
    クエリプランナーが最適な実行計画を生成し、パフォーマンスを最大化します。
  3. 認証・アクセス管理
    Snowflakeは、クラウドサービスレイヤーで高度なセキュリティ対策を提供しています。データの暗号化、ロールベースのアクセス制御、多要素認証(MFA)*など、データへのアクセスを厳格に管理します。また、データの転送と保存においてもセキュリティが確保されています。
    *Snowflakeの多要素認証(MFA)については
    こちらで詳しく解説しております。あわせてご覧ください。
  4. バックアップと復元
    クラウドサービスレイヤーは、データの定期的な自動バックアップと復元をサポートしています。これにより、データの安全性と信頼性が確保されます。データの復元は、誤った操作やデータの損失時に非常に役立ちます。
  5. マルチテナントアーキテクチャ
    Snowflakeはマルチテナントアーキテクチャを採用しています。これは、複数の顧客(テナント)が同じインフラストラクチャを共有して利用することを意味します。各テナントのデータは論理的に分離されており、高いセキュリティとデータプライバシーが確保されています。

まとめ

さてここまで、Snowflakeのアーキテクチャの構成要素(レイヤー)と各レイヤーの主要な機能・特徴について解説して参りました。Snowflakeは、データの保存・処理・管理を役割ごとに分離したアーキテクチャによって、企業のデータ活用基盤に求められる柔軟性と拡張性を実現しています。

Snowflakeアーキテクチャ まとめ

  • Snowflakeは、データベースストレージ(ストレージ層)クエリ処理(コンピューティング層)クラウドサービスの3層で構成されている
  • ストレージ層は、データをマイクロパーティション単位で管理し、圧縮・列指向形式によって効率的な保存と高速なデータアクセスを実現する
  • コンピューティング層は、仮想ウェアハウスによって処理リソースを独立して提供し、用途ごとに分離した柔軟な運用を可能にする
  • クラウドサービスは、メタデータ管理、クエリ最適化、認証・アクセス制御などを担い、Snowflake全体のパフォーマンスと運用性を支える
  • ストレージとコンピュートが分離されているため、データ量の増加と処理負荷に応じて、それぞれを独立して拡張できる
  • 複数の仮想ウェアハウスを同時に実行できるため、処理同士が干渉しにくく、高い同時実行性を確保できる
  • 標準SQL対応、セキュリティ機能、自動最適化機能により、既存スキルを活かしながら安全かつ効率的なデータ活用を進めやすい
  • こうしたアーキテクチャにより、Snowflakeは拡張性・性能・運用性・セキュリティを両立しやすいデータプラットフォームとなっている

 

電通総研は、データマネジメントの専門家として、お客様のデータ一元管理やデータ活用における戦略策定、データドリブン経営の実現に向けた真の“使える”データマネジメント基盤構築のご支援をしております。
データ分析基盤の豊富な構築実績に基づくノウハウを体系化したサービスをご提供しておりますので、データ活用でお悩みの際は、是非、電通総研までお声掛けください。
◆ お問い合わせページ:https://data-management.dentsusoken.com/snowflake/inquiry/

本サイトのブログ記事に加え、Snowflakeを中心としたデータエンジニアリング関連の技術的な情報を掲載したテックブログもWeb公開しております。
是非、こちらのテックブログもご覧ください。
https://zenn.dev/p/datatechblog

*本記事は、2023年8月1日時点の情報を基に作成しています。
 製品・サービスに関する詳しいお問い合わせは、電通総研のWebサイトからお問い合わせください。