In passato ero solito creare WebAnalytics utilizzando cubi OLAP in esecuzione su MySQL. Ora un cubo OLAP il modo in cui l'ho usato è semplicemente un grande tavolo (ok, è stato memorizzato un po 'più intelligente di quello) dove ogni riga è fondamentalmente una misura o un insieme di misure aggregate. Ogni misura ha un mucchio di dimensioni (vale a dire quale nome di pagina, useragent, ip, ecc.) E un gruppo di valori (cioè quante visualizzazioni di pagina, quanti visitatori, ecc.).OLAP può essere eseguito in BigTable?
Le query che si esegue su un tavolo come questo sono in genere di forma (meta-SQL):
SELECT SUM(hits), SUM(bytes),
FROM MyCube
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot'
GROUP BY hour
in modo da ottenere i totali per ogni ora del giorno selezionato con i filtri menzionati. Un inconveniente era che questi cubi di solito significavano una scansione completa della tabella (vari motivi) e questo significava una limitazione pratica alla dimensione (in MiB) si potevano fare queste cose.
Attualmente sto imparando i dettagli di Hadoop e simili.
L'esecuzione della query precedente come una mappa su un BigTable sembra abbastanza semplice: Basta fare 'ora' la chiave, filtrare nella mappa e ridurre sommando i valori.
È possibile eseguire una query come ho mostrato sopra (o almeno con lo stesso output) su un tipo di sistema BigTable in "tempo reale" (ovvero tramite un'interfaccia utente e l'utente ottiene la risposta ASAP) anziché il batch modalità?
In caso contrario; qual è la tecnologia appropriata per fare qualcosa di simile nel regno di BigTable/Hadoop/HBase/Hive e simili?
Grazie per la sugegstion zohmg. Secondo il loro sito web: "L'idea di base è precalcolare gli aggregati e archiviarli in modo efficiente in termini di lettura". La mia idea è di iniziare con un insieme di dati e aggregati in base alle esigenze degli utenti in quel momento. –
Si desidera eseguire il preaggregamento in modo che per ciascuna combinazione univoca di dimensioni si abbia al massimo una riga; l'aggregazione in fase di esecuzione è quindi una questione di riavvolgimento della sezione trasversale appropriata del cubo. Zohmg può indicare la strada per te su come farlo. Conosco almeno una rete pubblicitaria che utilizza HyperTable o HBase per eseguire dashboard in tempo reale per i propri clienti, quindi è fattibile. – SquareCog
Zohmg ora è abandonware. – rjha94