2025年4月にリリースされたSnowflakeの新機能・変更点のまとめ #SnowflakeDB
2025年4月にリリースされたSnowflakeの新機能・変更点のまとめ記事になります。
※注意事項:本記事ではすべての情報についての記述はせず、特筆すべきだと感じた情報だけピックしております。基本的には以下の情報を参考にしておりますので、全ての最新情報を確認したい場合は下記のURLからご確認ください。
April 30, 2025 — Programmatic access tokens
ユーザーの TYPE プロパティが SERVICE のユーザーに対しても生成できるアクセストークン機能である Programmatic access tokens がリリースされました。
PERSON ユーザーへの MFA 強制により、ジョブの定期実行など、サードパーティーツールからの接続時には将来的に SERVICE ユーザーによるキーペアや OAuth を使用する必要がありましたが、PAT はパスワードの代わりとして使用できるため追加の構成を簡略化できます。
デフォルトの設定では、対象のユーザーに対するネットワークポリシーの有効化・PAT を許可する認証ポリシーが設定されている必要があります。
これに伴い認証ポリシーにも PAT 関連のパラメータが追加されています。
対応するエンドポイントやクライアントなど詳細は以下をご参照ください。
具体的な設定から接続までの手順は以下の記事でもまとめられていますので、こちらもあわせてご参照ください。
April 28-May 02, 2025 — 9.11 Release Notes
関数やプロシージャからすべてのアウトバウンド エンドポイントへのリクエストがサポート — 一般提供
UDF やストアドプロシージャで外部の API にアクセスする際に、ネットワークルールの VALUE_LIST パラメータで0.0.0.0
と指定することで、すべての送信エンドポイントへのリクエストを許可するように構成できるようになりました。
有効なポート範囲は 1~65535 です。ポートを指定しない場合は、デフォルトで 443 が使用されます。
詳細は以下をご参照ください。
Python 3.8 の廃止
Snowflake における Python 3.8 のサポートが終了しました。
ランタイムの廃止および廃止スケジュールの詳細については、以下をご参照ください。
April 22, 2025 — Trust Center におけるメール通知がパブリックプレビュー
Trust Center で違反に関するメール通知を送信するように構成できるようになりました。
主な特徴は以下の通りです。
- 通知の送信先は以下より指定できる
- 管理者ユーザー(ACCOUNTADMIN またはセキュリティ通知を送信するよう構成されたユーザー)
- カスタム
- 通知の送信トリガーとなる重大度レベルを設定できる
- スキャナーパッケージレベルでの設定の他、個々のスキャナーレベルで構成を変更できる
スキャナーパッケージレベルでの設定
スキャナーレベルでの設定(デフォルトは下図赤枠のようにスキャナーパッケージレベルの設定を継承)
詳細は以下をご参照ください。
April 14-22, 2025 — 9.10 Release Notes
内部ステージの自動更新がパブリックプレビュー
名前付き内部ステージ上のディレクトリテーブルのメタデータを自動更新する機能がパブリックプレビューとなりました。現在、この機能は AWS 上の Snowflake アカウントでのみ有効です。
あわせて DIRECTORY パラメータに AUTO_REFRESH パラメータが追加されています。
CREATE STAGE my_int_stage
DIRECTORY = (
ENABLE = TRUE
AUTO_REFRESH = TRUE
);
例として以下では SnowSQL から自動更新有無を分けて内部ステージにファイルを PUT し挙動を確認してみています。
--ステージを作成
CREATE OR REPLACE stage docs ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') DIRECTORY = ( ENABLE = true);
--何もないので空
ls @docs;
SELECT * FROM DIRECTORY('@docs');
--ストリームを定義
create or replace stream insert_docs_stream on stage docs;
select * from insert_docs_stream; --空
--ファイルを追加
PUT file://C:/temp/data/Premium_Bicycle_User_Guide.pdf @docs;
>ls @docs;
+----------------------------------------+-------+----------------------------------+------------------------------+
| name | size | md5 | last_modified |
|----------------------------------------+-------+----------------------------------+------------------------------|
| docs/Premium_Bicycle_User_Guide.pdf.gz | 48326 | 9f6343f7a70beca0decdd3e521ad2760 | Sat, 3 May 2025 09:42:08 GMT |
+----------------------------------------+-------+----------------------------------+------------------------------+
--メタデータが更新されていないので空
>SELECT * FROM DIRECTORY('@docs');
+---------------+------+---------------+-----+------+----------+
| RELATIVE_PATH | SIZE | LAST_MODIFIED | MD5 | ETAG | FILE_URL |
|---------------+------+---------------+-----+------+----------|
+---------------+------+---------------+-----+------+----------+
>SELECT * FROM insert_docs_stream;
+---------------+------+---------------+-----+------+----------+-----------------+-------------------+-----------------+
| RELATIVE_PATH | SIZE | LAST_MODIFIED | MD5 | ETAG | FILE_URL | METADATA$ACTION | METADATA$ISUPDATE | METADATA$ROW_ID |
|---------------+------+---------------+-----+------+----------+-----------------+-------------------+-----------------|
+---------------+------+---------------+-----+------+----------+-----------------+-------------------+-----------------+
--メタデータを更新
>ALTER STAGE docs REFRESH;
+-------------------------------------------------------------------------------+----------------+-------------------------------+
| file | status | description |
|-------------------------------------------------------------------------------+----------------+-------------------------------|
| stages/d0345094-6423-4f7a-bd29-38d18a699ec5/Premium_Bicycle_User_Guide.pdf.gz | REGISTERED_NEW | File registered successfully. |
+-------------------------------------------------------------------------------+----------------+-------------------------------+
--追加したファイルを確認できる
>SELECT * FROM DIRECTORY('@docs');
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
| RELATIVE_PATH | SIZE | LAST_MODIFIED | MD5 | ETAG | FILE_URL |
|-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
| Premium_Bicycle_User_Guide.pdf.gz | 48326 | 2025-05-03 02:42:08.000 -0700 | 9f6343f7a70beca0decdd3e521ad2760 | 9f6343f7a70beca0decdd3e521ad2760 | https://xxxxx.ap-northeast-1.aws.snowflakecomputing.com/api/files/SAMPLEDB/PUBLIC/DOCS/Premium_Bicycle_User_Guide%2epdf%2egz |
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
--ストリームにも追加される
>SELECT * FROM insert_docs_stream;
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------------+-----------------+
| RELATIVE_PATH | SIZE | LAST_MODIFIED | MD5 | ETAG | FILE_URL | METADATA$ACTION | METADATA$ISUPDATE | METADATA$ROW_ID |
|-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------------+-----------------|
| Premium_Bicycle_User_Guide.pdf.gz | 48326 | 2025-05-03 02:42:08.000 -0700 | 9f6343f7a70beca0decdd3e521ad2760 | 9f6343f7a70beca0decdd3e521ad2760 | https://xxxxx.ap-northeast-1.aws.snowflakecomputing.com/api/files/SAMPLEDB/PUBLIC/DOCS/Premium_Bicycle_User_Guide%2epdf%2egz | INSERT | False | |
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------------+-----------------+
--自動更新のパラメータを有効化して内部ステージを作成
CREATE OR REPLACE stage docs ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') DIRECTORY = ( ENABLE = true AUTO_REFRESH = TRUE);
ls @docs;
--空
SELECT * FROM DIRECTORY('@docs');
CREATE OR REPLACE stream insert_docs_stream on stage docs;
select * from insert_docs_stream;
--ファイルを追加
PUT file://C:/temp/data/Premium_Bicycle_User_Guide.pdf @docs;
--しばらくしてクエリ
>SELECT * FROM DIRECTORY('@docs');
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
| RELATIVE_PATH | SIZE | LAST_MODIFIED | MD5 | ETAG | FILE_URL |
|-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
| Premium_Bicycle_User_Guide.pdf.gz | 48326 | 2025-05-03 02:50:17.000 -0700 | 9f6343f7a70beca0decdd3e521ad2760 | 9f6343f7a70beca0decdd3e521ad2760 | https://xxxxx.ap-northeast-1.aws.snowflakecomputing.com/api/files/SAMPLEDB/PUBLIC/DOCS/Premium_Bicycle_User_Guide%2epdf%2egz |
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
--ストリームも追加されている
>SELECT * FROM insert_docs_stream;
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------------+-----------------+
| RELATIVE_PATH | SIZE | LAST_MODIFIED | MD5 | ETAG | FILE_URL | METADATA$ACTION | METADATA$ISUPDATE | METADATA$ROW_ID |
|-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------------+-----------------|
| Premium_Bicycle_User_Guide.pdf.gz | 48326 | 2025-05-03 02:50:17.000 -0700 | 9f6343f7a70beca0decdd3e521ad2760 | 9f6343f7a70beca0decdd3e521ad2760 | https://xxxxx.ap-northeast-1.aws.snowflakecomputing.com/api/files/SAMPLEDB/PUBLIC/DOCS/Premium_Bicycle_User_Guide%2epdf%2egz | INSERT | False | |
+-----------------------------------+-------+-------------------------------+----------------------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+-----------------+-------------------+-----------------+
詳細は以下をご参照ください。
内部ステージを使用するパイプの自動データロードがパブリックプレビュー
名前付き内部ステージを使用するパイプの自動データロードがパブリックプレビューとなりました。こちらも現時点では AWS 上の Snowflake アカウントでのみ有効です。
これまで Snowpipeは、内部ステージからの自動ロードをサポートしておらず API を呼び出す必要がありました。
今回のアップデートで、外部ステージ使用時のようにファイルの追加時の自動ロードを内部ステージでも構成できるようになりました。
詳細は以下をご参照ください。
PIPE_USAGE_HISTORY に自動更新した Iceberg テーブルが表示されるように
外部カタログを使用する Iceberg テーブルで自動更新を有効化した際に、PIPE_USAGE_HISTORYビューの PIPE_NAME に対象の Iceberg テーブル名が表示されるようになりました。(これまでは NULL で集約)
詳細は以下をご参照ください。
Synthetic data generation — 一般提供
入力テーブルのサンプル データに基づいて、出力テーブルに合成データを生成できる GENERATE_SYNTHETIC_DATA システム関数が一般提供となりました。
これにより元のデータ セットに統計的に近い合成データを生成できるようになります。
詳細は以下をご参照ください。
April 17, 2025 — Semantic views がパブリックプレビュー
Cortex Analyst で使用する セマンティックモデルをデータベーススキーマ内の Snowflake オブジェクトとして保存できるようになりました。
このオブジェクトはセマンティックビューと呼ばれ、セマンティックモデルに対応するスキーマレベルのオブジェクトとして定義できます。セマンティックビューの管理には CREATE SEMANTIC VIEW を使用できます。
詳細は以下をご参照ください。
April 16, 2025 — Snowflake ML Jobs がパブリックプレビュー
ローカルで作成した処理を Snowflake 環境で実行できる Snowflake ML Jobs がパブリックプレビューとなりました。
Snowflake ML Jobs は Snowpark Container Services 上で実行されるため、Python 関数を Snowflake のリソースでスケーラブルかつセキュアに実行することが可能です。
詳細は以下をご参照ください。
また、本機能については具体的な例と合わせて以下の記事で詳しく紹介されています。
April 15, 2025 — Snowflake Cortex AI Entity Sentiment 関数がパブリックプレビュー
感情分析に使用できる生成AI機能である Cortex AI Entity Sentiment がパブリックプレビューとなりました。
すでに提供済みの SENTIMENT 関数はテキストから -1.0~1.0 の範囲の数値による全体的な感情スコアを返します。プレビューとなった ENTITY_SENTIMENT 関数は、テキスト内の個々のエンティティ(製品やサービスの側面など)の感情スコアを返します。
現時点では、国内であれば AWS Tokyo の Snowflake アカウントで利用できます。
詳細は以下をご参照ください。
April 14, 2025 — Snowflake Cortex AI COMPLETE 関数のマルチモーダル サポートがパブリックプレビュー
COMPLETE 関数で画像を処理できる Cortex COMPLETE Multimodal がプレビューとなりました。
ステージに配置した画像ファイルに対する比較や分類、内容に関する質問に答えることができます。
あわせて本機能に最適な Pixtral Large モデルの提供も開始されています。使用可能なクラウドリージョンなど詳細は以下をご参照ください。
April 14, 2025 — FILE データ型がパブリックプレビュー
Snowflake で非構造化データを処理する際に使用できる FILE データ型がプレビューになりました。
FILE データ型はステージ上のファイルを表しメタデータなどのファイルへの参照が保持されます。ステージ上のファイルに対して TO_FILE または TRY_TO_FILE 関数を使用することで、ファイル型として作成できテーブルカラムとして保持できます。
--ファイルデータ型のカラムからなるテーブルを作成
CREATE TABLE file_table(img FILE);
--TO_FILEでステージ上のファイルをファイル型に変換しテーブルに追加
INSERT INTO file_table SELECT TO_FILE(FILE_URL) FROM DIRECTORY('@docs');
--テーブルをクエリ:メタデータを参照できる
>SELECT * FROM file_table;
+---------------------------------------------------------+
| IMG |
|---------------------------------------------------------|
| { |
| "CONTENT_TYPE": "application/gzip", |
| "ETAG": "9f6343f7a70beca0decdd3e521ad2760", |
| "LAST_MODIFIED": "Sat, 03 May 2025 09:50:17 GMT", |
| "RELATIVE_PATH": "Premium_Bicycle_User_Guide.pdf.gz", |
| "SIZE": 48326, |
| "STAGE": "@SAMPLEDB.PUBLIC.DOCS" |
| } |
+---------------------------------------------------------+
COMPLETE 関数のマルチモーダル処理時には FILE 型のファイルオブジェクトを指定する必要があります。
詳細は以下をご参照ください。
April 14, 2025 — PROMPT ヘルパー関数がパブリックプレビュー
COMPLETE などの LLM 関数のテンプレート文字列の作成時に使用できる新しいヘルパー関数として PROMPT 関数がプレビューとなりました。
詳細は以下をご参照ください。
April 14, 2024 — Support for Streamlit 1.42.0 — 一般提供
Streamlit in Snowflake で Streamlit の Version 1.42.0 がサポートされました。
サポートされているバージョンは以下に記載があります。
April 11, 2025 — Snowsight 上でレプリケーションの設定とモニタリングができる機能が一般提供
Snowsight でレプリケーションの設定と監視ができる機能が一般提供となりました。
Snowsight(GUI)でレプリケーションやフェールオーバーグループの作成などが行えます。
実行可能な操作などこちらをご参照ください。
April 07-09, 2025 — 9.9 Release Notes
DEFAULT_NULL_ORDERING パラメータが追加
新しいパラメータとして NULL 値のデフォルトの順序を制御できる DEFAULT_NULL_ORDERING が使用できるようになりました。パラメータはアカウント、ユーザー、セッションレベルで設定できます。デフォルト値はLAST
となっています。
- FIRST:昇順(ASC)の場合はNULLが先頭、降順(DESC)の場合はNULLが末尾に並びます
- LAST:昇順(ASC)の場合はNULLが末尾、降順(DESC)の場合はNULLが先頭に並びます
--設定値を確認
>SHOW PARAMETERS LIKE 'DEFAULT_NULL_ORDERING' IN SESSION;
+-----------------------+-------+---------+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+
| key | value | default | level | description | type |
|-----------------------+-------+---------+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------|
| DEFAULT_NULL_ORDERING | LAST | LAST | | User-visible parameter that allows customizing null ordering:- FIRST: nulls are ordered first in ASC order and last in DESC order- LAST: nulls are ordered last in ASC order and first in ASC order | STRING |
+-----------------------+-------+---------+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+
--並べ替え:ASC時のデフォルト動作は末尾に並ぶ
>SELECT * FROM test_order_nulls ORDER BY value ASC;
+----+-------+
| ID | VALUE |
|----+-------|
| 3 | 50 |
| 1 | 100 |
| 5 | 200 |
| 2 | NULL |
| 4 | NULL |
+----+-------+
--セッションレベルで設定値をFIRSTに変更
>ALTER SESSION SET DEFAULT_NULL_ORDERING = 'FIRST';
+----------------------------------+
| status |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
>SELECT * FROM test_order_nulls ORDER BY value ASC;
+----+-------+
| ID | VALUE |
|----+-------|
| 2 | NULL |
| 4 | NULL |
| 3 | 50 |
| 1 | 100 |
| 5 | 200 |
+----+-------+
詳細は以下をご参照ください。
Artifact Repository がパブリックプレビュー
これまで Snowpark Python では Anaconda パッケージが利用できるようになっていました。また、ステージ経由でカスタムパッケージを使用することもできました。
今回のアップデートでプレビューとなったアーティファクトリポジトリを使用することで Python Package Index(PyPI)に接続し、必要な Python パッケージを Snowpark Python の UDF やストアドプロシージャに直接統合できるようになりました。
詳細は以下をご参照ください。
また以下の記事はサンプルとあわせて本機能がわかりやすく紹介されています。
Behavior Change Log
単一要素パスワードサインインの廃止に向けた計画
セキュリティ体制を強化するため、Snowflake でパスワードを使用するすべてのユーザーに対して多要素認証(MFA)が必須となります。これらの変更は、複数の動作変更リリース(BCR)を通じて展開されます。この計画について、単一要素パスワード サインインの廃止のタイムラインと対応する BCR についてまとめられたページがドキュメントに公開されていました。
直近ですと 2025_04バンドル(2025年5月 - 2025年7月)にて、すべての Snowsight ユーザー(新規および既存)に対する MFA が必須となります。
この時点では、Snowsight を使用して MFA に登録した後でも、BI などのツールから Snowflake サービスへのアクセス時に、引き続き単一要素パスワードを使用できます。また、認証ポリシーによる一時的な回避も可能です。
2025_02 バンドルが提供開始 ※デフォルトは無効化
9.7 (2025/3/17 - 2025/3/27 リリース)で、2025_02 バンドルが提供開始となりました。先に挙動を確かめたい場合には手動でバンドルを有効化してテスト可能です。
このバンドルは、2025年4月のリリースでデフォルトで有効化される予定となっています。
2025_01 バンドルがデフォルトで有効化
9.7 (2025/3/17 - 2025/3/27 リリース)で、2025_01 バンドルがデフォルトで有効化されました。このバンドルは、2025年4月のリリースで一般的に有効化される予定となっています。
おまけ:Modern Data Stack全般の最新情報
Snowflakeも含め、Modern Data Stack 全般の最新情報についても、定期的にブログにまとめて投稿されています!こちらもぜひご覧ください。