Corso
Snowflake è una piattaforma dati basata sul cloud che affronta le sfide fondamentali della gestione dei dati moderna. Lanciata nel 2014, offre alle organizzazioni una soluzione centralizzata per archiviare ed elaborare operazioni dati su larga scala.
I sistemi tradizionali di gestione dei dati presentano spesso limiti significativi. In genere costringono le aziende a scegliere tra prestazioni delle query, accesso concorrente degli utenti ed economicità. L'architettura di Snowflake è stata sviluppata per eliminare questi vincoli grazie al suo approccio all'archiviazione e all'elaborazione dei dati.
Questa guida analizza il framework architetturale e i meccanismi operativi di Snowflake. Anche se la piattaforma integra tecnologie complesse, l'obiettivo qui è rendere questi concetti accessibili a chi ha una conoscenza di base dei sistemi dati.
La guida affronterà:
- I principi fondamentali del sistema di archiviazione dati di Snowflake
- I componenti architetturali che ne costituiscono l'infrastruttura
- L'approccio della piattaforma all'accesso concorrente ai dati
- I vantaggi tecnici che ne guidano l'adozione
Questa analisi ti fornirà una comprensione di base di come Snowflake funziona all'interno dell'infrastruttura dati moderna.
Per chi è nuovo a Snowflake, la Introduzione a Snowflake per principianti offre le nozioni di base essenziali.
Concetti chiave dell'architettura di Snowflake
L'architettura di Snowflake si differenzia dai tradizionali data warehouse adottando principi cloud moderni per risolvere le sfide di scalabilità e prestazioni. L'architettura implementa un approccio multilivello che separa storage, compute e servizi in componenti distinti ma connessi.
Livelli dell'architettura di Snowflake

