ポイント: Snowflakeは、ANSI準拠のSQLを使用してスケーラブルなデータ管理のために設計されたクラウドベースのデータウェアハウスプラットフォームです。Webインターフェース、複数のクライアントコネクタ、堅牢なセキュリティ対策を備え、大量のデータを扱うのに最適です。
- さまざまなデータ形式とロード方法をサポートしています。
- 新しいユーザー向けに30日間の無料トライアルを提供します。
データの量と速度が一貫して増加する中で、組織はビッグデータを処理するソリューションを求め、関連する課題に対処しています。組織が最初に行う決定の1つは? 柔軟性、スケーラビリティ、高性能を提供するクラウドベースのモデルを採用することです。
Snowflakeは、その数々の機能と効率性から人気を集めているクラウドベースのデータウェアハウスプラットフォームです。
この記事では、Snowflakeのアーキテクチャ、主要機能、解決する目的について掘り下げます。
Snowflakeとは?
Snowflakeは、AWSまたはMS Azureクラウドインフラストラクチャ上で動作するSaaSベースのデータウェアハウス(DWH)プラットフォームです。(これをデータウェアハウスサービスと呼ぶことがあります。)
他のウェアハウスソリューションとは異なり、Snowflakeは、クラウド専用に設計された強化されたANSI準拠のSQLエンジンを利用しています。
根本的に、Snowflakeのコアアーキテクチャは、パブリッククラウド上で動作することを可能にし、仮想コンピュートインスタンスと効率的なストレージバケットを使用して、大量のビッグデータを処理するための非常にスケーラブルでコスト効率の良いソリューションにしています。
Snowflakeの主な機能
従来のDWH技術と比較して、Snowflakeは以下のような数々の機能を提供しています。
標準および拡張SQLサポート
SQLベースのデータウェアハウスとして、指定されたデータ定義言語およびデータ操作言語DMLコマンドをサポートしています。また、INSERT、MERGE、MULTI-MERGEなどのマルチテーブル操作のための高度なDMLコマンドも提供しています。
Snowflakeを使用すると、ユーザーは:
- 短期データ用の一時テーブルとトランジェントテーブルを設定
- 分析および統計的集約関数とラテラルビューを使用
- ユーザー定義関数(UDF)を作成して、SQLとJavaScriptの両方で機能を拡張
Webベースのグラフィカルユーザーインターフェース(GUI)
Snowflakeは、ユーザーがデータクラウドと対話するためのWebインターフェースを提供しています。Web GUIを使用すると、ユーザーは:
- アカウントやその他の一般設定を管理
- リソースやシステムの使用状況を監視
- データをクエリ
コマンドラインクライアント(CLI)
Snowflakeは、DWHに接続するためのPythonベースのCLIであるSnowSQLを提供しています。これは、データ定義およびデータ操作クエリを実行するためのすべてのクエリを実行するための、別途ダウンロードしてインストール可能なターミナルツールです。
(私たちの<\/em>Python入門を始める。
豊富なクライアントコネクタのセット
Snowflakeは、ユーザーがデータクラウドに接続するために使用できる幅広いコネクタとドライバを提供しています。これらのクライアントコネクタには、以下が含まれます。
- Pythonコネクタ、Snowflakeに接続するPythonアプリを書くためのプログラミングインターフェース
- NodeJSドライバ
- ODBCドライバ、C/C++開発用
- JBDCドライバ、Javaプログラミング用
広範なサードパーティプラグイン
上記のプログラムインターフェースに加えて、いくつかの他のビッグデータツールがSnowflakeと統合されています。これらのツールは、ビジネスインテリジェンスツールからデータ統合、機械学習、セキュリティ、ガバナンスソフトウェアまで多岐にわたります。
データの一括ロードとアンロード
Snowflakeは、異なる形式とさまざまなデータソースからのデータロードを可能にします - データがサポートされている文字エンコーディングを使用している限り。ユーザーは以下のデータをロードできます。
- 圧縮ファイル
- AWS S3データソース
- ローカルファイル
- CSVおよびTSVのようなフラットデータファイル
- Avro、JSON、ORC、Parquet、XML形式のデータファイル
さらに、Snowpipeを使用すると、ユーザーはSnowflakeステージ内、AWS S3、またはAzureストレージからバッチでデータを継続的にロードできます。
適切なデータ保護とセキュリティの実装
Snowflakeを使用すると、ユーザーは:
- 規制ガイドラインに準拠するためにデータストレージの地域を設定
- 要件に基づいてセキュリティレベルを調整
Snowflakeはまた、データを自動的に暗号化します。オブジェクトレベルのアクセス制御は、誰が何にアクセスできるかを詳細に制御することを提供します。
Snowflakeアーキテクチャ
Snowflakeは、共有ディスクと共有なしのデータベースアーキテクチャのハイブリッドに従っています。これには以下が含まれます。
- データを永続化する中央リポジトリ
- データウェアハウス内のコンピュートノードは、そのベースディスクストレージにアクセスできます
クエリを実行するために、Snowflakeは、各ノードがデータの一部をローカルに保存し、CPUおよびメモリを持つ分散型の大規模並列処理(MPP)クラスターを使用します。
Snowflakeのフレームワークは通常、3つのレイヤーに分割されています。これらのレイヤーはすべて独立しており、個別にスケール、構成、管理できます。これらのレイヤーには以下が含まれます。
- ストレージレイヤー
- コンピュートレイヤー
- クラウドサービスレイヤー
ストレージレイヤー
中央リポジトリが存在するレイヤーです。システムにロードされたすべてのデータは、Snowflakeの圧縮された、内部最適化された列形式、AES 256を使用した暗号化に分割され、再編成され、クラウドストレージに保存されます。Snowflakeは自動的にパーティショニングを行いますが、ユーザーがパーティションパラメータを設定できるようにする設定を提供します。
このレイヤーに保存されたデータは中央にあり、クラスター内のすべてのノードがアクセスできます。Snowflakeはデータストレージのすべての側面を管理し、ユーザーがSQLクエリを通じて基盤となるデータとのみ対話できるようにします。
コンピュートレイヤー
コンピュートレイヤーは、クエリの実行を担当します。これは、独立したMPPコンピュートクラスターである仮想ウェアハウスを使用して行います。
Snowflakeは、選択したクラウドプロバイダーからこれらのコンピュートノードを各ユーザーに割り当てます。これらのクラスターは自律的であり、独自のCPU、メモリ、ローカルストレージを持っており、1つの性能が他に影響を与えません。
クラウドサービスレイヤー
Snowflakeは、Snowflakeデータクラウドを管理および運営するためのサービスのコレクションを提供しています。このレイヤーでは、さまざまなアクティビティが行われます。
- アクセス制御
- 認証
- インフラ管理
- メタデータ管理
- クエリ解析
- 最適化
なぜSnowflakeを使用するのか?
組織がSnowflakeを選ぶ理由は多数あります。以下は主な理由です。
- ハイブリッドアーキテクチャは、ユーザーに両方の利点を提供します。 ユーザーは基盤となる中央リポジトリと必要に応じたコンピュートパワーに対して別々に支払います。
- SQLベースで素早く学べます。 SQLベースの実装は、開発者が新しい技術を理解するために急な学習曲線を経験する必要がないことを保証します。
- データファースト。 データクローンと安全なデータ共有をサポートします。
- インフラストラクチャ構成は不要。 Snowflakeはインフラストラクチャの構成を必要とせず、代わりに希望するクラウドサービスプロバイダーを選択した後に自動的に行います。
Snowflakeを始める
準備はできましたか? Snowflakeは現在新しいユーザー向けに30日間の無料トライアルを提供しています。アクセスが得られたら、あなたは:
- 右側のSnowflakeガイドメニューでいくつかのチュートリアルを表示
- 公式ドキュメントを参照
Snowflakeはクラウドネイティブ
クラウドネイティブサービスは新常態です。
Snowflakeは、クラウド専用に構築されたDWHサービスであり、組織が膨大なビッグデータストレージと処理を扱うことを可能にし、コンピュートとストレージを独立してスケールさせることができます。より迅速なクエリ実行と性能の向上のために、Snowflakeはユーザーが追加のデータウェアハウスでスケールアップして、必要に応じて追加の計算リソースを提供できるようにしています。
Snowflakeはスケールで効率的な分析を可能にし、Control-MとSnowflakeのワークロードをオーケストレーションすることで、エンタープライズスケジューリング、SLA管理、およびシステム間依存関係の処理を追加して、Snowflakeデータパイプラインを本番環境で信頼性高く運用することができます。
関連情報
Snowflakeガイド
- Snowflake 101: Snowflakeデータクラウド入門
- Amazon S3データをSnowflakeにインポートする方法
- SnowflakeでJSONデータをクエリする方法
- S3からSnowflakeへのCSVファイルのロード
- Snowflake: 分析および統計関数の使用
- Snowflakeウィンドウ関数: Partition ByとOrder By
- Snowflakeラグ関数と移動平均
- Snowflake SQL集約関数とテーブル結合
- Snowflakeにおけるユーザー定義関数(UDF)
- Snowflakeストリームの作成と使用
- Snowflakeにおけるストアドプロシージャの使用
- Snowflake vs Redshift: 違いと選び方
これらの投稿は私自身の見解であり、必ずしもBMCの立場、戦略、または意見を代表するものではありません。