Benvenuti all'edizione di giugno 2025 di Last Month in Snowflake, in cui passeremo in rassegna gli annunci di maggior impatto del mese appena trascorso. Giugno è stato un mese particolarmente ricco di novità grazie allo Snowflake Summit. In questo articolo non ripeteremo gli oltre 30 annunci già raccolti nel nostro Recap del Summit 2025. Ci concentreremo invece sugli annunci di giugno 2025 più rilevanti per l'utente medio di Snowflake (con qualche sovrapposizione con quelli del Summit). Iniziamo!
Aggiornamenti di Snowsight
Ecco gli aggiornamenti di Snowsight che ci entusiasmano di più!
Workspaces — Public Preview
Uno degli annunci più interessanti del Summit è una nuova funzionalità chiamata Workspaces: un moderno IDE basato su file, integrato in Snowsight e compatibile con Git (GitHub, GitLab, ecc.). Porta nell'interfaccia di Snowflake funzionalità tipiche di un IDE come cartelle, integrazione con Git, suggerimenti di codice basati su AI e supporto nativo per dbt. Workspaces consente di organizzare il codice in progetti, collaborare più facilmente, fare push e pull da GitHub (o da altri provider Git) e ottimizzare i flussi di sviluppo senza mai uscire dalla piattaforma Snowflake.
Workspaces dà il meglio di sé quando si collega un repository Git. Per aggiungere un repo, l'unico prerequisito è un'API Integration (e un Secret se il repo non è pubblico); il resto si fa tramite GUI.
Workspaces offre un'integrazione Git semplice e intuitiva, che consente di selezionare un branch, fare push e pull e confrontare le diff direttamente nell'interfaccia:
Considerazioni generali su Workspaces
Personalmente, ho lasciato da parte i Worksheets e ora uso esclusivamente Workspaces, anche solo per la possibilità di organizzare i file in cartelle e di navigare l'albero dei file in modo più agevole rispetto all'interfaccia dei Worksheets. Anche quando non sono connesso a un repo Git, continuo a preferire Workspaces per il layout migliorato, l'accesso allo storico delle query e il copilot integrato.
Le funzionalità di Workspaces sono troppe per trattarle tutte qui; in futuro pubblicheremo un articolo dedicato a tips and tricks su Workspaces (inclusi i progetti dbt).
Progetti dbt in Snowflake — Public Preview
In Workspaces è possibile eseguire progetti dbt direttamente dall'interfaccia di Snowsight. Il modo più semplice per iniziare è collegare un repo esistente, come mostrato sopra. Una volta creato un Workspace con un repo dbt collegato, Snowflake chiederà di creare un file profiles.yml. Fatto questo, si potranno eseguire i comandi dbt direttamente dalla GUI!
Nel pannello inferiore è possibile passare tra Query History, DAG View e Output.
La vista dello storico delle query rimanda direttamente al query profile. Nota: questa funzionalità non riguarda solo i progetti dbt; tutti i Workspaces mostrano lo storico delle query. Trovo però particolarmente comodo avere lo storico delle query dbt all'interno dell'IDE.
Da qualsiasi modello è possibile fare clic sul pulsante "Compile SQL" per visualizzare l'SQL compilato accanto a quello con i template. Il pulsante "Show in DAG" evidenzia quel modello nel pannello DAG sottostante.
Quando si è pronti al deploy, basta fare clic su "Connect" in alto a destra e poi su "Deploy dbt".
Una volta effettuato il deploy, il progetto dbt sarà visibile in Data → Database / Schema → dbt projects, mentre lo storico delle esecuzioni di tutti i progetti dbt sarà consultabile in Monitoring → dbt.
Osservazioni e considerazioni:
- Pro: trovo entusiasmante l'idea di poter creare, pianificare e monitorare i progetti dbt direttamente all'interno di Snowsight.
- Contro: comandi come
dbt depsedbt buildsembrano avere tempi di cold start molto lunghi. - Contro: i log vengono mostrati solo al termine dell'esecuzione. Questo rende difficile capire dove venga speso il tempo.
- Contro: il fatto che ogni comando di build vada eseguito dalla GUI è un po' macchinoso. Mi manca la possibilità di eseguire slice del DAG da riga di comando. (L'interfaccia per passare argomenti al comando di build è davvero scomoda e andrebbe migliorata.)
Ci sono molti aspetti dell'esecuzione dei progetti dbt che non abbiamo trattato qui. Restate sintonizzati per un articolo dedicato all'argomento!
Task Overview e Graph a livello di account — GA
Da tempo è possibile visualizzare un Task Graph a livello di database. Ora gli utenti possono accedere a una panoramica di tutti i task di un account, in base ai privilegi di Task Monitoring.
Nella barra laterale sinistra, fare clic su Monitoring e poi su Task History. Qui si trova un elenco filtrabile di tutti i task dell'account, con lo stato visivo delle esecuzioni precedenti.
Nella scheda Task Runs è possibile consultare l'elenco di ogni esecuzione di task nell'account.
Qui si può visualizzare il DAG di un'esecuzione completata insieme al "Total Duration Breakdown".
Nel complesso questa UI funziona davvero bene! Mi piace particolarmente il tooltip Previous Runs. La trovo una funzionalità di osservabilità molto utile.
Gestione delle Integrations in Snowsight — GA
In Snowflake un'Integration serve a connettersi a risorse esterne come Storage account o Git Repos, creare Network Rules, gestire accessi API e così via. Fino a oggi le Integrations potevano essere gestite e monitorate solo tramite SQL. Snowflake ha aggiunto la possibilità di creare, gestire e monitorare le Integrations direttamente nell'interfaccia di Snowsight. È un grande passo avanti sul fronte dell'osservabilità.
Andare in Data → Integrations per ottenere una vista a livello di account delle Integrations. Utilizzare i 3 puntini per gestire un'integrazione esistente.
La schermata Create permette di creare nuove integrations in modo semplice:
La GUI "create integration" porta poi a una pagina SQL che assomiglia a un Worksheet, ma è più effimera, a meno di fare clic su "Open in Worksheets".
Avrei preferito che Snowflake offrisse un flusso 100% GUI per creare le Integrations, ma capisco la difficoltà, vista la gran quantità di proprietà configurabili.
Per maggiori informazioni, consultare la documentazione.
Aggiornamenti SQL
Durante il Summit, Snowflake ha annunciato diverse estensioni del dialetto SQL legate all'AI. Non le ripeteremo qui. Ci concentreremo invece su una delle estensioni più utili del dialetto SQL: UNION BY NAME.
Operatore Union [all] by Name — GA
In SQL, union e union all richiedono di norma che ogni parte dell'unione abbia lo stesso numero di colonne e che queste siano allineate nello stesso ordine. La nuova sintassi Union by Name allinea automaticamente le colonne in base al nome. Se un nome di colonna non esiste o c'è una discrepanza nel numero di colonne, Snowflake la gestisce restituendo automaticamente valori null per la colonna mancante in quella parte dell'unione. Ecco un esempio.
with data1 as
(
select
'jeff' as first_name,
'engineering' as department,
),
data2 as
(
select
'skoldberg' as last_name,
'engineering' as department,
)
select * from data1
union all by name
select * from data2;
Da utilizzatore della macro dbt_utils.union_relations più volte di quante ne possa contare, accolgo con favore questa funzionalità nativa di Snowflake, perché funziona sulle CTE oltre che su View e Table. Una conquista enorme!
Aggiornamenti di Data Engineering
A giugno Snowflake ha introdotto una novità significativa nell'ambito Data Engineering (al di fuori degli annunci del Summit).
Artifact Repository — GA
Con Artifact Repository si fa riferimento alla possibilità di utilizzare pacchetti Python provenienti dal Python Package Index (PyPI) all'interno di user-defined functions (UDF) e stored procedures Snowpark Python. Purtroppo questa funzionalità non è disponibile per Notebooks o Python Worksheets, anche se i pacchetti più diffusi sono sempre stati disponibili in quei contesti.
Per utilizzarla, è necessario assegnare a un ruolo utente il ruolo predefinito pypi_repository_user.
1GRANT DATABASE ROLE SNOWFLAKE.PYPI_REPOSITORY_USER TO ROLE data_engineering;
A questo punto si può specificare qualsiasi pacchetto PyPi nella firma della procedura indicando l'argomento ARTIFACT_REPOSITORY. Ad esempio:
CREATE OR REPLACE FUNCTION sklearn_udf()
RETURNS FLOAT
LANGUAGE PYTHON
RUNTIME_VERSION = 3.9
ARTIFACT_REPOSITORY = snowflake.snowpark.pypi_shared_repository
PACKAGES = ('scikit-learn')
HANDLER = 'udf'
AS
$$
Si tratta di un enorme miglioramento rispetto al processo precedente, che richiedeva di copiare i wheel Python negli Snowflake Stages. Snowflake sta rendendo molto più semplice usare le librerie più diffuse!
Per maggiori informazioni, vedere Artifact Repository overview.
Altri aggiornamenti (non legati al Summit):
- Snowflake ha aumentato i limiti di dimensione per gli oggetti del database.
- Ora è possibile utilizzare le Nested Stored Procedures, ovvero richiamare una sproc da un'altra sproc.
- Snowflake Streams su tabelle Iceberg, incluse le eliminazioni a livello di riga (Standard Streams).
- La Malicious IP protection protegge tutti gli account Snowflake bloccando il traffico proveniente da tutti gli IP malevoli noti.
- Aggiornamenti al Native App Framework.
- I Notebooks offrono ora più runtime preconfigurati.
Conclusioni
Vorrei ricordare ancora una volta che molti annunci di giugno 2025 non sono trattati in questo articolo perché già coperti nel Recap del Summit. Le prossime edizioni di "Last Month in Snowflake" saranno quasi esaustive. Continueremo a tenervi aggiornati sui cambiamenti più importanti di Snowflake!
Jeff è un Data and Analytics Consultant con oltre 15 anni di esperienza nell'automazione degli insight e nell'uso dei dati per governare i processi di business. Sul piano tecnologico è specializzato in Snowflake + dbt + Tableau. Sul piano settoriale, ha esperienza in Public Utility, Clinical Trials, Publishing, CPG e Manufacturing. Contattatelo in qualsiasi momento all'indirizzo [email protected].