Pentaho: Il modo migliore per convertire una data in una dimensione del cubo drill-down-grado?
Domanda
Il mio tavolo datawarehouse contiene solo una singola colonna date
SQL, ma voglio essere in grado di drill-down utilizzando i livelli di consueto anno / trimestre / mese / giorno.
ho potuto creare manualmente nuova colonna utilizzando Pentaho Kettle, e quindi creare i livelli di uno-di-uno in Pentaho Schema Workbench.
Ma questo è un compito così comune (Credo che tutti la creazione di vendita-correlati cubetti deve farlo), quindi sono sicuro Pentaho sviluppato qualcosa da fare in pochi secondi. Qual è il modo consigliato di farlo?
Soluzione
Non so costruito in modo per farlo.
Ecco un trucco bello che ho imparato qualche anno fa: Avere una tabella chiamata Tempo con una riga per ogni giorno / ora, a seconda delle vostre preferenze risoluzione.
Per le date, ciascuna di queste righe contiene:
Date (date) - 2010-09-28
Day (int) - 28
Month (int) - 9
Year (int) - 2010
E si può aggiungere come molti campi come ti piace: Quarter, Day in settimana, giorno dall'inizio anno, settimana durante l'anno, ecc.
Questa tabella è pre-popolato con le date. Quando la query richiede cubo come aggregazioni, è possibile unire la tabella tempo con la tabella di data-warehouse, per creare qualsiasi aggregazione ti piace.
Un bel vantaggio di questo approccio è che utilizzando outer join nella query, è anche possibile aggiungere date vuote al report e non solo aggregato in date che contengono valori. Questa è una caratteristica importante se si drill-down per le dimensioni molto sparse.