Domanda

Voglio creare un'applicazione di tipo 'Google Analytics per il web - vale a dire uno strumento web-based per fare un po' di report e grafici per la mia base di dati. Il problema è che il database è enorme, quindi non posso fare le query in tempo reale, perché ci vorrà troppo tempo e lo strumento sarà insensibile.

Come posso utilizzare un job cron per aiutarmi? Qual è il modo migliore per essere in grado di fare i miei grafici reattivo? Penso che avrò bisogno di denomalize alcune delle mie tabelle di database, ma come faccio a fare queste query più veloce? Quali valori intermedi posso archiviare in un'altra tabella del database per rendere più veloce?

Grazie!

È stato utile?

Soluzione

Business Intelligence (BI) è una disciplina abbastanza matura -. E troverete le risposte alle vostre domande in qualsiasi libro sul ridimensionamento dei database per la segnalazione e data warehousing

Un elenco di alto livello di tattica dovrebbe includere:

  • partizionamento (perché gli indici sono poco aiuto per la maggior parte di reporting)
  • tabelle riepilogative (generati di solito attraverso un processo batch presentare tramite cron)
  • è necessario un buon ottimizzatore (alcuni database come MySQL non - in modo da rendere poveri decisioni di giunzione)
  • interrogazione il parallelismo (alcune banche dati forniranno incrementi nella velocità lineari semplicemente dividendo la query in più thread)
  • stella-schema - un modello di buoni dati è cruciale per buone prestazioni

In generale, reporting dinamico batte i pantaloni fuori di reporting statico - quindi se siete alla ricerca di reporting potente che avevo appena tenta di copiare i dati in un modello appropriato, utilizzare inerti, eventualmente modificare il database per ottenere un buon ottimizzatore e l'appropriato caratteristiche piuttosto che eseguire report in batch.

Altri suggerimenti

Un modo semplice per avvicinarsi a questo sarebbe quella di creare una selezione di tabelle di sintesi per contenere i dati pre-aggregati. Questi potrebbero essere popolate in modo regolare utilizzando crontab.

In alternativa, può essere la pena di guardare qualcosa di simile a http://mondrian.pentaho.org .

mi sarei me stesso familiarizzato con "schemi a stella"

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