2011-11-10 8 views
12

Ci sono dei vantaggi in termini di prestazioni nell'utilizzo di un server ROLAP come Mondrian su un database MySQL, invece di interrogare semplicemente il database MySQL?Perché utilizzare ROLAP invece di MySQL semplice?

Sto chiedendo questo nel contesto in cui la maggior parte delle mie query sarà relativamente semplice (come trovare tutte le vendite in un certo periodo), ma la dimensione del database è piuttosto grande (centinaia di migliaia di voci) .

La mia idea era di usare OLAP per velocizzare le query, ma ora sono confuso se questo sia effettivamente lo scopo di questa tecnologia, specialmente nel suo modulo ROLAP. Durante il tentativo dell'API olap4j, mi sono reso conto che posso usarlo per creare query MDX senza nemmeno avere un vero server OLAP (avendo solo un database relazionale e uno schema OLAP). Come potrebbe essere utile in termini di prestazioni?

Grazie

+1

"* centinaia di migliaia *" non è considerato "piuttosto grande". Centinaia di milioni sarebbero. –

+0

Sì, hai ragione. Questa è la dimensione che ho ora, ma sicuramente crescerà in futuro. – Epicurus

risposta

10

Dipende da come avete intenzione di usarlo.

OLAP è uno strumento per semplificare l'analisi complessa dei dati. Se le query sono statiche e semplici, non utilizzare ROLAP. Aggiungerebbe inutili spese generali.

D'altra parte, se è necessario eseguire analisi dei dati interattive complesse e dettagliate per reporting e business intelligence, utilizzare ROLAP in ogni caso.

UPDATE: Se avete bisogno di OLAP ad alte prestazioni per MySQL, si dovrebbe dare un'occhiata a this post on the MySQL performance blog per una discussione delle differenze di prestazioni dei vari approcci e strumenti.

3

OLAP consente di analizzare i dati in più dimensioni; ogni dimensione probabilmente (se non sempre) è una "gerarchia" (cioè, albero). Ciò consente di passare dall'immagine grande (dati altamente aggregati) ai dettagli quando richiesto (drill down).

Inoltre, la potenza del linguaggio MDX e/o delle misure calcolate consente di eseguire query complesse piuttosto difficili se non impossibili da eseguire in puro SQL.