Insights / Blog

Snowpark – Discovering Snowflake

Snowpark – Discovering Snowflake

Benvenuti ad una nuova rubrica “Discovering Snowflake”, dove esploreremo le potenzialità di Snowflake e gli elementi che la costituiscono. In questa serie di articoli, vi accompagneremo in un viaggio di scoperta attraverso le funzionalità, i vantaggi e le migliori pratiche di Snowflake.

Che tu sia un professionista dei dati, un analista o uno sviluppatore, o semplicemente interessato a conoscere una delle soluzioni più innovative per l’elaborazione dei dati, questa rubrica ti offrirà una panoramica completa di Snowflake e ti guiderà nella comprensione delle sue caratteristiche chiave.

Nell’articolo di oggi approfondiremo Snowpark.

I professionisti del settore dei dati, come data engineer, data scientist e sviluppatori, si affidano spesso a una varietà di strumenti e linguaggi di programmazione per svolgere il proprio lavoro. Tuttavia, per le organizzazioni, queste preferenze possono portare a architetture complesse, costi di manutenzione e gestione aumentati e la creazione di nuovi silos di dati che espongono i dati a rischi di sicurezza. Per affrontare queste sfide, Snowflake offre una soluzione chiamata Snowpark, che consente di collaborare sui medesimi dati all’interno di una piattaforma unificata che funziona indipendentemente dal linguaggio utilizzato. In questo modo, è possibile semplificare l’architettura, ridurre i costi di gestione e mitigare i rischi di sicurezza, garantendo una maggiore efficienza e collaborazione nel lavoro con i dati.

Che cos’è Snowpark?

Snowpark è sostanzialmente una libreria che fornisce un’API che consente agli sviluppatori di scrivere e eseguire codice personalizzato all’interno della piattaforma Snowflake.

Si tratta essenzialmente di un framework composto sia da una libreria lato client che da un sandbox lato server.

Snowpark offre una programmazione stile dataframe profondamente integrata nei linguaggi che gli sviluppatori preferiscono utilizzare, come Python, Java e Scala. Tutto viene eseguito all’interno di Snowflake. È anche possibile creare funzioni definite dall’utente, o UDF. Queste UDF vengono anch’esse eseguite lato server.

Durante lo sviluppo di un’applicazione Snowpark, ci sono alcuni concetti chiave importanti da comprendere. Ad esempio, i Dataframe, che possono essere considerati come una rappresentazione di una query nel linguaggio preferito. L’API lato client consente di scrivere codice direttamente dall’IDE o dal notebook ed eseguirlo in Snowflake. È possibile costruire query utilizzando i Dataframe e Snowpark converte queste operazioni in SQL per eseguire i calcoli in modo efficiente utilizzando il motore di prestazioni elastico di Snowflake.

I Dataframe vengono eseguiti solo quando viene effettuata un’azione per recuperare, archiviare o visualizzare i dati che rappresentano.

I Dataframe di Snowpark vengono eseguiti interamente in Snowflake. Nessun dato lascia Snowflake a meno che tu non lo richieda.

Come vengono utilizzati i Dataframe con Snowpark?

Possiamo utilizzare i metodi dei Dataframe per eseguire join, raggruppamenti e conteggi in Snowflake senza scrivere alcun SQL. In sintesi:

  1. Snowpark converte le operazioni in SQL.
  2. L’SQL viene eseguito direttamente in Snowflake, sfruttando le prestazioni e la scalabilità del motore di Snowflake.
  3. Ad eccezione del conteggio finale delle righe, i dati non escono mai da Snowflake.
  4. Mantenere il calcolo vicino ai dati offre i vantaggi della sicurezza e della governance dei dati di Snowflake.

Come utilizzare gli UDFs (User-Defined Functions) con Snowpark

Immaginiamo di avere del codice personalizzato per effettuare data masking (ovvero mascherare informazioni sensibili). Possiamo chiamare le nostre UDF personalizzate quando utilizziamo i Dataframe di Snowpark. Possiamo rendere il processo dinamico applicando le UDF di data masking a tutte le colonne di tipo stringa in una specifica tabella.

Snowpark vs Spark Connector

Snowflake dispone di un connettore appositamente sviluppato per Spark. La scelta dipende dalle prestazioni, dai costi e dalle funzionalità di ciascuna soluzione. Il fatto che Snowpark spinga la logica direttamente in Snowflake consente di beneficiare delle prestazioni, della scalabilità, della governance dei dati e della sicurezza offerte da Snowflake. Inoltre, semplifica l’architettura riducendo il numero di sistemi diversi nella propria infrastruttura. Se si utilizza il connettore Snowflake Spark, l’applicazione avrà una capacità di push down inferiore. Ciò comporterà una perdita di prestazioni, funzionalità e possibili ottimizzazioni dei costi che invece potrebbero essere fornite da Snowflake con Snowpark. Inoltre, si avrà la complessità di mantenere e interagire con un sistema aggiuntivo. In breve, se si dispone dei dati all’interno di Snowflake, è consigliato utilizzare Snowpark.

 

Per ulteriori domande su Snowflake vi invitamo a contattarci all’indirizzo: info@theinformationlab.it Speriamo che questo articolo vi abbia incuriosito e che continuiate a seguire il nostro blog. Alla prossima!

Blog
Manufacturing Analytics: cos’è e come impatta l’ottimizzazione dei costi

Manufacturing Analytics: cos’è e come impatta l’ottimizzazione dei costi

Il Manufacturing Analytics è l’ultima frontiera dell’evoluzione dell’industria manifatturiera, sempre spinta dalla necessità di rimanere...

Blog
Data analytics tool: i 4 fattori da considerare per sceglierlo

Data analytics tool: i 4 fattori da considerare per sceglierlo

I data analytics tool svolgono un ruolo fondamentale nel processo di analisi dei dati, ormai...