Data Analytics

Database di analisi a confronto

Con la crescita dei volumi di dati, aumentano le esigenze dei database. Nell'ambito di un progetto di ricerca presso la Fernfachhochschule di Berna, ho messo a confronto Azure Synapse Analytics e Vertica. Qual è la soluzione migliore?

Qual era l'obiettivo?

Nel team Data & Analytics lavoriamo quotidianamente con i database. Forniamo consulenza ai clienti e li aiutiamo a realizzare le loro soluzioni di analisi. È fondamentale avere una conoscenza approfondita delle tecnologie di database più comuni. Io sono un discente del team e mi occupo di studiare le tecnologie o di supportare vari progetti. Ho creato un confronto per questo in un progetto semestrale durante il mio corso di laurea.

L'obiettivo di questo confronto è quello di analizzare in modo più dettagliato l'aspetto delle prestazioni tra le tecnologie. Questo aumenta la nostra comprensione e fornisce una giustificazione scientifica per le nostre raccomandazioni ai clienti.

Cosa ho fatto?

L'inizio del progetto consisteva nel definire uno scenario. Come parte del lavoro, mi sono limitato a un piccolo schema a stella. Questo corrisponde a un caso tipico del nostro team, in una forma leggermente più piccola.

Il diagramma mostra la struttura del database. La tabella dei fatti "vendite" ha 1.000.000 di record di dati, mentre le tabelle delle dimensioni più piccole avevano tra le 20 e le 5.000 voci. I dati sono stati generati casualmente con Vertica e caricati in entrambi i database:

  • Vertica versione 9.3
  • Azure Synapse Analytics

A questo punto potevano iniziare gli esperimenti. Ho optato per quattro query a complessità crescente. Ho effettuato i test in due casi: Seriale e parallelo. È stato misurato il tempo totale di esecuzione delle query, cioè dall'invio della query all'arrivo dell'ultimo pacchetto. La query 3 è un esempio. La sintassi è diversa tra Azure Synapse Analytics e Vertica.

Affinché i risultati siano significativi, abbiamo dovuto creare le stesse condizioni per tutti i database. Abbiamo utilizzato Azure per ospitare i database. Questo ci ha permesso di confrontare i risultati con i costi sostenuti al giorno per l'hardware di Azure. Questo risultato costituisce la base per le interpretazioni e le decisioni.

I costi sono stati sostenuti in modi diversi. Con Azure Synapse Analytics (PaaS), i costi sono stati sostenuti principalmente dai computer. L'unità di misura delle prestazioni in Azure Synapse è chiamata Unità Data Warehouse. Questa corrisponde a un misto di memoria e memoria di lavoro. Nel test è stata utilizzata l'impostazione più piccola di 100 DWU.

L'archiviazione dei dati in Synapse è risolta con i cosiddetti account di archiviazione. Il vantaggio è che si paga solo per la quantità di dati memorizzati. In questo caso si tratta di circa 300 MB, con costi inferiori a 0,01 CHF.

Per Vertica è stata utilizzata la risorsa già pronta di Azure, che ti supporta durante la configurazione. I costi maggiori sono stati sostenuti per l'archiviazione dei dati, che è stata eseguita su SSD premium. La macchina virtuale è stata relativamente economica. A differenza di Azure Synapse, tuttavia, ho avuto accesso diretto (IaaS).

Un altro punto è la licenza. Per Azure Synapse, la licenza è inclusa nel prezzo della potenza di calcolo. Tuttavia, se si realizzano progetti più grandi con Vertica (a partire da 1TB), è necessario acquistare una licenza, che comporta costi aggiuntivi.

Tutti i dettagli su costi e hardware sono descritti nel documento, ma questo blog post non è sufficiente.

Cosa ho scoperto?

Affinché i risultati siano significativi, abbiamo dovuto creare le stesse condizioni per tutti i database. Abbiamo utilizzato Azure per ospitare i database. Questo ci ha permesso di confrontare i risultati con i costi sostenuti al giorno per l'hardware di Azure. Questo risultato costituisce la base per le interpretazioni e le decisioni.

Questo viene fatto anche per Vertica, ma con i costi di Vertica nel contatore. Per Synapse si ottiene un valore di circa un terzo e per Vertica di due terzi. Le colonne arancioni vengono create quando la colonna blu viene moltiplicata per questo fattore.

Vertica è leggermente migliore di Synapse in tutte le categorie, tranne che nella Query 1. Inoltre, colpisce la durata molto ridotta di Vertica nella Query 2. Le ragioni di questi risultati sono molteplici e vengono discusse in dettaglio nel documento. Tra queste, ad esempio, le diverse architetture o gli errori di misurazione dovuti agli esperimenti.

Le query parallele non potevano essere misurate così facilmente a causa delle differenze tra le architetture. Invece, è stato calcolato il rapporto tra le query seriali e quelle parallele per entrambi i database e sono stati confrontati i miglioramenti.

In una formula, il risultato è questo:

Esistono specifiche sul numero di query parallele che possono essere elaborate simultaneamente. Questo cambia in base alle dimensioni del database. Con Synpase, il limite era di 4 query parallele. Vertica non aveva limiti, ma le prestazioni non cambiavano molto al di sopra dei 10 thread.

Synapse supera leggermente Vertica nelle query uno e due. Tuttavia, Vertica è migliore nelle ultime due query. I risultati per entrambe le query sono vicini tra loro. I costi sono stati trattati allo stesso modo dei risultati seriali.

Quali sono i miei risultati?

Entrambe le tecnologie hanno i loro punti di forza e di debolezza, che non sempre sono emersi nel corso del lavoro. Inoltre, ci sono aspetti diversi dalle prestazioni che sono determinanti nella scelta di un database.

In sostanza, però, dal nostro confronto possiamo vedere che Vertica è un'ottima scelta in termini di prestazioni. In conclusione, però, vorrei sottolineare che nella scelta di un database sono importanti anche altre caratteristiche oltre alle prestazioni.

Se sei interessato al lavoro, puoi contattarmi via e-mail: Lukas.Meier1@swisscom.com

Lukas Meier

Lukas Meier

Student PiBS Informatik

Altri articoli getIT

Pronti per Swisscom

Trova il posto di lavoro o il percorso di carriera che fa per te. Dove dare il tuo contributo e crescere professionalmente.

Ciò che tu fai, è ciò che siamo.

Vai ai percorsi di carriera

Vai alle posizioni vacanti cibersicurezza