Fonte: documentazione Snowflake
L'architettura di Snowflake utilizza un esclusivo design a tre livelli che separa le funzionalità principali mantenendo un'integrazione fluida. Vediamo ciascun livello nel dettaglio:
1. Livello di storage
Il livello di storage di Snowflake si basa su object storage nel cloud (Amazon S3, Azure Blob Storage o Google Cloud Storage) e organizza i dati in micro-partizioni immutabili (50–500 MB) in formato colonnare compresso. Queste micro-partizioni memorizzano metadati come i valori min/max delle colonne, abilitando un pruning efficiente delle query.
Questo livello si ottimizza da solo e non richiede manutenzione manuale. Seleziona in modo intelligente il miglior algoritmo di compressione per colonna in base al tipo di dato e ai pattern, garantendo alti rapporti di compressione e query analitiche rapide leggendo solo le colonne necessarie.
2. Livello di compute
Il livello di compute è composto da warehouse virtuali—cluster MPP indipendenti che eseguono query SQL e operazioni DML. Ogni warehouse esegue più nodi in parallelo, operando in totale isolamento per evitare interferenze di prestazioni.
Queste risorse stateless possono essere avviate, arrestate, ridimensionate o clonate senza influire sui dati. Il ridimensionamento redistribuisce automaticamente i carichi, mentre la sospensione automatica mette in pausa i warehouse inattivi e li riattiva in pochi secondi quando necessario.
3. Livello dei servizi
Il livello dei servizi orchestra le operazioni di Snowflake, gestendo un archivio metadati distribuito che tiene traccia di tabelle, viste, policy di sicurezza e query. L'ottimizzatore di query sfrutta questi metadati per generare piani di esecuzione efficienti in base alla distribuzione dei dati, alle risorse di calcolo e ai pattern di accesso.
Garantisce la conformità ACID con un controllo della concorrenza avanzato, gestendo al contempo l'autenticazione tramite SSO, MFA e controllo degli accessi basato sui ruoli a tutti i livelli. Questo livello gestisce anche le sessioni e l'applicazione delle misure di sicurezza.
Come lavorano insieme i livelli
L'interazione tra i livelli di Snowflake abilita funzionalità potenti come la condivisione sicura dei dati, il calcolo multi-cluster e la scalabilità dinamica. La condivisione dei dati è guidata dai metadati—vengono scambiati solo puntatori, mentre l'accesso è controllato con policy di sicurezza granulari. I consumer possono interrogare i dati condivisi utilizzando le proprie risorse di calcolo senza duplicazioni.
Il calcolo multi-cluster consente a cluster di compute indipendenti di accedere allo stesso livello di storage mantenendo cache separate e garantendo la consistenza. I carichi possono essere isolati dedicando warehouse a ETL, BI o data science. L'architettura di Snowflake supporta anche la scalabilità dinamica, permettendo a storage e compute di scalare in modo indipendente mentre il livello dei servizi ottimizza l'allocazione delle risorse e le prestazioni delle query.
Per approfondire questi concetti e altro ancora, esplora il corso Introduction to Snowflake.
Architettura del data warehouse di Snowflake
L'architettura del data warehouse di Snowflake si basa sul design a tre livelli per offrire modellazione dati flessibile ed elaborazione efficiente delle query. Supporta dati strutturati e semi-strutturati ottimizzando le prestazioni e semplificando la gestione.
Modello dati
Snowflake gestisce i dati strutturati utilizzando concetti di database relazionali, supportando tipi di dato SQL, vincoli e relazioni tramite chiavi primarie ed esterne. Le informazioni sensibili beneficiano della crittografia a livello di colonna. Per i dati semi-strutturati, Snowflake gestisce nativamente JSON, XML, Parquet e Avro usando il tipo di dato VARIANT, inferendo automaticamente gli schemi e abilitando query efficienti con funzioni specializzate come FLATTEN e PARSE_JSON.
A livello di storage, i dati sono automaticamente suddivisi in micro-partizioni da 50–500 MB, ognuna con metadati come valori min/max delle colonne e frequenza dei null. Snowflake tiene traccia del clustering naturale e riorganizza periodicamente i dati per migliorare l'efficienza delle query, eliminando la necessità di gestire manualmente le partizioni.
Architettura di elaborazione delle query
Snowflake elabora le query attraverso più livelli coordinati che ne ottimizzano l'esecuzione. L'ottimizzatore trasforma le query SQL in piani di esecuzione logici e valuta più piani fisici in base a dimensione delle tabelle, indicizzazione e caching. Utilizzando un modello di costi, seleziona l'approccio più efficiente, determinando algoritmi di join, metodi di ordinamento e strategie di movimentazione dei dati.
Il motore di esecuzione distribuisce le query tra nodi di elaborazione paralleli. Sfruttando i metadati, elimina le partizioni non necessarie e legge solo le colonne pertinenti nel formato colonnare di Snowflake, migliorando l'efficienza. Una cache dei risultati di 24 ore migliora ulteriormente le prestazioni riutilizzando i risultati di query già calcolati quando i dati sottostanti non sono cambiati.
L'architettura di Snowflake abilita pattern di accesso ai dati efficienti. Il cloning senza copia consente la duplicazione istantanea delle tabelle senza copiare i dati, mentre il time travel preserva le versioni storiche per query puntuali. Il controllo della concorrenza multi-versione (MVCC) garantisce la consistenza delle transazioni, permettendo carichi ad alta concorrenza senza conflitti di lock. Queste ottimizzazioni, unite a caching intelligente e pruning delle partizioni, consentono a Snowflake di offrire analytics scalabili e ad alte prestazioni con un intervento manuale minimo.
Funzionalità avanzate di Snowflake
Snowflake offre funzionalità avanzate in ambito gestione delle risorse, sicurezza, integrazione e monitoraggio per potenziare le capacità enterprise.
Gestione delle risorse
La gestione dinamica delle risorse include pianificazione dei warehouse e auto-scaling, mettendo automaticamente in pausa i warehouse inattivi e regolando le risorse di calcolo in base ai carichi. Gli amministratori possono impostare pianificazioni di avvio/arresto automatiche e sfruttare metriche dettagliate per ottimizzare costi e prestazioni.
Governance delle query
Le funzionalità di governance delle query offrono un controllo preciso sul consumo di risorse, con limiti dinamici, accodamento intelligente e routing personalizzato delle query, garantendo una gestione efficiente dei carichi.
Integrazione enterprise
Per l'integrazione enterprise, Snowflake supporta stored procedure in JavaScript e Java, permettendo agli sviluppatori di implementare logiche di business complesse oltre SQL.
Il controllo di versione consente rollback semplici, mentre la gestione degli errori assicura un'esecuzione fluida con log dettagliati. Il framework sicuro di scambio dati della piattaforma permette alle organizzazioni di condividere e monetizzare dataset tramite marketplace privati.
Le aziende possono controllare gli accessi, tracciare l'utilizzo e implementare la fatturazione automatizzata, creando nuove opportunità di ricavo mantenendo conformità e sicurezza.
Queste funzionalità rafforzano la posizione di Snowflake come piattaforma dati completa, offrendo scalabilità, automazione e sicurezza. Con una gestione intelligente dei carichi, integrazioni fluide e strumenti di governance solidi, le organizzazioni possono ottimizzare le prestazioni, ridurre i costi e collaborare in sicurezza sugli asset dati.
Confronti di architettura
Confrontiamo l'architettura di Snowflake con i data warehouse tradizionali e con i concorrenti moderni per comprenderne la proposta di valore unica.
Data warehouse tradizionali
Differenze architetturali chiave:
- I sistemi tradizionali accoppiano strettamente storage e compute
- Il partizionamento fisico dei dati richiede manutenzione manuale
- Pianificazione della capacità hardware per i picchi di carico
- Capacità limitata di gestire dati semi-strutturati
Confronto dei modelli di costo:
- I sistemi tradizionali richiedono investimenti hardware iniziali
- La capacità deve tenere conto della crescita futura
- I costi di manutenzione includono hardware e strutture
- I costi di licenza sono in genere basati sui core dei processori
Caratteristiche prestazionali:
- Limitate dai vincoli dell'hardware fisico
- La scalabilità degli utenti concorrenti richiede aggiornamenti hardware
- Le prestazioni delle query degradano all'aumentare degli utenti
- Contesa di risorse tra carichi di lavoro
Concorrenti moderni
1. Amazon Redshift
- Architettura: Basata su cluster; operazioni di vacuum manuali; utilizza zone maps
- Costo: Prezzi orari per nodo; limitato all'ecosistema AWS
2. Google BigQuery
- Architettura: Serverless con pricing basato sugli slot; caching automatico delle query (conservazione 24 ore)
- Costo: Pagamento per byte scansionato; controllo del compute limitato
3. Azure Synapse
- Architettura: Ibrida (serverless e pool dedicati); gestione risorse complessa; supporta sia rowstore sia columnstore
- Costo: Prezzi basati su DTU o vCore; integrazione con servizi Azure
Altre considerazioni sulle prestazioni:
1. Ottimizzazione delle query
- BigQuery: ottimizzazione automatica, controllo utente limitato
- Redshift: operazioni di vacuum e analyze manuali
- Synapse: richiede aggiornamento statistiche e indicizzazione
2. Gestione della concorrenza
- BigQuery: sistema di allocazione degli slot
- Redshift: gestione dei carichi basata su code
- Synapse: assegnazioni a classi di risorse
3. Architettura dello storage
- BigQuery: storage colonnare con sharding automatico
- Redshift: distribuzione basata su nodi con gestione delle slice
- Synapse: opzioni rowstore e columnstore
4. Variazioni nella struttura dei costi
- BigQuery: pagamento per byte scansionato
- Redshift: prezzi orari per nodo
- Synapse: prezzi basati su DTU o vCore
5. Capacità di integrazione
- BigQuery: integrazione nativa con i servizi GCP
- Redshift: integrazione con l'ecosistema AWS
- Synapse: servizi della piattaforma Azure
Queste differenze architetturali influenzano:
- Complessità operativa
- Gestione delle risorse
- Predicibilità dei costi
- Ottimizzazione delle prestazioni
- Integrazione con l'ecosistema
Per un approccio strutturato a questi concetti, consulta la guida completa all'apprendimento di Snowflake.
Ecco una tabella riepilogativa di queste differenze:
| Aspetto | BigQuery | Redshift | Synapse | Snowflake |
|---|---|---|---|---|
| Architettura | Serverless | Basata su cluster | Ibrida (serverless e dedicata) | Multi-cluster, dati condivisi |
| Storage | Colonnare con auto-sharding | Distribuzione basata su nodi | Rowstore e columnstore | Colonnare a micro-partizioni |
| Ottimizzazione delle query | Automatica, controllo limitato | Vacuum/analyze manuali | Indicizzazione e statistiche manuali | Ottimizzazione automatica |
| Concorrenza | Allocazione basata su slot | WLM basato su code | Classi di risorse | Scalabilità dei warehouse virtuali |
| Modello di prezzo | Per byte scansionato | Orario per nodo | Basato su DTU/vCore | Per secondo di utilizzo del warehouse |
| Integrazione | Servizi nativi GCP | Ecosistema AWS | Piattaforma Azure | Supporto multi-cloud |
| Gestione delle risorse | Automatizzata | Gestione manuale dei nodi | Gestione complessa dei pool | Automatica con controllo manuale |
| Supporto tipi di dato | Forte per semi-strutturati | Limitato per semi-strutturati | Limitato per semi-strutturati | Nativo per semi-strutturati |
| Manutenzione | Minima | Richiede vacuum regolare | Necessaria manutenzione degli indici | Zero manutenzione |
| Caching | Automatico 24 ore | Gestito dall'utente | Limitato integrato | Caching automatico dei risultati |
Conclusione
Snowflake ha cambiato il modo in cui le aziende lavorano con i dati nel cloud, rendendolo più semplice ed efficiente rispetto ai sistemi precedenti. Il modo in cui Snowflake è costruito permette di archiviare ed elaborare i dati separatamente, aiutando a risparmiare pur mantenendo risultati rapidi. Grazie alle solide funzionalità di sicurezza di Snowflake, le aziende possono sentirsi sicure che i propri dati siano protetti. Il sistema funziona senza problemi su diversi provider cloud, offrendo alle imprese maggiore flessibilità su dove conservare i dati.
Per chi vuole saperne di più su Snowflake, su DataCamp sono disponibili molte risorse utili e materiali di formazione.
- Snowflake Tutorial For Beginners: dall'architettura all'esecuzione dei database
- Corso Introduction to Data Modeling in Snowflake
- How to Learn Snowflake nel 2025: guida completa
La piattaforma continua a crescere con nuove funzionalità, come capacità di intelligenza artificiale, che la rendono ancora più potente per le aziende. Le organizzazioni che utilizzano Snowflake possono adattarsi rapidamente man mano che le loro esigenze dati cambiano nel tempo. Il futuro appare promettente per Snowflake, dato che sempre più realtà la scelgono come piattaforma principale per la gestione dei dati.
Domande frequenti sull'architettura di Snowflake
Cosa rende l'architettura di Snowflake diversa dai data warehouse tradizionali?
Snowflake utilizza un'architettura unica a tre livelli che separa storage, compute e servizi. A differenza dei sistemi tradizionali che accoppiano strettamente questi componenti, il design di Snowflake consente scalabilità indipendente, migliore gestione delle risorse e maggiore efficienza dei costi.
Come gestisce Snowflake l'accesso concorrente degli utenti?
Snowflake gestisce l'accesso concorrente tramite warehouse virtuali - cluster di compute indipendenti che possono essere scalati su o giù secondo necessità. Più warehouse possono accedere agli stessi dati simultaneamente senza degradare le prestazioni, mentre il livello dei servizi garantisce la consistenza dei dati.
Che cos'è la medallion architecture in Snowflake?
La medallion architecture è un modello di organizzazione dei dati con tre livelli: Bronze (dati grezzi), Silver (dati standardizzati) e Gold (dati pronti per il business). Questa struttura consente un raffinamento progressivo dei dati mantenendo lineage e controllo qualità.
Come funziona il sistema di storage di Snowflake?
Snowflake utilizza micro-partizioni (blocchi da 50-500 MB) archiviate in formato colonnare con ottimizzazione automatica. Il sistema mantiene metadati sul contenuto di ogni partizione, abilitando elaborazione efficiente delle query tramite pruning delle partizioni e caching intelligente.
Come si confronta Snowflake con altri data warehouse nel cloud?
Snowflake si differenzia da concorrenti come Redshift, BigQuery e Synapse grazie al supporto multi-cloud, alle funzionalità di ottimizzazione automatica e a un modello di prezzo unico basato sull'utilizzo al secondo dei warehouse. Ogni piattaforma adotta approcci distinti alla gestione delle risorse e all'elaborazione delle query.
Sono un creator di contenuti sulla data science con oltre 2 anni di esperienza e uno dei più seguiti su Medium. Mi piace scrivere articoli dettagliati su AI e ML con un pizzico di sarcasmo, perché bisogna pur fare qualcosa per renderli un po’ meno noiosi. Ho pubblicato oltre 130 articoli e un corso su DataCamp, con un altro in arrivo. I miei contenuti sono stati visti da oltre 5 milioni di persone, 20.000 delle quali sono diventate follower sia su Medium che su LinkedIn.


