2025年5月にリリースされたSnowflakeの新機能・変更点のまとめ #SnowflakeDB

2025年5月にリリースされたSnowflakeの新機能・変更点のまとめ #SnowflakeDB

Clock Icon2025.06.04

2025年5月にリリースされたSnowflakeの新機能・変更点のまとめ記事になります。

※注意事項:本記事ではすべての情報についての記述はせず、特筆すべきだと感じた情報だけピックしております。基本的には以下の情報を参考にしておりますので、全ての最新情報を確認したい場合は下記のURLからご確認ください。

May 30, 2025 — Data Governance release notes

オブジェクトのタグ付けが Standard Edition でも利用可能に

すべてのアカウントで、エディションに関わらずオブジェクトタグを作成および設定できるようになりました。タグの伝播などの一部の機能は、引き続き Enterprise Edition 以上が必要です。

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-30-tags

May 23-28, 2025 — 9.14 Release Notes

https://docs.snowflake.com/en/release-notes/2025/9_14

Snowpark Python version updates

Snowpark Python でサポートされている Python のバージョンとして 3.12 が追加されました。

https://docs.snowflake.com/en/developer-guide/snowpark/python/setup

Data types:Structured data types を標準テーブルでもサポート — パブリックプレビュー

Iceberg テーブルでサポートされていた Structured data types のカラムを標準の Snowflake テーブルで定義できるようになりました。

以下のデータ型を定義できます。

  • Structured ARRAY
  • Structured OBJECT
  • MAP

例えば配列の場合、Snowflake における半構造化配列の各要素は VARIANT 型のため他のデータ型の値を含めることができますが、Structured ARRAY の場合、要素のデータ型が明示的に指定されます。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/sql-reference/data-types-structured

トリガータスク: ディレクトリ テーブルと共有データでホストされるストリームのサポート

トリガータスクでディレクトリテーブルと共有テーブルに対するストリームがサポートされました。
ディレクトリテーブルでホストされているストリームの場合、タスクが変更を検出する前に、ディレクトリテーブルを更新する必要があります。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/tasks-triggered

May 28, 2025 — 組織ユーザーがパブリックプレビュー

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-29-org-users

組織内で複数のアカウントがある際に、組織アカウントで「組織ユーザー」と「組織ユーザーグループ」を作成し、それらを通常のアカウントにインポートすることで、複数のアカウントで同じ人物をユーザーとして管理することができるようになりました。
これにより、複数アカウントでのユーザー管理のプロセスを簡素化できます。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/organization-users

May 28, 2025 — Data Governance release notes

リネージ:ストアドプロシージャのサポートがパブリックプレビュー

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-27-lineage

Snowsight リネージ図を表示すると、下流オブジェクトを生成したストアドプロシージャの詳細を取得できるようになりました。

リネージ図内の 2 つのオブジェクトを結ぶ矢印を選択すると、サイドパネルが開き、下流オブジェクトの作成方法の詳細が表示されます。下流オブジェクトがストアドプロシージャによって作成された場合「Stored Procedures」セクションに以下の情報が表示されます。

  • Direct
    • 下流のオブジェクトを生成したストアド プロシージャの名称
  • Root
    • ストアド プロシージャが他のストアド プロシージャ内にネストされている場合、ネストされたプロシージャの階層の最上位にあるストアド プロシージャの名前が表示される

image

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/ui-snowsight-lineage#label-ui-lineage-stored-procedure

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-27-na-spcs-azure-pl-ga

Snowpark Container Services を利用した Snowflake ネイティブアプリで Azure Private Link のサポートが一般提供となりました。
Snowpark Container Services へのプライベート接続は、AWS PrivateLink と Azure Private Link でのみサポートされています。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/developer-guide/snowpark-container-services/private-connectivity#label-spcs-private-connectivity-inbound

May 27, 2025 — Security release notes

MFA 時の認証要素として Passkey と Authenticator App のサポートが一般提供

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-23-mfa

MFA に登録されているパスワードユーザーが、Snowflake へのサインイン時にパスワードを入力した後に使用する2番目の認証要素として利用できる機能として Passkey と Authenticator app がサポートされました。それぞれ以下の特徴があります。

  • Passkey
    • 公開鍵/秘密鍵暗号方式を使用する認証方式
    • Passkey を設定すると、秘密鍵はユーザーのマシンやまたはパスワードマネージャーなど、個人の安全な場所に保管される
    • これにより、ハードウェアセキュリティキーやラップトップの指紋センサーなどを使用して認証することが可能となる
  • Authenticator App
    • ワンタイムパスワード(TOTP:Time-based One-Time Password)を使用する形式
    • 一般的な認証アプリとして Google Authenticator、Microsoft Authenticator、Authy など

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/security-mfa-second-factor

