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

2023.12.04

2023年11月にリリースされたSnowflakeの新機能・変更点の個人的な注目情報をまとめた記事となります。

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

7.42 Release Notes — November 29-30, 2023

スキーマ検出機能が CSV と JSON に対応 ※一般提供

ステージに配置された CSV と JSON ファイルからスキーマ情報を自動的に検出する機能が一般提供となりました。元々、Parquet、Avro、ORC、といったフォーマットにおいてスキーマ検出機能を提供していたので、ほとんどのサポートされるファイル形式でスキーマ検出が利用可能となります。

サポートされているファイル形式 | Snowflake DOCUMENTATION

スキーマ検出により検出したデータ構造からテーブルを生成することも可能です。CSV と JSON はよく用いられるファイル形式かと思いますので、ぜひご活用ください!
また、関連記事としては以下になりますので、あわせてご覧ください。

Table schema evolution が一般提供

COPY コマンドや Snowpipe によるデータロード時に、対象テーブルと異なるデータ構造を持つデータファイルであっても、ロード時に自動で列の追加を行ってくれる「Table Schema Evolution」が一般提供されました。

以下の記事では、CSV を対象にスキーマ検出によるテーブル作成、Table schema evolution による既存テーブルへの列追加までサンプルクエリとあわせて詳しく紹介されています。

Iceberg tables が使用できるように ※パブリックプレビュー

これにより、ユーザー管理の S3 などのストレージに保管されている Iceberg ファイルに Snowflake からアクセスできるようになります。

Snowflake サポートに連絡せずともクエリで ORGADMIN ロールを有効化できるように ※一般提供

ALTER ACCOUNT...SET IS_ORG_ADMINコマンドで、Snowflake サポートに連絡せずともユーザー側でORGADMINロールを有効化できる機能が一般提供となりました。
デフォルトでは、ORGADMIN ロールは最大8つのアカウントで有効化できます。

Snowflake サポートに連絡せずともアカウントをドロップできるように ※一般提供

GUI または SQL を使用してアカウントをドロップできる機能が一般提供となりました。検証用に一時的に用意した環境などをユーザー側で削除できます。削除時には、最大90日間までアカウントを復元できる日数も指定可能です。

行アクセスポリシーで保護されたマッピングテーブルを、別の行アクセスポリシーの定義で参照できるように ※一般提供

行アクセスポリシーで保護されたマッピングテーブルを、別の行アクセスポリシーで参照できる機能が一般提供となりました。
これにより、行アクセスポリシーがマッピングテーブルを参照する際も別の行アクセスポリシーが適用されるため、マッピングテーブルもクエリ実行者に関係のあるレコードしか表示されなくなり、より確実に出力するレコードを絞り込むことが可能です。

7.41 Release Notes (with behavior changes) — November 11-14, 2023

UDFs と ストアドプロシージャ でオプションの引数をサポート

UDF またはストアドプロシージャで、デフォルト値を引数に設定することで、その引数を実行時に省略可能となりました。
以下のようにオプションとしたい引数に対してDEFAULT キーワードを指定することで、呼び出し時にオプションの引数を省略することができます。

CREATE FUNCTION my_udf(
  arg_1 VARCHAR,
  arg_2_optional VARCHAR DEFAULT 'default'
  arg_3_optional INTEGER DEFAULT 0) ...

※上記はリリースページより引用

Snowflake Alerts の手動実行をサポート

定期実行など指定のタイミングでクエリを実行し一致するレコードがある場合に、通知、特定のクエリやストアドプロシージャの実行が行える Snowflake Alerts を手動実行できるEXECUTE ALERT コマンドがサポートされました。
これにより、作成したアラートのテスト実行や、ストアドプロシージャに組み込むことで任意のタイミングでの実行も可能です。

GRANT ON ALL/FUTURE DYNAMIC TABLE がサポート ※パブリックプレビュー

DYNAMIC TABLE に対するGRANT <privilege> ON ALL/FUTURE DYNAMIC TABLEによる権限付与がサポートされました。

GRANT ALL/ALL PRIVILEGES ON DYNAMIC TABLE がサポート ※パブリックプレビュー

あわせてDYNAMIC TABLE に対するGRANT ALL/ALL PRIVILEGES ON DYNAMIC TABLEによる権限付与がサポートされました。

Snowsight でクエリ結果に自動フォーマットが適用されなくなりました

数値データ型とタイムスタンプデータ型のデータについて、Snowsightでクエリ結果に自動フォーマットが適用されなくなりました。この変更は 2023_07 バンドルに含まれ、現在「デフォルトで有効」になっています。

7.40 Release Notes — November 09-10, 2023

検索最適化サービスにおける VARIANT 型の部分文字列検索が一般提供

列または列内の複数のフィールドに対して部分文字列検索の最適化を有効にする機能が一般提供となりました。これにより、特定の種類の検索・分析クエリのパフォーマンス向上が期待できます。

Behavior Change Log

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

7.41(2023/11/11~2023/11/14 リリース)で 2023_08 バンドルが提供開始となりました。先に挙動を確かめたい場合には手動でバンドルを有効化してテスト可能です。
2023_08 バンドルは、2024年2月のリリースでデフォルトで有効化される予定となっています。

2023_07 バンドルがデフォルトで有効化

7.41(2023/11/11~2023/11/14 リリース)で 2023_07 バンドルがデフォルトで有効化されました。

2023_06 バンドルが一般的に有効化

7.41(2023/11/11~2023/11/14 リリース)で 2023_06 バンドルが一般的に有効化されました。

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

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