🛠️

[Snowflake Summit2025 参加記]What's New: Snowflakeの開発者向け最新ツール群

に公開

1. はじめに

2025年のSnowflake Summitで開催されたセッション「What's New: Build, Test and Deploy Products with Developer Tooling」に参加しました。このセッションでは、Snowflakeが提供する最新の開発者向けツール群について、実際のデモを交えながら詳細に解説されました。

今回発表された新しい機能含めた様々なツールに関しても解説され、エンジニアとしては楽しいセッションでした。
※ 今回ご紹介するもの以外にも様々なツールが紹介されていましたが、今回は新機能などを中心にご紹介します。

2. セッション内容

本セッションでは、以下の3つの分類でSnowflakeの開発者向けツールが解説されました。

  • Software Development Lifecycle(ソフトウェア開発ライフサイクル)
  • Data Engineering & Pipeline(データエンジニアリング・パイプライン)
  • Security(セキュリティ)

3. Software Development Lifecycle

Snowflake Terraform Provider

Terraformはインフラ構成をコードで管理するIaCツールです。2025年4月にTerraform ProviderのGA版リリースがリリースされました。基本的にはGAになる前に導入する企業は少ないですが、10,000社以上がTerraform Provider(Preview版)を使用しており、コミュニティから始まったプロジェクトが公式サポート付きのGAの製品になるという珍しい成功例として紹介されました。コミュニティとの協力関係の素晴らしい事例だと述べられました

画像の説明

Terraformの特徴:

  • 宣言的なインフラ定義によるコード化(IaC化)
  • 変更内容の事前確認とテスト機能
  • インフラ変更の信頼性確保

SchemaをTerraformで定義する例

resource "snowflake_schema" "schema" {
  name                = "schema_name"
  database            = "database_name"
  with_managed_access = true
  is_transient        = true
  comment             = "my schema"

  data_retention_time_in_days                   = 1
  max_data_extension_time_in_days               = 20
  external_volume                               = "<external_volume_name>"
  catalog                                       = "<catalog_name>"
  replace_invalid_characters                    = false
  default_ddl_collation                         = "en_US"
  storage_serialization_policy                  = "COMPATIBLE"
  log_level                                     = "INFO"
  trace_level                                   = "ALWAYS"
  suspend_task_after_num_failures               = 10
  task_auto_retry_attempts                      = 10
  user_task_managed_initial_warehouse_size      = "LARGE"
  user_task_timeout_ms                          = 3600000
  user_task_minimum_trigger_interval_in_seconds = 120
  quoted_identifiers_ignore_case                = false
  enable_console_output                         = false
  pipe_execution_paused                         = false

}

https://zenn.dev/finatext/articles/e629df96846405

Snowflake Data Project(Private Preview)


現在Private Previewで提供されている新機能で、Snowflakeインフラを宣言的に定義・管理するためのツールです。Terraformの代替品ではなく、補完するツールとして位置づけられています。Terraformは複数アカウント管理や外部システムとの統合など広範囲なインフラ管理に適している一方、Data Projectは再現可能な内部インフラ(テーブルや特定のロールなど)の定義に最適化されているそうです。

主な機能:

  • YAML形式でのインフラ定義
  • Jinjaテンプレートによる環境別設定の柔軟性
  • dry-runによる変更内容の事前確認
  • CREATE OR ALTER文の自動生成・実行
  • データベースオブジェクトの一元管理

実際のデモで紹介された内容:

  • 設定ファイル(manifest.yml)でプロジェクト構成を定義
  • snow project createでプロジェクト作成
  • 各objectの設定ファイルを作成(下記参照)
  • snow project dry-runで変更差分の確認
  • snow project executeで実際の変更適用
  • 管理対象オブジェクトの変更保護機能

MY_DATA_PROJECT/
├── definitions/
│   ├── account_objects.sql
│   ├── schema_definition.sql
│   └── schema_objects.sql
├── manifest.yml
├── snowflake.yml
└── README.md

manifest.yml
manifest_version: 1.0

include_definitions:
 - definitions/.*

 configurations:
  default:
    base_db_name: ""MB_DATA_PROJECT
    env: "DEV"
schema_definition.sql
define database {{ base_db_name }}_{{ env }}
  log_level = 'INFO'
  trace_level = 'PROPAGATE'
  data_retention_time_in_days = 1
  max_data_extension_time_in_days = 3
  comment = 'This is the base database for all objects managed by the project.';
schema_definition.sql
define table {{ base_db_name }}.{{ env }}.TABLES.TARGET_TABLE (
    id int,
    timestamp timestamp_ntz default current_timestamp()
    )
    change_tracking = true
    comment = 'This is the table that is powered by the data from {{ base_db_name }}.{{ env }}.tables.source_table';


