Creare cubi con sql: “with cube”

I cubi, o ipercubi, in sql non sono altro che la rappresentazione astratta della proiezione di una relazione tra le misure e le n dimensioni che lo caratterizzano. All’interno di un cubo OLAP, quindi, vengono immagazzinate tutte le dimensioni e tutti i fatti (cioè i dati) di modo da rendere più veloce la ricerca e l’analisi dei dati.

Ultimamente, lavorando per Almalaurea, mi sono scontrato, assieme ad Alberto, con il problema della realizzazione di un cubo che contenesse tutte le possibili combinazioni dei collettivi a nostra disposizione.
La prima strada tentata, è stata quella di inserire i dati nel nostro database, combinandoli tramite una logica applicativa. Tuttavia questa soluzione era afflitta da un grave problema: richiedeva circa 10 giorni per portare a termine tutta l’operazione

Sono stati momenti abbastanza terribili, perchè siamo stati assaliti dalla terribile sensazione di non aver poi tempo per testare i dati (o addirittura di non terminare in tempo per il golive). Poi la geniale intuzione di Alberto: la funzione CUBE. Ecco la sintassi:

select pippo, paperino
from paperopoli
group by pippo, paperino with cube

Visto che i tempi necessari si son ridotti da 10giorni a circa 1minuto (stiamo parlando di oltre 1milione di record), è stata davvero la chiave di volta di tutto il progetto!

ps: un grazie anche a Massimo che, anche senza saperlo, è stato fondamentale in questa impresa!

Related Posts:

  • Nessun post correlato