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

2023.08.01

さがらです。

2023年7月にリリースされたSnowflakeの新機能と変更点についてのまとめ記事となります。

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

What's New

Snowpipe Streamingが一般提供

Snowpipe Streamingが一般提供となりました!

従来のSnowpipe + Kafka Connectorの組み合わせと比較したときに、Snowpipe Streaming + Kafka Connectorならばデータを内部ステージにステージングすることなく、直接Snowflakeのテーブルにロードできます。

公式ドキュメントもぜひ併せてご覧ください。

Snowpipe Streamingを使用したKafka Connectorにおいて、Schema DetectionとSchema Evolutionに対応 ※パブリックプレビュー

ロードされるデータの中身からスキーマ構成を自動で読み取ってくれる「Schema Detection」と、ロード処理が行われた際に対象テーブルのスキーマ定義と異なる場合には自動で列の追加を行ってくれる「Schema Evolution」が、Snowpipe Streamingを使用したKafka Connectorにおいて使えるようになりました。※パブリックプレビュー

※この機能を有効化するには、バンドル「2023_05」を有効にする必要があるためご注意ください。

ORGANIZATION_USAGEにQUERY_ACCELERATION_HISTORYビューが追加

Organization全体でQuery Acceleration Serviceによって高速化されたクエリを確認できるQUERY_ACCELERATION_HISTORYが使用できるようになりました。

Query Acceleration Serviceは私も一度試しているため、ぜひこちらも見て頂けると嬉しいです。

Snowflakeサポートに連絡せずともクエリでORGADMINロールを有効化できるように ※パブリックプレビュー

ALTER ACCOUNT … SET IS_ORG_ADMINの構文でクエリを実行することで、Snowflakeサポートに連絡せずともユーザー側でORGADMINロールを有効化できるようになりました。

デフォルトでは、ORGADMINロールは最大8つのアカウントで有効化できるようです。

Organization内のアカウントをユーザー側で削除できるように ※パブリックプレビュー

ORGADMINロールにより、Organization内のアカウントをユーザー側で削除できるようになりました。

具体的には、DROP ACCOUNTというコマンドを使用するようで、下記のようにGRACE_PERIOD_IN_DAYSというオプションを使うと、指定した期間の間ならばUNDROPコマンドでアカウントの復元もできるようです。

DROP ACCOUNT my_account GRACE_PERIOD_IN_DAYS = 14;

Search Optimization Serviceが半構造化データの部分文字列検索をサポート ※パブリックプレビュー

Search Optimization Serviceが半構造化データの部分文字列検索をサポートするようになりました。 ※パブリックプレビュー

具体的には、下記のようなコマンドを実行すれば有効化できます。

ALTER TABLE mytable ADD SEARCH OPTIMIZATION ON SUBSTRING(semi_structured_column);

GROUP BY句でALLを指定可能に

Snowflakeでクエリを書く際、GROUP BY句でALLを指定可能になりました!

これまでのクエリの書き方だと、GROUP BY句では具体的にカラム名かSELECT句での順番を数値で入れる必要がありましたが、Snowflakeならばその必要がなくなります!

具体的には、下記のようにGROUP BY句の中に複数のカラム名を記述する必要がなくなります。

  • これまでのクエリ
SELECT state, city, SUM(retail_price * quantity) AS gross_revenue
  FROM sales
  GROUP BY state, city;
  • GROUP BY ALLを使用した場合
SELECT state, city, SUM(retail_price * quantity) AS gross_revenue
  FROM sales
  GROUP BY ALL;

また、一部のカラムを集約に使いたくない場合は、SELECT * EXCLUDEを使うことで除外することもできます。詳細は下記の記事をご覧ください。

Behavior Change Log

Behavior Change Logの今後の情報提供場所について

Behavior Change Logについては、2023年7月26日以降、下記のドキュメントで公開されていくとのことです。

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

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