Domanda

Sto usando Saiku 2.5 e non sono sicuro di come modellare la seguente situazione:

Didtiones:

  • Categoria (~ 20 righe)
  • Sottocategoria (~ 100 righe)
  • Sottosubicategoria (~ 1200 righe)
  • SubsubSubCategory (~ 8000 righe)
  • Altro1 (~ 100000 righe)
  • Altro2 (~ 50000 righe)
  • Altro3 (~ 500 righe)
  • Altro (~ 500 righe)
  • Altro5 (~ 200 file)
  • Altro (~ 200 righe)
  • Altro7 (~ 100 righe)
  • Altro (~ 10 righe)

Misurazione:

  • Fatti (~ 20000000 righe)

Relazioni

  • Il fatto ha altri [ d
  • Il fatto ha sottosubsubcategoria
  • SubsubsubCategory ha una sottosubicategoria
  • La sottosubategoria ha sottocategoria
  • La sottocategoria ha una categoria

Mi piacerebbe sapere se è migliore per le prestazioni, de-normalizzare tutte le categorie in una tabella o lasciarla così com'è. Ogni tabella "simile a una categoria" ha una varchar (8) e due text ().

È stato utile?

Soluzione

Mi piacerebbe sapere se è migliore per le prestazioni, de-normalizzare tutte le categorie in una tabella o lasciarla così com'è.

Stai ottimizzando un data warehouse per le prestazioni di lettura, quindi opterei per denormalizzare le tabelle di categoria. Stai parlando di circa 8.000 righe o una pagina e mezzo nella maggior parte dei database relazionali. Potresti tenere questa tabella in memoria.

Sembra che uno schema stellare funzionerebbe per te. Se le altre dimensioni hanno relazioni, sarebbe garantito uno schema del fiocco di neve.

Altri suggerimenti

Le tue categorie dovrebbero trovarsi in una singola tabella, poiché i join di 8k righe sono facili.

Altro dovrebbe essere diviso in alcuni tavoli. Ciò consentirà a Mondrian di eseguire il join a livelli elevati (bassa cardinalità) quando possibile e quindi funzionare meglio.

Mondrian gioca bene con entrambi gli scenari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top