DevelopersIO 2022 進化するSnowflakeデータクラウド~Snowpark for Python最新アップデート~ #devio2022

2022.08.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

さがらです。

DevelopersIO 2022において、Snowflake社よりビデオセッションとして発表をして頂きました。

本ブログでは、こちらのビデオセッションのアウトラインをまとめます。(詳細はぜひ動画をご覧ください!)

セッション概要

概要

Snowflakeの年次イベント「Snowflake Summit 2022」が、2022年6月米国ラスベガスにて開催されました。多くの新機能発表が行われましたが、中でもSnowflakeデータクラウドのPythonサポート強化は大変注目を集めています。本セッションではSnowpark for Pythonの仕組みや今後期待される関連の新機能などについて、最新アップデートをご紹介します。

動画

目次

  • 00:00 オープニング
  • 00:27 スピーカー紹介
  • 00:46 はじめに
  • 01:12 Snowflakeプラットフォーム
  • 04:32 Snowpark概要
  • 13:31 関連機能の最新アップデート
  • 19:48 エンディング

登壇者

  • 野田孝一氏
    • Snowflake パートナーセールスエンジニアリング本部 シニアパートナーセールスエンジニア

Snowflakeプラットフォーム

Snowflake Summitで公表された機能を反映して、Snowflakeプラットフォームは現在下図のような構成となっています。

元々のデータエンジニアリングだけでなく、CYBER SECURITY領域への対応、UNISTOREによるOLTPへのアプローチ、といったところが主な変更点として挙げられます。

Snowpark概要

まず、SnowparkとはSnowflakeが提供する開発者向けのフレームワークです。

Snowflakeは元々SQLのみで操作が出来るプラットフォームでしたが、Snowparkを使用することで、Java、Scalaといった言語でSnowflake上のデータを操作することが可能です。データを外に出すことなく、Snowflake内で操作を完結できることも魅力の1つです。

今回「Snowpark for Python」ということで、その名の通りPythonを用いてSnowflake上のデータを操作することが出来るようになりました。

このSnowpark for Pythonは2022年6月よりパブリックプレビューとなりました。そのため、どのSnowflakeユーザーもこの機能をすぐに試すことが出来ます。この機能を使用するにあたって特別な費用もかからないため、通常のワークロードと同じくウェアハウスの稼働時間に応じて費用が発生する価格体系となっています。

また、Pythonのディストリビューションである「Anaconda」とSnowflakeがパートナーシップを結んでいるため、Snowflake内に必要なパッケージやライブラリがすでにインストール済となっています。

Snowpark for Pythonの利用にはクライアントAPIのダウンロードが必要となります。(詳細はこちらのDocをご覧ください。)

従来のPythonコネクタとの違いとしては、PythonコネクタはSQLを記述して埋め込んだPythonスクリプトを実行してデータを取得する仕組みでしたが、Snowpark for Pythonでは、データフレームを介してSnowflakeへクエリを発行できるようになっています。

さらに、Snowpark for Pythonはただデータフレームを介してクエリを発行するだけでなく、サーバーサイドの機能も備わっています。

Pythonで記述したコードをUDFとして、記述したロジックを呼び出すといったことも可能となっています。

また、今回のSnowflake for Pythonのパブリックプレビューに合わせ、OSSとして公開もされています。

また、Snowpark for PythonのQuickstartも公開されていますので、興味の有る方はこちらから試して頂ければと思います。

関連機能の最新アップデート

ここからは2022年6月のSnowflake Summitで発表された機能を中心に、Snowpark for Pythonに関連する最新アップデートについて触れていきます。

Snowflake ワークシート For Python

SnowsightのUI上でPythonのコードを直接記述することが出来る機能です。(私もこの動画を見て知ったのですが、Java、Scalaも記述可能になるらしいです。)

また余談にはなりますが、こういった新機能はSnowsightにのみ実装されていくとのことなので、Snowsightに慣れていかないといけないですね!

非構造化データ + Snowpark for Python

非構造化データの対応はすでに一般公開されているのですが、Snowparkに対して直接非構造化データのファイルパスを渡して、処理することが出来るようになる予定です。

現在はJavaがパブリックプレビュー、Pythonは今後近いうちにプライベートプレビューされる、という状況です。

Snowparkで画像やPDFを処理して、処理した結果をSnowflake内にロードするといった事も出来ますので、Snowflakeの活用の幅が広がる機能だと思います。

ラージメモリインスタンス

まだ開発中のステータスで多くの情報はないのですが、ラージメモリインスタンスという新しいタイプのインスタンスを提供予定です。

Pythonと言うと機械学習系の処理を思い浮かべる方も多いと思いますが、機械学習のモデルトレーニングや特徴量エンジニアリングには、多くのRAMを必要としたり、GPUがないと処理ができないあるいは低速になってしまう処理もあります。

そういった用途をカバーする狙いで、ラージメモリインスタンスという形で多くのRAMやGPUを積んだインスタンスを提供予定となっています。

Streamlit オープンソースライブラリ

Streamlitは、Streamlit社が開発したPythonベースのWebアプリケーションのフレームワークです。実態はOSSのライブラリです。

2022年3月にSnowflake社がStreamlit社を買収し、Snowflake Summitで新たな情報が公開されました。

Streamlitのライブラリを使用することで、Pythonスクリプトを書くような形でアプリケーションを簡単に構築することが出来ます。

また、動画中で紹介がありましたStreamlitのコミュニティについてもURLを記載しておきますので、ぜひご覧頂ければと思います。

Streamlitとのネイティブ統合

前述のStreamlitはOSSとして公開されているものですので今現在も使用できますが、Snowflake Summitにおいて、StreamlitがSnowflakeにネイティブ統合されていくというアナウンスもありました。

このネイティブ統合が実現すると、Snowflakeのプラットフォーム上にStreamlitで開発したアプリケーションをデプロイして、アプリケーションを動かすだけでなく、シェアリングやマーケットプレイスを介した共有も出来るようになる予定です。

最後に

Snowflake for Pythonに関するビデオセッションのアウトラインをまとめました。

Pythonはデータ分析界隈でも広く使用されている言語ですので、Snowflake for PythonがパブリックプレビューになったことでSnowflakeを触ったことのないデータサイエンティストやデータエンジニアにもSnowflakeに触れていただく良いきっかけになればと感じています。

また、StreamlitとSnowflakeのネイティブ統合が実現すれば、Snowflake上でアプリケーションを開発して、デプロイして、社外に向けてリリースする、という一連のプロセスをSnowflakeのみで完結することが出来ます。

SnowflakeとPythonの連携は今後がとても楽しみな分野ですので、今後の製品アップデートに期待したいですね!

DATA CLOUD WORLD TOUR TOKYO開催決定!

ビデオセッション中でもアナウンスがありましたが、2022年8月30日(火)にDATA CLOUD WORLD TOUR TOKYOというイベントが開催されます!

Snowflake社のCEOであるFrank氏も来日しての基調講演含め、日本でSnowflakeを導入している企業の方々の事例セッションはもちろん、Snowflake Summit後の最新情報も併せて発表される予定と伺っています。

ぜひ都合がつく方は参加頂けると嬉しいです!