Snowpark は、フルマネージドコンテナ、ネイティブ ML API、新しい Python バージョン、外部アクセス、強化された DevOps などを含む拡張機能を提供
注:本記事は(2023年6月28日)に公開された(Snowpark Offers Expanded Capabilities Including Fully Managed Containers, Native ML APIs, New Python Versions, External Access, Enhanced DevOps and More)を翻訳して公開したものです。この記事の翻訳には機械翻訳を使用しています。
2年前の立ち上げ以来、Snowparkはデータサイエンティスト、データエンジニア、アプリケーション開発者がSnowflake上のアーキテクチャを合理化し、開発を加速し、データエンジニアリングとML/AIワークロードのパフォーマンスを向上させることができるよう支援してきました。今年のサミットでは、Snowflakeでの非SQLコードの展開と処理をさらに簡単、迅速、安全にするSnowparkランタイムとライブラリの一連の進歩を発表できることを嬉しく思います。
Snowpark — Snowflake データクラウドでの非 SQL コードの安全な展開と処理のためのライブラリとランタイムのセット。
使い慣れたクライアントサイドライブラリ - Snowparkは、高度に統合されたDataFrameスタイルのプログラミングとOSS互換のAPIを、データ専門家が使用したい言語で提供します。データ準備、クレンジング、前処理、モデルトレーニング、デプロイメントタスクなど、データ中心のさまざまなタスクに使い慣れた API を提供します。 さらに、より効率的なモデル開発 (パブリックプレビュー) と展開 (プライベートプレビュー) のための一連の新しい ML API のサポートを発表できることを嬉しく思います。
柔軟なランタイム構成 - Snowparkは、ユーザーがウェアハウスやSnowpark Container Services(プライベートプレビュー)にカスタムロジックを取り込んで実行できるようにする柔軟なコンピューティングとランタイム構成を提供します。ウェアハウスモデルでは、ユーザーはユーザー定義関数 (UDF) とストアドプロシージャ (sprocs) を使用して、データパイプライン、ML モデル、データアプリケーションをシームレスに実行して運用できます。GPU、カスタムランタイム/ライブラリ、長時間実行されるフルスタックアプリケーションのホスティングなどの特殊なハードウェアの使用を必要とするワークロードには、Snowpark Container Servicesが理想的なソリューションを提供します。
これらの機能を組み合わせることで、データエンジニア、データサイエンティスト、開発者の要件や好みに合わせた強力な拡張フックが実現します。これにより、組織は、Snowflakeのガバナンス範囲外で運用されている複雑なスタンドアロンシステムを立ち上げて管理するという面倒な作業から解放されます。コンピューティングをデータに近づけることで、企業はデータサイロの解消、セキュリティとガバナンスの課題への対処、運用の最適化が可能になり、効率性が向上すると同時に、システムやインフラストラクチャの追加に伴う管理オーバーヘッドを回避できます。
このブログでは、Snowparkクライアントライブラリに関する最新の発表と、ウェアハウスのサーバーサイドの機能強化について詳しく説明します。Snowpark Container Servicesの詳細については、こちらのローンチブログをご覧ください。
新着情報:Snowpark for Python
Pythonの人気は急上昇し続けており、データサイエンティストに選ばれる言語であり、開発者の間では全体で3番目に人気のある言語となっています。私たちは、SnowflakeをPython実践者にとってクラス最高のプラットフォームにすることを使命としており、Snowpark for Pythonの包括的な拡張機能セットと拡張機能セットを発表しました。
一般的なプラットフォームアップデート
複数の Python バージョン 3.9 と 3.10 のサポート (PuPr) - ユーザーは新しいバージョンにアップグレードして、Snowpark の Python 拡張機能や互換性のあるサードパーティパッケージを利用することができます。
Snowflake内の新しいPython (Anaconda) ライブラリのサポート - Pythonの力はオープンソースパッケージの豊富なエコシステムにあるため、Snowpark for Pythonサービスの一部として、Anaconda統合を通じてシームレスでエンタープライズグレードのオープンソースイノベーションをデータクラウドにもたらします。 お客様からのフィードバックとSnowflakeアイデアボードに基づいて、Snowflakeチャネルで利用可能な5,000以上のパッケージの既存のリポジトリに引き続きパッケージを追加しています。最近追加された機能や間もなくリリースされる予定のライブラリには、langchain、implicit、inbalanced-learn、rapidfuzz、rdkit、mlforecast、statsforecast、scikit-optimize、scikit-surpriseなどがあります。
Python 非構造化データ処理 (PuPr) - 非構造化データ処理が Python でネイティブにサポートされるようになりました。ユーザーは Python UDF、UDTF、ストアドプロシージャを活用して、内部/外部ステージまたはオンプレミスストレージにある非構造化ファイル (画像、動画、音声、カスタム形式など) を安全かつ動的に読み取り、処理し、そこからインサイトを引き出すことができます。
外部ネットワークアクセス (PrPR) - ユーザーは高いセキュリティとガバナンスを維持しながら、Snowpark コード (UDFS/UDTF およびストアドプロシージャ) から外部エンドポイントにシームレスに接続できます。
Python パッケージポリシー (PrPr) - 適切な権限を持つユーザーが、自分のアカウントで利用されている Anaconda パッケージのガバナンスを強化するための許可リストとブロックリストを設定できます。この機能により、より厳しい監査やセキュリティ要件を持つお客様は、Snowflake環境でのOSS pythonパッケージの使用について、より詳細なコマンドとガバナンスを持つことができます。
クライアントライブラリの更新
スノーパーク ML API のご紹介 - ML モデリング API (PuPr) と ML オペレーション API (PrPr) で構成されるスノーパーク ML API のサポートを発表できることを嬉しく思います。これにより、スノーフレークでのエンドツーエンドの機械学習開発が容易になります。
Snowpark ML モデリング API (PuPr) - Snowflakeでの機能エンジニアリングをスケールアウトし、モデルトレーニングを簡素化します。
- 前処理:使い慣れたsklearnスタイルのAPIを使用して、Snowflakeのデータに対して一般的な前処理や機能エンジニアリングタスクを直接実行できます。また、パフォーマンスの向上とSnowflakeの並列化により、分散型のマルチノード実行で大規模なデータセットにスケーリングできます。
- モデリング:人気の高いscikit-learnモデルやxgboostモデルのモデルをSnowflakeのデータで直接トレーニングできます。使い慣れた API により、ストアドプロシージャや UDF を手動で作成しなくても、すぐにトレーニングを実行できます。
Snowpark ML Operations API (PrPr) - Snowpark モデルレジストリ (PrPr) が含まれているため、スケーラブルで信頼性の高いSnowflakeインフラストラクチャを使用して推論用の登録済みモデルを簡単に展開できます。
ウェアハウス・ランタイム・コントラクトの更新
ユーザー定義集計関数 (UDAF) (PrPr) - 複数の行の値を処理し、結果として単一の集計値を返す関数をユーザーが作成できます。これにより、Snowparkでシームレスでユーザーフレンドリーなカスタム集計シナリオが可能になります。
ベクトル化された UDTF (PuPr は近日公開予定) - パーティション上で動作するテーブル関数を Pandas DataFrames として作成し、結果を pandas DataFrame または pandas シリーズ/配列のリストとして返すことができます。ベクトル化されたUDTFは、スカラーUDTFの行ごとの処理と比較して、パーティションごとのシームレスな処理を可能にします。 プロセス関数で行ごとにデータを収集するよりもdataframesを連結する方が速いことを考えると、複数の独立したモデルの分散トレーニング(Hyper Parameter Tuningなど)、分散時系列分析/予測、複数の出力によるモデル推論など、いくつかのユースケースのパフォーマンスが向上します。
Anonymous Stored Procedures (GA) - ストアドプロシージャに似ているが、後で使用するために保存されていない匿名プロシージャを作成して呼び出します。これは、永続化する必要のないSnowparkコードの実行を必要とするSnowparkアプリ/インテグレーションの構築に最適です。一例として、dbt PythonモデルとSnowflake Pythonワークシートは、舞台裏で匿名のスプロックを活用しています。
Python Table Stored Procedures (PuPr) - これまで、ストアドプロシージャはスカラー値のみを返していました。結果をテーブルで返すことができるようになったため、ユーザーはSnowparkコードの一部としてダウンストリーム処理用のテーブルを簡単に返すことができます。
新着情報:Snowflakeの DevOps
上記のSnowparkの機能強化に加えて、サミットでは、Snowpark コードの操作、管理、テスト、運用を容易にする一連のSnowflake DevOps関連の改善を発表しました。注目すべきアップデートには以下が含まれます。
Logging and tracing with Event Tables (PuPr) - ユーザー UDF、UDTF、ストアドプロシージャ、Snowpark containers からのログとトレースをインストゥルメントでき、それらは安全な顧客所有のEvent Tableにシームレスにルーティングされます。Event Tableのロギングとトレースイベントのテレメトリは、ユーザーがクエリを実行したり分析したりして、アプリケーションのトラブルシューティングを行ったり、コードのパフォーマンスや動作に関する洞察を得たりできます。Snowflake AlertsやEメール通知などの他のテレメトリ機能と組み合わせることで、お客様はアプリケーションの新しいイベントやエラーを通知できます。
Python Task API (PrPr Soon) - Snowflake Tasks/DAG を作成および管理するためのファーストクラスの Python API を提供します。
Snowpark Local Testing (PrPr) - ユーザーはスノーフレークにライブ接続しなくてもSnowparkセッションとデータフレームを作成できます。ユーザーはローカルセッションを使用してSnowparkテストスイートを高速化してクレジットを節約し、コードを変更せずにライブ接続にシームレスに切り替えることができます。
Native Git Integration (PrPR まもなく) - Snowflake は git リポジトリとのネイティブインテグレーションをサポートするようになりました!この統合により、ユーザーはSnowflakeアカウントからGitリポジトリに安全に接続し、Snowflake内の任意のブランチ/タグ/コミットのコンテンツにアクセスできます。統合後、ユーザーはステージ上のファイルのようにリポジトリとブランチを参照するだけで、UDF、ストアドプロシージャ、Streamlit Apps、およびその他のオブジェクトを作成できます。
Snowflake CLI (PrPr) - 開発者がアプリを簡単に作成、管理、更新、表示できるオープンソースのコマンドラインインターフェイス。また、アプリ中心のワークロード全体でビルドの自動化や CI/CD 機能も利用できます。
Triggered Tasks (PrPr) - この新しいタスクタイプにより、ユーザーはSnowflake Streamのデータをより効率的に消費できます。以前は、タスクは1分という速さで実行できました。 Triggered Tasksを使用すると、ストリームが到着した時点でデータを取り込むことができるため、レイテンシーが大幅に短縮され、リソース使用率が最適化され、コストが削減されます。
これらの新しいSnowparkとDevOpsのアップデートにより、すべてのPython開発者のコーディングが合理化され、Snowflakeのガバナンスとパフォーマンスのメリットを享受しながら、使い慣れた方法で作業できるようになります。 これらの改善により、データエンジニアはSpark for ELT/ETLからシームレスに移行し、データサイエンティストはMLモデルをネイティブに構築して展開し、データ開発者はSnowparkを使用してアプリケーションを構築できるようになります。
ボンネットの下のSnowpark
Snowpark の構築方法、仕組み、Snowflake で Python/Java/Scala コードを簡単かつ安全に処理する方法について、Snowpark エンジニアリングチームが作成した詳細なブログや動画をご覧ください。
Snowpark:Python、Java などの安全で高性能な処理を実現するための設計
Java/ScalaとPythonの分離によるスノーパーク保護
カスタマーサクセスストーリー
2022年11月のSnowdayでのGA発表から数か月間、Snowpark for Pythonは3倍の顧客導入率を記録し、力強い成長を続けています。何千ものお客様が、データエンジニアリングと機械学習のユースケース向けに Snowpark for Python を使用してワークロードの開発とパフォーマンスを加速しています。
OpenStoreは、大規模なデータ変換のためにPySparkからSnowparkに切り替えたeコマース企業で、エンドツーエンドのランタイムが87%減少し、スループットが25%向上し、エンジニアリングメンテナンス時間が 80% 削減されました。
ニューヨーク証券取引所の親会社であるIntercontinental Exchangeは、Snowparkを使用してデータパイプラインを合理化し、規制報告に使用されるミッションクリティカルなアプリケーションのコストを削減しています。
EDF Energyは、Snowparkを使用してインテリジェントな顧客向けエンジンを構築する英国の大手エネルギーサプライヤーです。「特徴量エンジニアリングなどのデータサイエンスタスクを、データが置かれている場所で直接実行できるのは大変です。おかげで私たちの仕事はずっと効率的で楽しいものになりました」と、EDF のデータサイエンスリードである Rebecca Vickery 氏は言います。
Bridg では、Snowpark がデータへの直接アクセス、モデルのトレーニング、アクションの実行をすべてSnowflakeクラスター上で行う方法を提供しています。これにより、プロセスが完全に統合され、自動化され、効率的になります。Bridg のリードデータサイエンティスト、Dylan Sager 氏は次のように述べています。「Snowflake と Snowpark により、独自の機械学習モデルをより速いペースで開発し、自動化できるようになりました。
Snowpark Acceleratedプログラム
また、KXのような新しいパートナーシップを含め、パートナーエコシステムに引き続き多大な関心が寄せられていることにも興奮しています。Snowpark Acceleratedプログラムの一環として、多数のパートナーにSnowpark for Pythonを活用するインテグレーションを構築してもらい、Snowflake上で顧客に提供するエクスペリエンスを強化しています。
Snowpark でより速く、よりスマートに仕事をしましょう
Snowparkは、Snowflakeのプラットフォームのシンプルさ、スケーラビリティ、セキュリティを維持しながら、ユーザーがデータを使って非常にインパクトのあることを簡単に行えるようにすることを目的としています。Snowpark for Pythonでは、皆さんが何を構築するのか楽しみです。
開始にあたっては、以下のリソースをご覧ください。
Snowpark for Data Engineering & ML を始めよう
Snowpark for Data Engineering Pipelines を始めよう