また、TOTP での設定について以下で紹介されていますので、合わせてご参照ください。

https://dev.classmethod.jp/articles/snowflake-snowsight-time-based-one-time-password/

May 23, 2025: Notebook における st.secrets のサポートが一般提供

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-23-st-secrets-support

Snowflake Notebook で st.secrets がサポートされました。

以下は公式ドキュメントからの引用ですが、シークレットオブジェクトと外部アクセス統合の両方をノートブックに関連付けることで、ノートブックのコードからシークレットにアクセスすることができ、機密情報を安全に保つためことができるようになります。

-- Step 1: Create a secret
CREATE SECRET openai_key
  TYPE = GENERIC_STRING
  SECRET_STRING = '<your-api-key>';

-- Step 2: Create a network rule
CREATE OR REPLACE NETWORK RULE openai_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.openai.com');

-- Step 3: Create an external access integration that uses the network rule and secret
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION openai_integration
  ALLOWED_NETWORK_RULES = (openai_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (openai_key)
  ENABLED = true;

-- Step 4: Associate the integration and secret with the notebook
ALTER NOTEBOOK my_notebook
  SET EXTERNAL_ACCESS_INTEGRATIONS = (openai_integration),
    SECRETS = ('openai_key' = openai_key);

ノートブックからシークレットにアクセス

import streamlit as st
api_key = st.secrets['openai_key']

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/ui-snowsight/notebooks-external-access

May 19-20, 2025 — 9.13 Release Notes

https://docs.snowflake.com/en/release-notes/2025/9_13

パイプ演算子

https://docs.snowflake.com/en/release-notes/2025/9_13#pipe-operator

複数の SQL ステートメントを連結し、前のクエリ結果を次のクエリ参照できるパイプ演算子がサポートされました。
これにより、複雑な処理をステップごとにわかりやすく記述できるようになります。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/sql-reference/operators-flow

https://dev.classmethod.jp/articles/snowflake-sql-operators-flow-try/

Snowflake 管理の Iceberg テーブルでクロスクラウド/クロスリージョンのサポート

https://docs.snowflake.com/en/user-guide/tables-iceberg#label-tables-iceberg-cross-cloud-support

カタログとして Snowflake を使用する Snowflake 管理の Iceberg テーブルにおいて、Snowflake アカウントをホストしているクラウド プロバイダーとは異なるクラウド プロバイダー(異なるリージョン)の外部ボリューム ストレージを使用できるようになりました。
Snowflake アカウントと外部ボリュームが異なるリージョンにある場合、テーブルをクエリ時にクラウド ストレージ アカウント側で送信コストが発生します。

May 20, 2025 — Snowflake Copilot model level RBAC

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-20-model-level-rbac

Snowflake Copilot で、モデルレベルでのロールベースアクセス制御がサポートされました。
これにより、ユーザーロールに基づいて、Snowflake Copilot やその他の Cortex 機能で使用できる大規模言語モデル(LLM)を制御できます。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/snowflake-copilot#label-snowflake-copilot-limit-models

May 20, 2025 — Snowflake Openflow — パブリックプレビュー

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-20-openflow

Openflow がパブリックプレビューとなりました。
Openflow は Apache NiFi をベースとしたサービスで、サードパーティのツールに依存することなく、直接データパイプラインを設計および管理できる機能です。
現在はAWS商用リージョンで利用可能です。詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/data-integration/openflow/about

May 20, 2025 — Snowpark Container Services が Google Cloud 上のアカウントでパブリックプレビュー

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-20-spcs-preview-available-in-gcp

Snowpark Container Services が、Google Cloud の Snowflake アカウントで使用できるようになりました。

https://docs.snowflake.com/en/developer-guide/snowpark-container-services/overview

May 20, 2025 — Data Governance release notes

Contacts for objects がパブリックプレビュー

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-20-contacts

データベースやテーブルなどのサポートされるオブジェクトに連絡先を関連付ける機能がパブリックプレビューとなりました。
これにより、ユーザーはオブジェクトに関するサポートが必要な際に誰に連絡すればよいかを把握できるようになります。

本機能の主な特徴は以下の通りです。

  • 各連絡先はスキーマレベルのオブジェクト(CONTACT)として管理される
  • CONTACT オブジェクトには、問い合わせなどの宛先情報として Snowflake 上のユーザーやメールアドレス、URL を指定できる
  • オブジェクトには連絡先を割り当てる際はその目的(サポート、承認者 など)を設定する
  • オブジェクトには複数の連絡先を設定できる
  • 連絡先は継承される
    • 親オブジェクトに関連付けると、子オブジェクトが連絡先を継承する

例として以下のように設定できます。

-- CONTACTを作成
CREATE CONTACT <contact_name> USERS = (<ユーザー名>); --連絡可能な Snowflake ユーザー
-- CONTACTを表示
SHOW CONTACTS;
-- CONTACTをオブジェクトに割り当て
ALTER DATABASE <データベース> SET CONTACT <purpose> = <contact_name>;

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/contacts-using

https://docs.snowflake.com/en/sql-reference/sql/create-contact

May 19, 2025 — Cortex COMPLETE Structured Output schema references

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-19-complete-structured-output-json-refs

AI_COMPLETE 関数の出力を指定の JSON スキーマに従うようにする際、スキーマ内で繰り返し使用される共通のオブジェクトを一度定義することで、スキーマ内の他の場所から参照できるようになりました。

以下は公式ドキュメントの内容をもとに一部変更していますが、$defsキーで定義したオブジェクト定義をshipping_addressキーで参照しています。

SELECT
  AI_COMPLETE (
    model => 'mistral-large2', -- 使用するモデルを指定
    prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.', -- 抽出対象のテキスト
    response_format => {
      'type': 'json',
      'schema': {
        'type': 'object',
        '$defs': { -- 共通オブジェクトの定義
          'address': {
            'type': 'object',
            'properties': {
              'street': { 'type': 'string' },
              'city': { 'type': 'string' },
              'state': { 'type': 'string' },
              'zip': { 'type': 'string' },
              'country': { 'type': 'string' }
            },
            'required': [ 'street', 'city', 'state' ] -- 必須フィールド
          }
        },
        'properties': {
          'customer': { -- customer オブジェクトの定義
            'type': 'object',
            'properties': {
              'name': { 'type': 'string' },
              'membership': {
                'type': 'object',
                'properties': {
                  'type': { 'type': 'string' },
                  'since': { 'type': 'string' }
                }
              },
              'shipping_address': { '$ref': '#/$defs/address' } -- $defs で定義した address を参照
            },
            'required': [ 'name' ] -- name は必須
          }
        },
        'required': [ 'customer'] -- customer オブジェクト自体を必須とする
      }
    }
  );

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/snowflake-cortex/complete-structured-outputs

May 16, 2025 — Universal Search がパイプ、タスク、ストリームをサポート — 一般提供

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-16-universal-search-pipes-tasks-streams

Universal Search でサポートされるオブジェクトが追加されました。
サポートされるオブジェクトは以下に記載があります。

https://docs.snowflake.com/en/user-guide/ui-snowsight-universal-search#limitations-and-considerations-for-universal-search

May 16, 2025 — Cost Management release notes

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-16-cost

Cost anomalies — パブリックプレビュー

アカウント・組織レベルでコストの異常値を自動で検知・通知してくれる機能である Cost anomalies がプレビューとなりました。

日々のコストからアカウントや組織で想定される消費量を Snowflake 側で予測し、予測される範囲を超える場合に、異常として検出されます。Snowsight または SQL で異常を確認でき、GUI(Snowsight)の場合、毎日のコストの変遷を折れ線グラフで確認できます。
異常値となった日付については、その日の時間ごとのクレジット消費、クレジット消費の多いウェアハウス、クレジット消費の多いクエリを確認することができます。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/cost-anomalies

https://dev.classmethod.jp/articles/snowflake-cost-anomalies-pupr/

May 14, 2025 — Data Governance release notes

ユーザー定義タグの自動伝播 — 一般提供

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-14-tag-propagation

ソースオブジェクトに適用されたユーザー定義のタグをターゲットオブジェクトに自動的に割り当てる自動タグ伝播(Automatic tag propagation)が一般提供となりました。
あるテーブルカラムにタグを定義すると、このソースオブジェクトから作成されたビューや別のテーブルなどのターゲットオブジェクトにタグが自動的に伝播されます。
このためにはタグのPROPAGATEプロパティを指定します。

詳細は以下をご参照ください。

https://docs.snowflake.com/en/user-guide/object-tagging/work#label-object-tagging-auto-propagate

https://dev.classmethod.jp/articles/snowflake-tag-automatic-propagation-ga/

May 13, 2025: Support for Streamlit 1.44.0 (一般提供)

https://docs.snowflake.com/en/release-notes/streamlit-in-snowflake#may-13-2025-support-for-streamlit-1-44-0-general-availability

Streamlit in Snowflake で Streamlit バージョン 1.44.0 がサポートされました。
サポートされるバージョンは以下に一覧が記載されています。

https://docs.snowflake.com/en/developer-guide/streamlit/getting-started#supported-versions-of-the-streamlit-library

May 05-12, 2025 — 9.12 Release Notes (with behavior changes)

https://docs.snowflake.com/en/release-notes/2025/9_12

Built-in code profiler for Python stored procedures — 一般提供

https://docs.snowflake.com/en/release-notes/2025/9_12#built-in-code-profiler-for-python-stored-procedures-general-availability

Python によるストアドプロシージャ向けの組み込みコードプロファイラーが一般提供となりました。
ハンドラコードがどの程度の時間やメモリを消費しているかを把握する際に使用できます。以下の手順でストアドプロシージャを呼び出すことで、プロファイルを出力できます。

  • プロファイル出力の保存先ステージを指定
  • プロファイラーを有効化
    • SQL の場合、ACTIVE_PYTHON_PROFILER セッションパラメータをLINEまたはMEMORYに設定(デフォルトはLINE

ステージに出力されたプロファイルはGET_PYTHON_PROFILER_OUTPUTで取得できます。

以下は公式ドキュメントのラインプロファイルの出力例ですが、各行ごとの実行時間や全体の実行時間に対する割合などを確認できます。

ラインプロファイルの出力例
Handler Name: main
Python Runtime Version: 3.9
Modules Profiled: ['main_module']
Timer Unit: 0.001 s

Total Time: 8.96127 s
File: _udf_code.py
Function: main at line 4

Line #      Hits        Time  Per Hit   % Time  Line Contents
==============================================================
    4                                           def main(session, last_n, total):
    5                                               # create sample dataset to emulate id + elapsed time
    6         1        122.3    122.3      1.4      session.sql('''
    7                                                   CREATE OR REPLACE TABLE sample_query_history (query_id INT, elapsed_time FLOAT)''').collect()
    8         2       7248.4   3624.2     80.9      session.sql('''
    9                                               INSERT INTO sample_query_history
    10                                               SELECT
    11                                               seq8() AS query_id,
    12                                               uniform(0::float, 100::float, random()) as elapsed_time
    13         1          0.0      0.0      0.0      FROM table(generator(rowCount => {0}));'''.format(total)).collect()
    14
    15                                               # get the mean of the last n query elapsed time
    16         3         58.6     19.5      0.7      df = session.table('sample_query_history').select(
    17         1          0.0      0.0      0.0          funcs.col('query_id'),
    18         2          0.0      0.0      0.0          funcs.col('elapsed_time')).limit(last_n)
    19
    20         1       1528.4   1528.4     17.1      pandas_df = df.to_pandas()
    21         1          3.2      3.2      0.0      mean_time = pandas_df.loc[:, 'ELAPSED_TIME'].mean()
    22         1          0.3      0.3      0.0      del pandas_df
    23         1          0.0      0.0      0.0      return mean_time

詳細は以下をご参照ください。

https://docs.snowflake.com/en/developer-guide/stored-procedure/python/procedure-python-profiler

内部ステージのクローンがサポート — 一般提供

https://docs.snowflake.com/en/release-notes/2025/9_12#support-for-internal-stage-cloning-general-availability

INCLUDE INTERNAL STAGESオプションにより、データベースまたはスキーマのクローン作成時に、内部ステージのクローンを作成するか指定できるようになりました。

ディレクトリテーブルが有効化されている場合、内部ステージの現在の状態がクローンされます。
詳細は以下をご参照ください。

https://docs.snowflake.com/en/sql-reference/sql/create-clone#label-create-clone-internal-stages-notes

コンテナ内から呼び出し元権限を使用して Snowflake できるように — 一般提供

https://docs.snowflake.com/en/release-notes/2025/9_12#using-caller-s-rights-to-connect-to-snowflake-general-availability

Snowflake Snowpark Container Services でコンテナ内から呼び出し元権限を使用して Snowflake に接続できるようになりました。

デフォルトでは、サービスユーザーのコンテキストで Snowflake へ接続されますが、これにより、サービスを呼び出したユーザーのコンテキストでクエリを実行できるようになります。
詳細は以下をご参照ください。

https://docs.snowflake.com/en/developer-guide/snowpark-container-services/additional-considerations-services-jobs#label-spcs-additional-considerations-configuring-callers-rights

May 05, 2025 — Generation 2 standard warehouses — General availability

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-05-gen2-standard-warehouses

現在の標準仮想ウェアハウスのアップデート版である「Generation 2 Standard Warehouse (Gen2) 」が提供されました。
ウェアハウスの プロパティをRESOURCE_CONSTRAINT = STANDARD_GEN_2とすることで作成できます。主な特徴と注意点は以下の通りです。

  • Gen2 ウェアハウスは標準のウェアハウスのみ利用可能
  • 一部のクラウドリージョンで利用可能
  • 標準のウェアハウスと比較して、AWS の場合は1.35倍、Azure の場合は1.25倍のコスト

こちらについては、以下の記事でも解説されていますので、あわせてご参照ください。

https://dev.classmethod.jp/articles/snowflake-generation-2-standard-warehouses/

May 01, 2025 — Dynamic tables:増分更新時の current time やdate でのフィルタをサポート — 一般提供

https://docs.snowflake.com/en/release-notes/2025/other/2025-05-01-dynamic-tables-current-timestamp

Dynamic table の増分リフレッシュにおいて、CURRENT_TIMESTAMP, CURRENT_DATE および CURRENT_TIME 関数とそのエイリアスをフィルタとして使用できるようになりました。
以下のように動的テーブルの定義に時間粒度でのフィルタリングを使用できます。

CREATE or replace DYNAMIC TABLE recent_events_dt
  TARGET_LAG = '1 minutes'
  WAREHOUSE = <warehouse>
  REFRESH_MODE = INCREMENTAL --この設定が必須
AS
  SELECT
    event_id,
    event_timestamp,
    description
  FROM timed_events
  WHERE event_timestamp >= TIMESTAMPADD(minute, -3, CURRENT_TIMESTAMP());

これらの関数を使用するには、動的テーブルの更新モードを明示的にINCREMENTALに設定する必要があります。

Behavior Change Log

単一要素パスワードサインインの廃止に向けた計画

セキュリティ体制を強化するため、Snowflake でパスワードを使用するすべてのユーザーに対して多要素認証(MFA)が必須となります。
これらの変更は、複数の動作変更リリース(BCR)を通じて展開されます。この計画について、単一要素パスワード サインインの廃止のタイムラインと対応する BCR については、以下のページにまとめられています。

https://docs.snowflake.com/en/user-guide/security-mfa-rollout

直近だと本記事の執筆時点で2025年6月下旬に提供開始予定の2025_04バンドルにて、すべての Snowsight ユーザー(新規および既存)に対する MFA が必須となります。

この時点では、Snowsight を使用して MFA に登録した後でも、BI などのツールから Snowflake サービスへのアクセス時に、引き続き単一要素パスワードを使用できます。また、認証ポリシーによる一時的な回避も可能です。

2025_03 バンドルが提供開始 ※デフォルトは無効化

9.12 (2025/5/5 - 2025/5/12 リリース)で、2025_03 バンドルが提供開始となりました。先に挙動を確かめたい場合には手動でバンドルを有効化してテスト可能です。
このバンドルは、2025年6月のリリースでデフォルトで有効化される予定となっています。

https://docs.snowflake.com/en/release-notes/bcr-bundles/2025_03_bundle

2025_02 バンドルがデフォルトで有効化

9.12 (2025/5/5 - 2025/5/12 リリース)で、2025_02 バンドルがデフォルトで有効化されました。このバンドルは、2025年6月のリリースで一般的に有効化される予定となっています。

このバンドルは、2025年4月のリリースでデフォルトで有効化される予定となっています。

https://docs.snowflake.com/en/release-notes/bcr-bundles/2025_02_bundle

2025_01 バンドルがデフォルトで有効化

9.12 (2025/5/5 - 2025/5/12 リリース)で、2025_01 バンドルがデフォルトで一般的に有効化されました。

https://docs.snowflake.com/en/release-notes/bcr-bundles/2025_01_bundle

おまけ:Modern Data Stack全般の最新情報

Snowflakeも含め、Modern Data Stack 全般の最新情報についても、定期的にブログにまとめて投稿されています!こちらもぜひご覧ください。

https://dev.classmethod.jp/articles/modern-data-stack-info-summary-20250528/

https://dev.classmethod.jp/articles/modern-data-stack-info-summary-20250514/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.