Prodotto e tecnologia

Snowpark offre funzionalità estese come container completamente gestiti, API ML native, nuove versioni di Python, accesso esterno, DevOps potenziato e altro

Snowpark offre funzionalità estese come container completamente gestiti, API ML native, nuove versioni di Python, accesso esterno, DevOps potenziato e altro

Sin dal suo lancio due anni fa, Snowpark ha consentito a data scientist, data engineer e sviluppatori di applicazioni di semplificare le architetture, accelerare lo sviluppo e migliorare le prestazioni dei workload di Data engineering e ML/AI su Snowflake. Al Summit di quest’anno, abbiamo annunciato una serie di miglioramenti ai runtime e alle librerie di Snowpark che rendono ancora più semplici, veloci e sicuri il deployment e l’elaborazione di codice non SQL in Snowflake.

Snowpark: set di librerie e runtime per il deployment e l’elaborazione sicura di codice non SQL nel Data Cloud di Snowflake.

Librerie lato client conosciute: Snowpark consente agli esperti di dati di utilizzare i loro linguaggi preferiti con una programmazione profondamente integrata in stile DataFrame e API compatibili con OSS. Fornisce API familiari per vari task incentrati sui dati, tra cui preparazione, pulizia e pre-elaborazione dei dati, addestramento dei modelli e distribuzione.   In più, siamo lieti di annunciare il supporto per una serie di nuove API ML che migliorano l’efficienza dello sviluppo (public preview) e del deployment (private preview) dei modelli.

Costrutti runtime flessibili: Snowpark fornisce costrutti di compute e runtime flessibili per eseguire la logica personalizzata sui warehouse o in Snowpark Container Services (private preview). Nel modello warehouse, gli utenti possono eseguire e implementare in modo trasparente pipeline di dati, modelli ML e applicazioni dati con funzioni definite dall’utente (UDF) e stored procedure. Per i workload che richiedono l’uso di hardware specializzato come le GPU, runtime o librerie personalizzati o l’hosting di applicazioni full-stack a esecuzione prolungata, Snowpark Container Services è la soluzione ideale.

Insieme, queste funzionalità offrono potenti meccanismi di estendibilità adattabili ai requisiti e alle preferenze di data engineer, data scientist e sviluppatori. Questo evita alle organizzazioni di dover creare e gestire complessi sistemi autonomi che operano fuori dai confini della governance di Snowflake. Avvicinando l’elaborazione ai dati, le aziende possono eliminare i silos, superare le sfide legate alla sicurezza e alla governance e ottimizzare le operazioni per guadagnare efficienza, evitando al contempo il carico amministrativo associato all’uso di sistemi e infrastrutture aggiuntive.

In questo articolo esamineremo i più recenti annunci relativi alle librerie client di Snowpark e ai miglioramenti lato server dei warehouse. Per ulteriori dettagli sul lancio di Snowpark Container Services, leggi questo articolo.

Novità: Snowpark per Python

La popolarità di Python continua a crescere e oggi è il linguaggio preferito dai data scientist e il terzo linguaggio per popolarità tra gli sviluppatori in genere. La nostra missione è fare di Snowflake la piattaforma best-in-class per gli esperti di Python, e in quest’ottica abbiamo lanciato una serie completa di miglioramenti e ampliato la gamma delle funzionalità di Snowpark per Python

Aggiornamenti generali della piattaforma

Supporto per Python versioni 3.9 e 3.10 (public preview): gli utenti avranno la possibilità di aggiornare alle versioni più recenti per avvalersi dei miglioramenti di Python e dei pacchetti di terze parti compatibili in Snowpark.

Supporto per le nuove librerie Python (Anaconda) all’interno di Snowflake: la potenza di Python risiede nel suo ricco ecosistema di pacchetti open source e Snowpark per Python porta l’innovazione open source di livello enterprise nel Data Cloud con la nostra integrazione di Anaconda.  Sulla base dei feedback dei clienti e delle idee della community Snowflake, continuiamo ad aggiungere package al repository di oltre 5.000 package disponibili nel canale Snowflake. Tra le librerie recenti e quelle che lo saranno a breve, citiamo ad esempio langchain, implicit, imbalanced-learn, rapidfuzz, rdkit, mlforecast, statsforecast, scikit-optimize, scikit-surprise e molto altro.

Elaborazione dei dati non strutturati con Python (public preview): l’elaborazione dei dati non strutturati ora è supportata in modo nativo con Python. Gli utenti possono sfruttare UDF, UDTF e stored procedure Python per leggere, elaborare e ricavare insight in modo sicuro e dinamico da file non strutturati (come immagini, video, audio o formati personalizzati) provenienti da stage interni o esterni e da storage on-premise.

Accesso alle reti esterne (private preview): consente agli utenti di connettersi in modo trasparente a endpoint esterni dal proprio codice Snowpark (UDF/UDTF e stored procedure) mantenendo livelli elevati di sicurezza e governance.

