Accesso ai pacchetti PyPI in Snowpark tramite UDF e stored procedure

NOTA: Questo post è stato originariamente pubblicato ad aprile 2025. È stato aggiornato per riflettere i prodotti, le caratteristiche e le funzionalità attualmente disponibili.
Per sviluppatori, data engineer e data scientist che utilizzano Snowpark, una delle sfide più grandi era accedere ai pacchetti Python di cui avevano bisogno e gestire le dipendenze per i pacchetti caricati sullo stage. Se da un lato Snowpark Python supporta già i package Anaconda e i package personalizzati, dall’altro la mancanza di accesso diretto al vasto ecosistema del Python Package Index (PyPI) ha comportato ulteriori passaggi per gestire le dipendenze e aggirare le limitazioni.
Oggi questo cambia. Migliora lo sviluppo di Snowpark Python con novità rivoluzionarie! Siamo lieti di annunciare la GA dell’accesso diretto al vasto Python Package Index (PyPI) che rivoluziona il flusso di lavoro e sblocca una flessibilità senza precedenti. Immagina di integrare senza sforzo qualsiasi pacchetto Python di cui hai bisogno, direttamente nelle tue UDF Python Snowpark e stored procedure, senza attese. Sì, hai capito bene! Mentre il canale Anaconda di Snowflake rimane disponibile, ora hai la libertà di attingere all’intero ecosistema PyPI, che ospita più di 600.000 pacchetti Python.
Questa nuova funzionalità semplifica notevolmente i flussi di sviluppo, rendendo più facile che mai creare e scalare applicazioni basate su Python in Snowflake.
Come funziona
Snowflake dispone di un repository di artefatti predefinito che consente agli utenti di connettere e installare pacchetti PyPI all’interno delle UDF e stored procedure Snowpark. È sufficiente concedere l'accesso a un repository PyPI integrato e installare il package repository all'interno di una UDF o di una procedura (maggiori dettagli sul processo sono disponibili nella nostra documentazione).

“CARTO, una piattaforma leader di location intelligence cloud-native, sta collaborando al progetto EMERALDS, finanziato dall'UE, per portare nel cloud l'analisi avanzata della mobilità per i dati di traiettoria. I metodi esistenti, che utilizzano librerie come PyMEOS e MovingPandas, offrono potenti analisi di traiettoria, ma non sono scalabili per grandi set di dati o applicazioni in tempo reale. Grazie all'Artifact Repository di Snowflake, ora possiamo integrare questi metodi come UDF Python, rendendoli facilmente accessibili e scalabili all'interno di Snowflake senza dover ricorrere a pipeline di dati complesse. Questo riduce la barriera all'ingresso per gli utenti che vogliono risolvere sfide di mobilità, come migliorare la tecnologia di assistenza alla guida analizzando le traiettorie delle auto a guida autonoma, ottimizzare i modelli assicurativi attraverso l'analisi del comportamento del conducente e migliorare la pianificazione della rete mappando i modelli di movimento degli utenti.”
Giulia Carella
I vantaggi
Il supporto potenziato di Snowflake per i pacchetti PyPI nelle UDF e procedure Snowpark offre vantaggi significativi:
Accesso istantaneo, senza problemi: Ora, qualsiasi pacchetto PyPI (whl) è a portata di mano.
Sfruttare infinite possibilità: Utilizza qualsiasi pacchetto `.whl` di PyPI e persino Snowpark Optimized Warehouse per pacchetti specifici per l'architettura CPU x86. Per i pacchetti personalizzati, gli utenti possono caricarli in uno stage e quindi importarli all’interno di una UDF o stored procedure.
Sviluppo semplificato: Semplifica notevolmente il processo di sviluppo, rendendo la creazione e la scalabilità di applicazioni basate su Python in Snowflake più semplici e veloci che mai.
In questo modo le organizzazioni ottengono un’esperienza sicura e trasparente. Gli utenti non devono installarlo ogni volta per un processo di analisi o data engineering. Dovranno semplicemente specificare il nome del package come parte di ARTIFACT_REPOSITORY_PACKAGES. Dietro le quinte, il package viene installato nell’ambiente sandbox sottostante nel virtual warehouse. Per semplificare, Snowflake fornisce un repository di artefatti predefinito chiamato SNOWFLAKE.SNOWPARK.PYPI_SHARED_REPOSITORY che viene utilizzato per connettere e installare i pacchetti PyPI. Un ACCOUTADMIN deve concedere l’accesso a un RUOLO per abilitare questo utilizzo. Dietro le quinte, memorizziamo anche i pacchetti per evitare di colpire PyPI ogni volta, poiché aiuta a migliorare le prestazioni.
“Alla Tacoma Public Utilities, gestiamo le nostre pipeline di dati tramite stored procedures Snowflake Python, alcune delle quali richiedono librerie Python non incluse nel canale Anaconda. Ad esempio, utilizziamo PGPy per crittografare i dati condivisi con i nostri partner, che li analizzano per identificare opportunità di efficienza energetica per i nostri clienti. In passato, l'integrazione di librerie non Anaconda era un processo complesso, che richiedeva download manuali, caricamenti su uno stage Snowflake e una manutenzione continua delle versioni statiche delle librerie. Grazie alla nuova funzionalità Artifact Repository, ora possiamo integrarci perfettamente con PyPI, semplificando la configurazione ed eliminando la necessità di gestire manualmente le versioni. Questo garantisce che le nostre pipeline abbiano sempre accesso ai pacchetti più recenti, migliorando sia l'efficienza che l'affidabilità.”
Nicole Edwards
Perché è importante
Gli sviluppatori possono creare applicazioni dati più potenti con una più ampia gamma di librerie Python.
I data engineer possono sviluppare le proprie pipeline e sfruttare pacchetti PyPI (come asyncmy, bitstruct, stumpy, sparse ecc.) per utilizzarli in vari casi d’uso, che vanno dall’arricchimento dei dati, all’ingestion, alla trasformazione, alla convalida e molti altri.
I data scientist possono eseguire flussi di lavoro di machine learning in modo trasparente utilizzando pacchetti diffusi come TensorFlow o scikit-learn con le versioni più recenti di PyPI.
Come iniziare
Accedere a PyPI significa più potenza, più flessibilità e meno attrito. Immergiti in un mondo di infinite possibilità per Python ed eleva i tuoi progetti Snowpark a nuove vette.
Sei pronto a sperimentare il futuro dello sviluppo di Snowpark Python? Inizia subito a usare l’accesso diretto a PyPI e scopri la differenza! Consulta la documentazione sulle feature qui. In questo post troverai anche un esempio di utilizzo end-to-end dei package PyPI per l’elaborazione dei dati non strutturati con Snowpark.