Session report: Power Analytics and Al Wherever You Data Lives

catch-img

こんにちは中村です。

Snowflake Summit 26 で参加したハンズオンセッション「Power Analytics and AI Wherever Your Data Lives」をレポートします。登壇者は Snowflake の Senior Developer Advocate である Vino Duraisamy 氏。セッションは Overview → Hands-on Lab → Q&A という構成で進みました。

目次[非表示]

  1. 1.なぜ今 Iceberg なのか
    1. 1.1.期待と現実:データチームの今
    2. 1.2.Snowflake が目指す「シンプルな相互運用性」
  2. 2.ハンズオン体験レポート
    1. 2.1.Step 1:External Volume の作成
    2. 2.2.Step 2:Catalog Integration の作成
    3. 2.3.Step 3:Catalog-Linked Database の作成
    4. 2.4.Step 4:データ探索
    5. 2.5.Step 5:ガバナンスの実装
    6. 2.6.Step 6:セマンティックビューと Cortex Agent
  3. 3.まとめ

なぜ今 Iceberg なのか

スケールの要求がアーキテクチャを圧迫している

まず示されたのは、現代のデータチームが直面している三つの課題です。

  • Business Pressures

    • リソースを増やさずにリアルタイムインサイトを届け、AI のスピードに追いつくことが求められている

  • Data Sprawl

    • リソースを増やさずにリアルタイムインサイトを届け、AI のスピードに追いつくことが求められている

  • Operational Drag

    • データがデータレイク・ウェアハウス・SaaS に分散し、無数のサイロが生まれている

期待と現実:データチームの今

理想は、複数のチームが Analytics・AI・Applications & Collaboration を 統一されガバナンスされた 単一のデータ基盤の上で動かすことです。しかし現実は、チームとデータはサイロ化し、SLA 違反や高い工数が常態化しています。

Snowflake が目指す「シンプルな相互運用性」

この課題に対する Snowflake の答えが Simple Interoperability です。アーキテクチャは 4 層で構成されています。

また、三つの設計原則が強調されました。

  • Capture complete context

    • データにポータブルなセマンティックコンテキストを持たせ、どこでも AI を成功させる

  • Achieve universal governance

    • エンジンをまたいでポリシーを永続させ、ロックインなしにガバナンスを簡素化する

  • Access data in-place

    • データをコピーせず、単一の管理されたデータコピーでコストを削減する

ハンズオン体験レポート

ここからは実際に手を動かして試した内容です。今回のラボは 「AWS Glue 上の Apache Iceberg データを Snowflake からデータ移動なしで分析する」 というシナリオです。データは保険見積もりレコード(40 カラム、Iceberg V2 形式)で、S3 バケット・Glue データベース・IAM ロールはあらかじめ用意されていました。

Step 1:External Volume の作成

まず Snowflake から S3 へアクセスするための認証情報を定義します。

CREATE OR REPLACE EXTERNAL VOLUME iceberg_lab_vol

  STORAGE_LOCATIONS = (

    (

      NAME = 'my-s3-us-west-2'

      STORAGE_PROVIDER = 'S3'

      STORAGE_BASE_URL = 's3://<バケット名>/'

      STORAGE_AWS_ROLE_ARN = '<IAM ロール ARN>'

    )

  );

Step 2:Catalog Integration の作成

AWS Glue の REST API に接続するカタログ統合を作成します。これにより Glue のメタデータが Snowflake から参照可能になります。

CREATE OR REPLACE CATALOG INTEGRATION glue_catalog_int
  CATALOG_SOURCE = GLUE
  CATALOG_NAMESPACE = '<Glue データベース名>'
  TABLE_FORMAT = ICEBERG
  GLUE_AWS_ROLE_ARN = '<IAM ロール ARN>'
  GLUE_CATALOG_ID = '<AWS アカウント ID>'
  GLUE_REGION = 'us-west-2'
  ENABLED = TRUE;

Step 3:Catalog-Linked Database の作成

カタログ統合からデータベースを作成すると、Glue に登録されている Iceberg テーブルが自動検出されます。

CREATE DATABASE iceberg_lab

  FROM CATALOG INTEGRATION glue_catalog_int;

SHOW TABLES IN DATABASE iceberg_lab; を実行するとquotes テーブルが表示されます。ここがポイントで、S3 上のデータは一切 Snowflake にコピーされていません。

Step 4:データ探索

通常の SQL でそのまま分析できます。

-- 商品タイプ別の件数を確認
SELECT product_type, COUNT(*) AS cnt
FROM iceberg_lab.public.quotes
GROUP BY 1
ORDER BY cnt DESC;

-- クレジットスコア帯別の平均保険料
SELECT
  FLOOR(credit_score / 100) * 100 AS score_band,
  ROUND(AVG(premium_amount), 2)   AS avg_premium
FROM iceberg_lab.public.quotes
GROUP BY 1
ORDER BY 1;

Snowflake の通常テーブルと同じ操作感で Iceberg データを扱えることを確認できました。

Step 5:ガバナンスの実装

次にロールベースのアクセス制御と動的データマスキングを設定します。

-- ロールの作成
CREATE ROLE lab_analyst;
CREATE ROLE lab_data_engineer;

-- PII カラム(メール・電話・氏名・生年月日)にマスキングポリシーを適用
CREATE OR REPLACE MASKING POLICY email_mask AS (val STRING)
RETURNS STRING ->
  CASE
    WHEN CURRENT_ROLE() IN ('LAB_DATA_ENGINEER') THEN val
    ELSE '****@****.***'
  END;

ALTER TABLE iceberg_lab.public.quotes
  MODIFY COLUMN email
  SET MASKING POLICY email_mask;

lab_analyst ロールで SELECT email FROM quotes を実行すると ****@****.*** と表示されlab_data_engineer では実際のメールアドレスが見えることを確認しました。データをコピーしなくてもガバナンスが一元管理できるのは大きなメリットです。

Step 6:セマンティックビューと Cortex Agent

最後に、ビジネスメトリクスや次元を定義したセマンティックビューを作成し、それを Cortex Agent に接続します。

CREATE OR REPLACE SEMANTIC VIEW quotes_semantic
  ON iceberg_lab.public.quotes (
    -- ディメンション定義
    DIMENSION product_type   COMMENT '保険商品タイプ',
    DIMENSION customer_id    COMMENT '顧客 ID',
    -- メトリクス定義
    METRIC total_premium = SUM(premium_amount)
      COMMENT '保険料合計'
  );


Cortex Agent を通じて自然言語でクエリできるようになり、「商品タイプ別の保険料合計を教えて」と入力するだけで適切な SQL が生成・実行されました。マスキングポリシーはこのレイヤーでも自動的に適用されます。

まとめ

今回のセッションを通じて体験できたポイントを整理します。

  • データ移動ゼロ

    • S3 の Iceberg データを Snowflake にコピーせずそのまま分析

  • 自動テーブル検出

    • Catalog-Linked Database により Glue のメタデータを自動同期

  • 統一ガバナンス

    • 動的データマスキングがコピー先でなく元データに適用

  • AI との接続

    • セマンティックビュー + Cortex Agent で自然言語クエリを実現

Apache Iceberg を採用したマルチクラウド・マルチエンジン環境でも、Snowflake のガバナンスと AI 機能をフルに活用できることが確認できました。データをどこに置いていても「分析・AI の力」を届けるという Snowflake のビジョンが、実際のハンズオンで体感できたセッションでした。

ハンズオンの詳細は公式ガイドも参照してください。

Nakamura
Nakamura
Google Cloud, Snowflakeを中心に記事を書いています。

人気記事ランキング

タグ一覧