Come eseguire l'analisi di riepilogo sui database di produzione?

2

Voglio utilizzare i dati di produzione per generare le metriche "attività utente".

Il mio pensiero è di impostare un processo cron che legga regolarmente i database di produzione per riepilogare l'attività degli utenti e quindi memorizza i risultati in un database di metriche separato. Questo database delle metriche può quindi essere utilizzato per generare varie dashboard.

Tuttavia, leggere direttamente i database di produzione per generare metriche sembra abusivo - da qui la mia domanda.

Qual è la migliore pratica per questa situazione?

    
posta another_user10293412 21.02.2016 - 05:15
fonte

2 risposte

5

Perché leggere i dati "abusivi"?

Presumibilmente, l'azienda ha un certo livello di necessità di reporting operativo e analitico. Come è fatto oggi? Nelle organizzazioni più piccole, in genere ciò implica l'esecuzione di query sui database di produzione che le applicazioni OLTP stanno manipolando. Ad un certo punto, il carico che il reporting immette sul sistema aumenta e vi è il desiderio di separare il carico OLTP con priorità più alta dal carico di report con priorità più bassa. A quel punto, ci sono varie opzioni architettoniche come il mantenimento di una replica del database di produzione che si trova a pochi secondi o pochi minuti dietro il sistema OLTP, spostando i report o creando un data warehouse e spostando i report lì. La costruzione di un data warehouse comporta generalmente, tra le altre cose, la costruzione e il mantenimento di tabelle aggregate di qualche tipo.

Ovviamente, ciò significa in genere che sono necessari server aggiuntivi, licenze di database aggiuntive, processi aggiuntivi da monitorare e in genere comporta l'aggiunta di complessità all'ambiente di produzione. Progettare e costruire l'approccio del database di replica o l'approccio del data warehouse richiede generalmente una buona dose di impegno e pensiero: diversi database forniscono una vasta gamma di strumenti diversi, ci sono suite ETL per gestire la creazione del data warehouse, si inizia a preoccuparsi cose come la discendenza dei dati, ecc.

    
risposta data 21.02.2016 - 05:22
fonte
1

Se il tuo database principale è relazionale, un RDBMS, come ad esempio MySQL, dovresti memorizzare i dati da cui vuoi generare le statistiche in qualcosa come Elastic Search. Con questo approccio il tuo db primario è la tua memoria persistente, mentre copi i dati rilevanti nel tuo indice di ricerca in ES. Potresti quindi fare ogni genere di cose divertenti con i tuoi dati!

È molto comune avere più database per gli stessi set di dati. Sono tutti lì per raggiungere un compito specifico e per le metriche avanzate un motore di ricerca è perfetto.

    
risposta data 21.02.2016 - 13:06
fonte

Leggi altre domande sui tag