define view {{ base_db_name }}.{{ env }}.VIEWS.RESULTS (num_value, timestamp)
    comment = 'This view returns only values divisible by 3.'
    as
    select num_value, timestamp from {{ base_db_name }}.{{ env }}.TABLES.SOURCE_TABLE
    where 1=1
      and mod(num_value, 3) = 0;


特に印象的だったのは、Data Projectで管理されるオブジェクトは、UIからの手動変更ができなくなる点です。これにより、よりガバナンスを効かせることが可能です。(緊急用のためにBreak glassの手段は検討中だそうです)

4. Data Engineering & Pipeline

Snowflake Openflow


新しく発表されたマルチモーダル統合サービスで、以下の特徴があります:

  • 拡張可能でマネージドな統合サービス
  • 構造化・非構造化データの両方に対応
  • バッチ・ストリーミング処理の両方をサポート
  • データソースと出力先間のシームレスなデータ移動

キーノートでも紹介されたように、コネクタの設定を簡素化し、Snowflakeへのデータ取り込みを効率化します。

dbt project on Snowflake


dbtをSnowflake内で直接実行できる画期的な機能です:

主な特徴:

  • セルフサービス:開発者が自立してプロジェクトを管理
  • 観測可能:Snowflakeの標準的な監視機能を活用
  • ガバナンス:企業のデータガバナンス要件に準拠
  • マネージド:Snowflake内で完結して、開発、定期実行、リネージの確認などが可能

dbt project on snowflakeの詳細はこちらをご覧ください
https://zenn.dev/finatext/articles/26e88b589ec054

Workspaces

開発者のコンテキストスイッチングを減らすために開発された、Snowsight内IDEです。dbt project on Snowflakeでの開発もWorkspacesを利用します。:

現在利用可能な機能:

  • SQLのワークシート:フィルタリング、複数タブ、分割表示も可能
  • GitHub統合:外部リポジトリとの接続
  • ビジュアルエディタ:コンフリクト解決とブランチ管理
  • リアルタイム結果表示:クエリ結果の即座確認
  • 基本的な可視化機能:データ分析結果の簡易表示

今後予定されている機能:

  • 完全なNotebook統合
  • チーム共有・コラボレーション機能
  • SQL機能の更なる改善
  • Python・Streamlitのサポート

Streamlit

Snowflake内でのアプリケーション開発を支援するStreamlit機能も強化されました:

新機能:

  • マルチページ対応(今までマルチページにするためにはzipにしてstageに配置する必要がありました)
  • GitHub統合(Public Preview)
  • Pythonに最適化された開発体験
  • 内部ダッシュボード構築での実績

5. Security

Programmatic Access Token(PAT)

サービス間通信の業界標準として導入されたトークンベース認証:

特徴:

  • ビルトイン保護機能:セキュリティがデフォルトで組み込み
  • サービス単位の制御:個別サービスごとのアクセス管理
  • 簡単なローテーション:必要に応じた柔軟な更新
  • ネットワークポリシー必須:セキュリティ設定の強制

Workload Identity Federation

サードパーティサービスのアイデンティティを活用した認証の簡素化:

特徴:

  • Githubリポジトリベース認証:特定リポジトリからの実行を自動認証
  • トークン管理不要:手動でのトークン設定が不要
  • 他クラウドサービス対応:AWS IAMロールなどとの統合

この機能により、CI/CDパイプラインでのセキュリティ設定が大幅に簡素化されます。

New MFA Methods


従来のDuo認証に加えて、新しいMFA手法が追加されました:

パスキー対応:

  • デバイス内蔵対応:Chrome、スマートフォンに標準搭載
  • クラウド同期:Apple Keychain、Google、Windowsでの同期
  • 優れたUX:従来のワンタイムパスコードより使いやすい

Authenticatorアプリ対応:

  • 標準的なTOTPアプリ:Google Authenticator等との互換性

パスワードのみ認証の廃止:

  • MFA強制:2025年10月以降の新規アカウント
  • 既存アカウントへの段階展開:セキュリティ向上のための計画的移行

6. まとめ

Snowflake Summit 2025では、開発者の日常業務を変革する包括的なツール群が発表されました。今回のセッションで一貫して強調されていたのは「ツール切り替えの最小化」というテーマで、開発者が1日に使用するツール数を減らすことを目標とした機能群が提供されます。

従来は複数の外部ツールや環境を行き来して行っていたデータエンジニアリング作業が、Snowflakeだけで完結できるようになってきているなと感じるセッションでした。Snowflakeはデータエンジニアではない人でも、自分でパイプラインを作成したりとセルフサービス化をしやすいサービスになってきていると思います。

まだ実際に試せてない機能が多いので、実際に動かしてみたいと思います!

Finatext Tech Blog

Discussion