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

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に接続するために、他のアプリケーション(例:Tableau)で使用できる ODBC および JDBC ドライバー。

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

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

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