第1回:クラウドネイティブなデータ基盤設計とは
Snowflakeにおけるクラウドネイティブなデータ基盤設計 Snowflakeは、クラウドネイティブなデータプラットフォームとしてゼロから設計されており、クラウド環境でのデータ基盤設計に多くの参考になる点があります。従来のデータベース技術や「Apache Hadoop」のようなビッグデータソフトウェアとは異なり、Snowflakeは独自のSQLクエリーエンジンとクラウド向けに最適化されたアーキテクチャーを採用しています。 Snowflakeのアーキテクチャー Snowflakeのアーキテクチャーは、共有ディスク型と非共有型データベースのハイブリッド構造を採用しており、パフォーマンスとスケールアウトの両方を実現しています。特に、データベースストレージ、クエリー処理、クラウドサービスの3つの主要なレイヤーで構成されており、効率的でスケーラブルな基盤を提供します。 Snowflakeのアーキテクチャーは、主に3つのレイヤーで構成されています。最近では、人工知能/機械学習(AI/ML)のレイヤーも追加されており、効率的でスケーラブルなだけでなく、生成AIなどの最新技術をすぐに活用できる点も重要です。データ活用については別の記事で詳しく紹介します。 ストレージレイヤー Snowflakeにデータがロードされると、そのデータは内部で最適化された圧縮形式の列指向データに再編成され、クラウドストレージに保存されます。この独自の圧縮形式がSnowflakeの大きな特徴です。さらに、Snowflakeはデータの保存に関する全ての側面を自動で管理します。具体的には、データの構造やファイルサイズ、圧縮方法、メタデータ、統計など、あらゆるデータ管理事項を担当します。これにより、これらの要素を手動で設計する手間が大幅に削減されます。 コンピュートレイヤー クエリーの実行は、コンピュートレイヤーで行われ、Snowflakeでは主に「仮想ウェアハウス」を使用してクエリーを処理します。各仮想ウェアハウスは、クラウドプロバイダーからSnowflakeによって割り当てられた複数のコンピュートノードから成る大規模並列処理(MPP)コンピュートクラスターで構成されています。Snowflakeは、コンピュートとストレージを完全に分離しているため、クエリー処理の負荷に応じて柔軟にコンピュートリソースを拡張できます。 クラウドサービスレイヤー クラウドサービスレイヤーは、Snowflake全体のアクティビティーを調整するためのサービス群で構成されています。これらのサービスは、ユーザーがログインしてからクエリーが実行されるまでの全てのプロセスを統括します。クラウドサービスレイヤーは、クラウドプロバイダーによってSnowflakeに割り当てられたコンピュートインスタンス上で実行されます。 このレイヤーが提供する主なサービスは以下の通りです。 認証 インフラストラクチャー管理 メタデータ管理 クエリーの解析および最適化 アクセス制御 オンプレミスのデータ基盤では、これらの管理を行うために多くの製品を組み合わせ、複雑なネットワーク設計が必要になることがありました。その結果、基盤全体のコスト管理や保守が難しくなることがありました。 最後に クラウドネイティブなデータ基盤の設計には、従来のオンプレミス基盤とは異なる考慮点があることを理解していただけたかと思います。最近では、Snowflakeをはじめとするクラウドネイティブなデータ基盤設計に役立つ製品が幾つか登場しています。本記事の内容を参考にしながら、ぜひ自社に最適なクラウドネイティブなデータ基盤を設計していただければ幸いです。 西原 拓未(にしはら・たくみ) Snowflake セールスエンジニアリング統括本部 シニアセールスエンジニア Snowflakeで製造業を担当するシニアセールスエンジニア。新卒で日本IBMに入社し、銀行や製造業向けのデータウェアハウス(DWH)やビジネスインテリジェンス(BI)構築プロジェクトを担当。その後、インフォマティカ・ジャパンでプリセールスを担当し、ETL(抽出、変換、ロード)やデータカタログを含むデータマネジメントソリューションの導入を支援。さらに、Elasticsearchではサーチ、オブザーバビリティ、セキュリティ情報イベント管理(SIEM)のソリューション活用と推進を行い、多様なデータ戦略の実現をサポートしてきた経験がある。