重要な概念およびアーキテクチャ

Snowflakeは、Software-as-a-Service(SaaS)として提供される分析データウェアハウスです。Snowflakeは、従来のデータウェアハウス製品よりも高速で使いやすく、はるかに柔軟なデータウェアハウスを提供します。

Snowflakeのデータウェアハウスは、既存のデータベースやHadoopなどの「ビッグデータ」ソフトウェアプラットフォーム上に構築されていません。Snowflakeデータウェアハウスは、クラウド用に設計された独自のアーキテクチャを持つ新しい SQL データベースエンジンを使用します。ユーザーにとって、Snowflakeは他のエンタープライズデータウェアハウスと多くの類似点を持っていますが、追加の機能と独自の機能も備えています。

このトピックの内容:

クラウドサービスとしてのデータウェアハウス

Snowflakeのデータウェアハウスは、真の SaaS 製品です。詳細:

  • ハードウェア(仮想または物理)の選択、インストール、構成、または管理は必要ありません。

  • ソフトウェアのインストール、構成、または管理は必要ありません。

  • 継続的な保守、管理、および調整は、Snowflakeが対応します。

Snowflakeは、すべてがクラウドインフラストラクチャ上で実行されます。Snowflakeのサービスのすべてのコンポーネント(オプションのコマンドラインクライアントを除く)は、パブリッククラウドインフラストラクチャで実行されます。

Snowflakeは、コンピューティングのニーズに合わせて仮想コンピューティングインスタンスを使用し、データの永続的なストレージ用としてストレージサービスを使用します。Snowflakeは、プライベートクラウドインフラストラクチャ(オンプレミスまたはホスト)では実行できません。

Snowflakeは、ユーザーがインストールできるパッケージソフトウェアではありません。Snowflakeが、ソフトウェアのインストールと更新のすべての側面を管理します。

Snowflakeアーキテクチャ

Snowflakeのアーキテクチャは、従来の共有ディスクデータベースアーキテクチャと非共有データベースアーキテクチャのハイブリッドです。共有ディスクアーキテクチャと同様に、Snowflakeは、データウェアハウス内のすべてのコンピュートノードからアクセス可能な、永続データ用の中央データリポジトリを使用します。ただし、シェアードナッシングアーキテクチャと同様に、Snowflakeは、クラスタ内の各ノードがデータセット全体の一部をローカルに格納する MPP (大規模並列処理)コンピュートクラスタを使用してクエリを処理します。このアプローチにより、共有ディスクアーキテクチャのデータ管理の簡易性に加えて、シェアードナッシングアーキテクチャのパフォーマンスとスケールアウトのメリットが得られます。

Architecture overview

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

データベースストレージ

Snowflakeにデータがロードされると、Snowflakeはそのデータを内部の最適化された圧縮された円柱形式に再編成します。Snowflakeは、この最適化されたデータをクラウドストレージに保存します。

Snowflakeは、このデータの保存方法のすべての側面を管理します。組織、ファイルサイズ、構造、圧縮、メタデータ、統計、およびデータストレージの他の側面はSnowflakeによって扱われます。Snowflakeによって保存されたデータオブジェクトは、顧客が直接表示したりアクセスしたりすることはできません。 Snowflakeを使用して実行される SQL クエリ操作でのみアクセスできます。

クエリ処理

クエリの実行は、処理層で実行されます。Snowflakeは、「仮想ウェアハウス」を使用してクエリを処理します。各仮想ウェアハウスは、クラウドプロバイダーからSnowflakeによって割り当てられた複数のコンピュートノードで構成される MPP コンピュートクラスタです。

各仮想ウェアハウスは、コンピューティングリソースを他の仮想ウェアハウスと共有しない独立したコンピュートクラスタです。その結果、各仮想ウェアハウスは他の仮想ウェアハウスのパフォーマンスに影響を与えません。

詳細については、 仮想ウェアハウス をご参照ください。

クラウドサービス

クラウドサービスレイヤーは、Snowflake全体のアクティビティを調整するサービスのコレクションです。これらのサービスは、ログインからクエリディスパッチまでのユーザーリクエストを処理するために、Snowflakeのさまざまなコンポーネントをすべて結び付けます。クラウドサービスレイヤーは、クラウドプロバイダーからSnowflakeによってプロビジョニングされたコンピューティングインスタンスでも実行されます。

この層のサービスの中には、

  • 認証

  • インフラストラクチャ管理

  • メタデータ管理

  • クエリの解析および最適化

  • アクセス制御

Snowflakeへの接続

Snowflakeは、サービスに接続する複数の方法をサポートしています。

  • Snowflakeの管理と使用のすべての側面にアクセスできるウェブベースのユーザーインターフェイス。

  • Snowflakeの管理と使用のすべての側面にアクセスできるコマンドラインクライアント(例: SnowSQL)。

  • Snowflakeに接続するために、他のアプリケーションで使用できるODBC および JDBC ドライバー(例:Tableau)。

  • Snowflakeに接続するためのアプリケーションの開発に使用できるネイティブコネクタ(例:Python)。

  • ETL ツール(例:Informatica)や BI ツールなどのアプリケーションをSnowflakeに接続するために使用できるサードパーティのコネクタ。

詳細については、 Snowflakeへのログイン をご参照ください。