【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【DWH】Snowflake の 特徴 と アーキテクチャ【ビッグデータ】

技術営業部の大原です。

本日はデータウェアハウス(DWH)の「Snowflake(スノーフレーク)」の特徴とアーキテクチャについて記載します。
有名なクラウド型のDWHだと、GCPであれば「Google BigQuery」や AWSだと「Amazon Redshift」がありますが、最近では この " Snowflake " も知名度が上がってきています。
また Snowflake では AWS や GCP・Azure のプラットフォームを指定して、それらのインフラ上で Snowflake のサービスを稼働させることできます。

※ 2020年9月時点での情報です。

Snowflake の 特徴

● 全てのデータを単一のソースで

Snowflakeでは、ほぼ無制限の低コストクラウドストレージを使用して、JSONやXMLを含むすべてのデータを効果的に管理できる、すぐにクエリ可能な単一のソースを作成します。また独自のプライベートデータ交換を介して、顧客・パートナーに共有データにアクセスし 提供することもできます。

● 完全なSQL互換 / マルチクラスター

ほぼ無制限で同時実行をおこなうマルチクラスターコンピューティングリソースで、無制限の同時ユーザー・クエリをサポートします。完全にANSI SQL互換・ネイティブでサポートされた半構造化データをSQLで直接クエリし、任意の分析ツール・機械学習ツールを活用することができます。

● ゼロに近いメンテナンス

計画的なダウンタイムなしの自動更新で、システム管理・メンテナンスを限りなくゼロにします。Snowflake の利用においても 1秒あたりの料金設定で 自動的に上下にスケーリングします。これにより、グローバル間でのデータアクセス・クロスクラウドでのデータ同期を可能とします。

Snowflake の アーキテクチャ

Snowflake アーキテクチャの特徴として、ストレージ・コンピューティング・クラウド サービスの各レイヤーを別々に使用した「3層設計」で構成されています。
コンピューティングリソースとストレージ リソースは物理的に分離されていますが、論理的に単一に統合されたデータプラットフォームシステムなので、無停止のスケーリングを可能とするアーキテクチャになっています。

● サービス:

複数のアベイラビリティーゾーンで実行されるステートレスコンピューティングリソースで構成されています。
このレイヤーは、グローバル状態管理用の高可用性および分散型メタデータストアを提供し、データプルーニング・データ交換・クラウド間のデータレプリケーションなどのサービスを有効にします。

サービス層においては、以下のようなセキュリティおよび暗号化キー管理を提供し、全ての SQL・DML および DDL関数を有効にします。

・ユーザーセッションの認証
・管理の提供
・セキュリティ機能の適用
・クエリのコンパイルと最適化の実行
・すべてのトランザクションの調整

例えば、データのプルーニングを実行するために、サービス層はクエリを素早く完了するためにスキャンする必要があるマイクロパーティションを決定するためのクエリ・メタデータをコンパイルします。
これにより、クエリの完了に必要なデータのみがスキャンされるので、結果的にパフォーマンスが高くなります。

また、メタデータ自動処理は個別の統合サブシステムによって実行し、統計収集やその他のメタデータ操作がなされるので、ユーザーのコンピューティングリソースを必要としません。

● コンピュート:

計算レイヤーは Snowflake の基幹となる部分で、大量のデータを迅速かつ効率的に処理するように設計されたコンピューティングエンジンは、全てのデータ処理を実行します。

・Snowflake のデータプルーニングのアルゴリズムによって指示されるクエリを満たすために、ストレージ層から必要な最小データを取得する。

・Snowflake 固有の複数コンピューティングエンジンは、システム全体のトランザクション整合性と完全な ACID コンプライアンスで同じデータを同時に操作することで、
分離されたワークロードとして、常に一貫されたデータを読み取り操作(SELECT)で参照します。
(書き込み操作によって Reader がブロックされることはありません)

・データとクエリの結果をローカルにキャッシュし、パフォーマンスを大幅に向上させ、コストを削減します。
(キャッシュによるクエリ結果によるコンピューティング料金は発生しません)

● ストレージ:

ストレージレイヤーは、データ処理がおこなわれる際に、以下のような方法で実行されます。

・データをマイクロパーティションに分割し、データファイルごとに数十万のパーティションを作成
・メタデータ(タイムスタンプや最小 / 最大値など)を抽出して、効率的なクエリ処理を可能
・マイクロパーティションを圧縮して、ストレージとスペースのコストを節約
・セキュリティで保護されたキー階層を使用してデータを完全に暗号化

まとめ

Snowflake はクラウドプラットフォームのインフラを利用する前提のサービスで、
すでに AWS や GCP・Azure にはそれぞれ独自のDWHサービスが存在するため競合する部分もありますが、
Snowflake のデータクラウド専用のサービスなので用途に応じて使い分けてみるのも面白いです。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
2
読み込み中...
2 票, 平均: 1.00 / 12
13,839
X facebook はてなブックマーク pocket
【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author

ohara

通信業界で法人向けのNWサービス・OA機器・グループウェアなどの、IT製品の導入を担当するセールスとしてキャリアをスタート。

その後、SIer系のデータセンター事業会社で、物理サーバー / ホスティングサービスのプリセールスエンジニア、SaaS型のSFA / CRM・BtoB向けのEコマースなどのカスタマーエンジニアを経て、現在のビヨンドへ入社。

現在は、アジアのシリコンバレー中国・深圳に駐在して、中国ドラマと billbill を見るのが日課です。

所有資格:簿記二級