Criteri per i pacchetti Python (private preview): permettono agli utenti con i privilegi appropriati di impostare elenchi di elementi consentiti e bloccati per migliorare la governance dei package Anaconda utilizzati nei loro account. Questa funzionalità offre agli utenti con requisiti di verifica e/o sicurezza particolarmente stringenti un livello più dettagliato di controllo e governance sull’uso dei pacchetti Python OSS nei loro ambienti Snowflake.

Aggiornamenti delle librerie client

Presentazione delle API ML Snowpark: siamo entusiasti di annunciare il supporto per le API ML Snowpark, che comprendono API ML Modeling (public preview) e API ML Operations (private preview) e che faciliteranno lo sviluppo ML end-to-end in Snowflake. 

API ML Modeling Snowpark (public preview): fornisce scalabilità orizzontale al feature engineering e semplifica l’addestramento dei modelli in Snowflake.

  • Pre-elaborazione: esegui comuni attività di pre-elaborazione e feature engineering direttamente sui dati in Snowflake utilizzando familiari API in stile sklearn e sfrutta le prestazioni migliorate e la parallelizzazione di Snowflake per gestire data set di grandi dimensioni con esecuzione distribuita su più nodi.
  • Modellazione: addestra i più diffusi modelli scikit-learn e xgboost direttamente sui dati in Snowflake con API familiari per un addestramento “chiavi in mano”, senza bisogno di creare manualmente stored procedure o UDF.

API ML Operations Snowpark (private preview): include Snowpark Model Registry (private preview) per distribuire senza sforzo modelli registrati per l’inferenza utilizzando l’infrastruttura scalabile e affidabile di Snowflake.

Aggiornamenti dei contratti di esecuzione warehouse


Funzioni aggregate definite dall’utente (UDAF) (private preview)
: consentono agli utenti di creare funzioni che agiscono sui valori di più righe e restituiscono un singolo valore aggregato come risultato, rendendo possibili scenari di aggregazione personalizzati trasparenti e facili da usare in Snowpark.

UDTF vettorizzate (presto in public preview): consentono agli utenti di creare funzioni per tabelle che operano sulle partizioni come pandas DataFrame e restituiscono risultati sotto forma di pandas DataFrame o elenchi di serie/array pandas. Le UDTF vettorizzate consentono un’elaborazione trasparente partizione per partizione, invece dell’elaborazione riga per riga delle UDTF scalari.  Poiché concatenare i DataFrame è più veloce che raccogliere i dati riga per riga nella funzione di elaborazione, questo migliora le prestazioni di vari casi d’uso, come l’addestramento distribuito di più modelli indipendenti (ad es. tuning degli iperparametri), l’analisi/previsione con serie temporali distribuita, l’inferenza del modello con output multipli e così via.

Stored procedure anonime (GA): crea e richiama una procedura anonima, che è simile a una stored procedure ma non viene memorizzata per uso futuro. Questo è molto utile per creare app/integrazioni Snowpark che richiedono l’esecuzione di codice Snowpark non persistente. Ad esempio, i modelli Python dbt e i worksheet Snowflake Python sfruttano stored procedure anonime dietro le quinte.

Stored procedure con tabelle Python (public preview): in precedenza, le stored procedure restituivano solo valori scalari. Ora possono restituire i risultati in tabelle per un’elaborazione a valle più pratica all’interno del codice Snowpark.

Novità: DevOps in Snowflake

Oltre ai miglioramenti di Snowpark descritti sopra, al Summit abbiamo annunciato una serie di miglioramenti Snowflake per DevOps che rendono più facile manipolare, testare e implementare il codice Snowpark. Tra i principali aggiornamenti citiamo:

Logging e tracing con le Event Table (public preview) : gli utenti​ possono instrumentare log e tracce dalle proprie UDF, UDTF, stored procedure e dai container Snowpark, che verranno poi instradati in modo trasparente a una tabella eventi sicura di proprietà del cliente. La telemetria degli eventi di registrazione e tracciamento nelle tabelle eventi può essere sottoposta a query e analizzata per il troubleshooting delle applicazioni o per ricavare insight sulle prestazioni e il comportamento del codice. Utilizzata insieme ad altre funzionalità di telemetria come gli avvisi e le notifiche email di Snowflake, consente ai clienti di ricevere notifiche dei nuovi eventi ed errori che si verificano nelle loro applicazioni.

API Python Tasks (presto in private preview): forniscono API Python di prima classe per creare e gestire task/DAG di Snowflake.

Testing locale Snowpark (private preview): consente agli utenti di creare una sessione Snowpark e DataFrame senza una connessione attiva a Snowflake. Gli utenti possono accelerare le suite di test Snowpark e risparmiare crediti utilizzando una sessione locale per poi passare senza interruzioni a una connessione attiva senza modifiche al codice.

