🦔

第1回Snowflake Rookies Camp開催~Snowflakeとは?~

に公開

こんばんは!
Snowflake Rookies Camp幹事のKaoriです。
今回はSnowflake Rookies Camp 第1回の勉強会で幹事の横澤さんにご説明いただいた内容を
復習できるように記事にしてみました!

まずはじめに・・・

Snowflakeとは?

Snowflakeは「AI Data Cloud」として、データを保存・管理・分析するためのプラットフォームです。従来のデータウェアハウス(DWH)に加えて、さまざまな便利な機能を備えています。
特に重要だと思われる4つの機能を紹介します!

  1. Snowpipe
    データを自動で取り込む機能です。
    Snowpipeを使うと、手動でアップロードするのではなく、新しいデータが追加されるたびに自動で取り込んでくれます。例えば、ECサイトの売上データをリアルタイムでSnowflakeに取り込むことができます。

  2. Data Sharing
    他の企業や部門とデータを簡単に共有できる機能です。
    SnowflakeのData Sharingを使えば、リンクを共有するだけで相手もデータを利用できます。
    これにより、最新のデータをリアルタイムでやり取りできます。

  3. Cortex AI
    AIや機械学習を活用するための機能です。すでに用意されたAIモデルをSnowflake内でそのまま使えるため、Snowflake上でAIを使ってデータ分析が簡単に行えます。

  4. Snowpark
    Python・Java・Scalaを使ってデータ処理や分析を行う機能です。
    データウェアハウスでのデータ処理はSQLで行うのが普通ですが、Snowparkを使うとPythonやJavaなどのプログラミング言語で処理できます。データサイエンティストやエンジニアが、使い慣れた言語でデータ分析や機械学習の開発を行えます。

次に、アーキテクチャについて紹介します!

特に重要アーキテクチャ

Snowflakeはデータを効率的に管理・処理するために3つの主要な層で構成されています。

  1. クラウドサービス層(Cloud Services Layer)
    データの管理やセキュリティを担う層です。
    ユーザーがSnowflakeを利用する際の認証、アクセス制御、メタデータ管理、クエリの最適化などを担当します。

     主な役割
        認証・アクセス管理 → 誰がどのデータにアクセスできるかを制御
        クエリの最適化 → データ検索を効率化し、高速に処理
        メタデータ管理 → データの構造や変更履歴を管理
    
  2. コンピュート層(Compute Layer / クエリ処理層)
    データ処理を実行する層です。
    Snowflakeでは「仮想ウェアハウス」と呼ばれる仕組みを使い、ウェアハウスごとに独立したコンピュートリソースを提供します。ウェアハウスを分けることにより、ETLでのロード処理とBIツールの参照処理など異なるワークロードの処理が依存することがなくなります。
    例えば、大量データのロードでETL処理がリソースを大量に使った場合もBIツールの参照処理の性能に全く影響することは有りません。

     主な役割
         データの検索・集計・計算を実行(SQLクエリを処理)
         負荷に応じて処理能力を増減させ、スケーラブルな処理を実行
         複数のクエリを並行実行し、高速な処理を実現
    
  3. ストレージ層(Storage Layer)
    データを保存する層です。
    Snowflakeではデータをクラウドストレージ上に列指向フォーマットで格納し、効率的に管理・圧縮しています。

     主な役割
         データの管理と保存
         列指向フォーマットによる高速なデータ取得(分析に最適化)
         マイクロパーティショニングによるデータ分割と最適化
    

最後に

ただいま、第2回目のイベントを企画していますので、
この記事で復習していただきつつ、是非ご参加を検討いただければ嬉しいです♪
みなさまと一緒にSnowflakeを学べることを楽しみにしてます!

Discussion