Snowparkでの、UDFとストアドプロシージャを介したPyPIパッケージへのアクセス

注意:この記事は2025年4月に公開されました。現在利用可能な製品、特性、機能性を反映するように更新されています。
Snowparkを使用する開発者、データエンジニア、データサイエンティストにとっての最大の課題の一つは、必要なPythonパッケージへのアクセスと、ステージにアップロードされたパッケージの依存関係の管理でした。Snowpark PythonはすでにAnacondaパッケージとカスタムパッケージをサポートしていますが、Python Package Index(PyPI)の膨大なエコシステムには直接アクセスできなかったため、依存関係の管理や制限の回避に余分なステップが必要になっていました。
しかし、今日からは違います。Snowpark Pythonの開発をパワーアップする画期的なニュースがあります。私たちは、膨大なPython Package Index(PyPI)への直接アクセスのパブリックプレビューが開始されたことを発表します。これにより、ワークフローに革命がもたらされ、卓越した柔軟性が実現します。これからは待ち時間なしに、必要なPythonパッケージをSnowpark PythonのUDFとストアドプロシージャに直接統合できます。本当です。信頼性の高いSnowflake Anacondaチャネルも引き続き利用可能ですが、60万個以上のPythonパッケージをホストするPyPIエコシステム全体を自由に活用できるようになります。
この新機能により、開発ワークフローが大幅に簡素化され、SnowflakeでのPythonアプリケーションの構築とスケーリングがかつてないほど容易になります。
仕組み
Snowflakeにはデフォルトのアーティファクトリポジトリがあり、ユーザーはPyPIパッケージを接続してSnowparkのUDFとストアドプロシージャ内にインストールできます。組み込みのPyPIリポジトリへのアクセスを付与し、UDFまたはプロシージャ内にレポジトリパッケージをインストールするだけです(プロセスの詳細についてはSnowflakeドキュメントを参照してください)。

“クラウドネイティブの位置情報プラットフォームをリードするCARTOは、EUの資金提供を受けるEMERALDSプロジェクトに協力し、軌跡データのための高度なモビリティ分析をクラウドにもたらそうとしています。PyMEOSやMovingPandasのようなライブラリを使用した既存の手法は、強力な軌跡分析を提供しますが、大規模なデータセットやリアルタイムアプリケーションには対応できません。SnowflakeのArtifact Repositoryを利用することで、私たちはこれらの手法をPython UDFとして統合し、複雑なデータパイプラインなしにSnowflake内で簡単にアクセスでき、スケーラブルにすることが可能になりました。これにより、自動運転車の軌跡分析による運転支援技術の向上、運転行動分析による保険モデルの最適化、ユーザーの移動パターンのマッピングによるネットワーク計画の強化といったモビリティの課題を解決するための、ユーザーにとっての参入障壁が下がります。”
Giulia Carella
メリット
Snowflakeによる、SnowparkのUDFとプロシージャでのPyPIパッケージの拡張サポートには、次の大きなメリットがあります。
手間のいらないほぼ即時のアクセス:あらゆるPyPI(whl)パッケージをすぐに利用できます。
無限の可能性を解き放つ:PyPIのあらゆる「.whl」パッケージを活用できます。x86 CPUアーキテクチャ固有のパッケージで、Snowpark用に最適化されたウェアハウスを利用することも可能です。カスタムパッケージでは、ユーザーはステージにパッケージをアップロードしてから、UDFまたはストアドプロシージャ内にインポートできます。
開発の簡略化:開発プロセスを大幅に合理化し、SnowflakeでのPythonアプリケーションの構築とスケーリングをこれまでになく迅速かつ簡単にします。
これにより、組織はセキュアかつシームレスな体験を得られます。ユーザーは、データ分析やデータエンジニアリングのために毎回パッケージをpipインストールする必要がなくなります。代わりに、ARTIFACT_REPOSITORY_PACKAGESの一部としてパッケージ名を指定するだけで済みます。内部的には、パッケージは仮想ウェアハウスの基盤となるサンドボックス環境にインストールされます。簡単に言うと、Snowflakeは、PyPIパッケージの接続とインストールに使用するSNOWFLAKE.SNOWPARK.PYPI_SHARED_REPOSITORYというデフォルトのアーティファクトリポジトリを提供しています。このリポジトリを利用できるようにするには、ACCOUTADMINがロールへのアクセス権を付与する必要があります。また、パフォーマンスを改善するために、パッケージをキャッシュして、毎回PyPIにヒットすることのないようにしています。
“Tacoma Public Utilitiesでは、データパイプラインをSnowflakeのPythonストアドプロシージャでホストしていますが、その中にはAnacondaチャネルに含まれていないPythonライブラリを必要とするものがあります。例えば、私たちはパートナーと共有するデータを暗号化するためにPGPyを使用しており、パートナーはそのデータを分析してお客様のためのエネルギー効率化の機会を特定しています。以前は、Anaconda以外のライブラリを組み込むのは面倒で、手動でのダウンロード、Snowflakeステージへのアップロード、そして静的なライブラリバージョンの継続的なメンテナンスが必要でした。新しいArtifact Repository機能により、私たちはPyPIとシームレスに統合し、セットアップを簡素化し、手動でのバージョン管理の必要性をなくすことができるようになりました。これにより、私たちのパイプラインは常に最新のメンテナンスされたパッケージにアクセスできるようになり、効率と信頼性の両方が向上します。”
Nicole Edwards
重要な理由
開発者は、より幅広いPythonライブラリを使用することで、さらに強力なデータアプリケーションを構築できます。
データエンジニアは、PyPIのパッケージ(asyncmy、bitstruct、stumpy、sparseなど)を活用してパイプラインを開発し、データエンリッチメント、取り込み、変換、検証などのさまざまなユースケースに使用できます。
データサイエンティストは、PyPIの最新バージョンでTensorFlowやscikit-learnなどの一般的なパッケージを使用して、機械学習ワークフローをシームレスに実行できます。
さっそく始める
PyPIを利用できるようになったことにより、処理能力、柔軟性、摩擦が軽減されます。Pythonの無限の可能性を秘めた世界に飛び込み、Snowparkプロジェクトを新たな高みに導くことができます。
Snowpark Pythonの開発の未来を体験する準備はできていますか?今すぐPyPIに直接アクセスし、その違いをご確認ください。機能に関するドキュメントはこちらを参照してください。 また、この記事では、Snowparkでの非構造化データ処理にPyPIのパッケージを使用するエンドツーエンドの例を紹介しています。