Integrazione Git nativa (presto in private preview): ora Snowflake supporta l’integrazione nativa con i repository Git! Questa integrazione consente agli utenti di connettersi in modo sicuro a un repository Git da un account Snowflake e accedere ai contenuti di qualsiasi ramo / tag / commit all’interno di Snowflake. Dopo l’integrazione, gli utenti possono creare UDF, stored procedure, app Streamlit e altri oggetti facendo semplicemente riferimento al repository e al ramo, come farebbero per un file in uno stage.

Snowflake CLI (private preview): interfaccia della riga di comando open source che consente agli sviluppatori di creare, gestire, aggiornare e visualizzare senza sforzo le app, oltre a offrire funzionalità di automazione delle build e CI/CD su più workload incentrati sulle app. 

Task con trigger (private preview): questo nuovo tipo di task consente agli utenti di utilizzare in modo più efficiente i dati in uno stream Snowflake. In precedenza, la velocità massima dei task era di 1 minuto.  Con i Triggered Tasks, è possibile utilizzare i dati di un flusso nel momento stesso in cui arrivano, con notevoli miglioramenti in termini di latenza, ottimizzazione delle risorse e costi.

Questi nuovi aggiornamenti per Snowpark e DevOps semplificano la creazione di codice per tutti gli sviluppatori Python, perché non cambia il loro modo di lavorare ma allo stesso tempo ottengono i vantaggi in termini di governance e prestazioni di Snowflake.  In più, questi miglioramenti permettono ai data engineer di migrare senza problemi da Spark per l’ELT/ETL, ai data scientist di creare e distribuire modelli ML in modo nativo e agli sviluppatori di creare applicazioni basate sui dati utilizzando Snowpark.

Approfondimenti su Snowpark

Dai un’occhiata a questi ottimi blog e video di approfondimento del team di progettazione su come è stato creato Snowpark, come funziona e perché rende facile e sicuro elaborare codice Python/Java/Scala in Snowflake.

Success story di clienti

Dopo l’annuncio della disponibilità in GA durante il nostro Snowday di novembre 2022, Snowpark per Python ha continuato a crescere rapidamente, triplicando l’adozione da parte dei clienti. Migliaia di clienti accelerano lo sviluppo e la performance dei propri workload con Snowpark per Python per casi d’uso di data engineering e ML. 

OpenStore è un’azienda di ecommerce che è passata da PySpark a Snowpark per le trasformazioni di dati su larga scala e ha registrato una riduzione dell’87% del runtime end-to-end, un aumento del 25% del throughput e una riduzione dell’80% delle ore di manutenzione tecnica.

Intercontinental Exchange, la società che gestisce la Borsa di New York, utilizza Snowpark per semplificare le pipeline di dati e ridurre i costi delle applicazioni mission critical utilizzate per le segnalazioni di vigilanza. 

EDF Energy è un fornitore di energia leader nel Regno Unito che utilizza Snowpark per creare un Intelligent Customer Engine. “Poter eseguire attività di data science, come il feature engineering, direttamente dove si trovano i dati è un vantaggio enorme per noi e rende il nostro lavoro molto più efficiente e piacevole”, afferma Rebecca Vickery, Data Science Lead di EDF. 

Snowpark fornisce a Bridg un modo per accedere direttamente ai dati, addestrare modelli ed eseguire azioni su un cluster Snowflake, rendendo il processo completamente indipendente, automatizzato ed efficiente. “Insieme, Snowflake e Snowpark ci consentono di sviluppare e automatizzare modelli di machine learning proprietari a un ritmo molto più rapido”, afferma Dylan Sager, Lead Data Scientist di Bridg.

Programma Snowpark Accelerated

Siamo anche entusiasti dell’enorme interesse che continua a suscitare nel nostro ecosistema di partner, compresi i nuovi partner come KX. Numerosi partner del programma Snowpark Accelerated creano integrazioni che sfruttano Snowpark per Python per migliorare l’esperienza dei propri clienti Snowflake.

Lavorare in modo più veloce e intelligente con Snowpark

Snowpark serve innanzitutto ad aiutare gli utenti a fare cose di grandissimo impatto con i dati senza rinunciare alla semplicità, alla scalabilità e alla sicurezza della piattaforma Snowflake. Non vediamo l’ora di scoprire cosa riuscirai a realizzare con Snowpark per Python. 

Per iniziare, dai un’occhiata a queste risorse:

Share Article

Subscribe to our blog newsletter

Get the best, coolest and latest delivered to your inbox each week

Inizia la tua provagratuita di 30 giorni

Prova Snowflake gratis per 30 giorni e scopri come l’AI Data Cloud aiuta a eliminare la complessità, i costi e i vincoli tipici di altre soluzioni.