2010-03-11 7 views
5

Ho bisogno di memorizzare una grande quantità di piccoli oggetti di dati (milioni di righe al mese). Una volta salvati, non cambieranno. Ho bisogno di:Magazzino di dati gratuito - Infobright, Hadoop/Hive o cosa?

  • memorizzarli in modo sicuro
  • li usano per l'analisi (per lo più tempo-oriented)
  • recuperare alcuni dati grezzi di tanto in tanto
  • Sarebbe bello se potesse essere utilizzato con JasperReports o BIRT

Il mio primo colpo è stato Infobright Comunità - solo una colonna-oriented, di sola lettura meccanismo di memorizzazione per MySQL

D'altra parte, la gente dice che l'approccio NoSQL potrebbe essere migliore. Hadoop + Hive sembra promettente, ma la documentazione sembra scadente e il numero di versione è inferiore a 1.0.

ho sentito parlare di Hypertable, Pentaho, MongoDB ....

Avete suggerimenti?

(Sì, ho trovato alcuni argomenti qui, ma era o due anni fa)

Edit: Altre soluzioni: MonetDB, InfiniDB, LucidDB - Che cosa ne pensi?

+0

Il numero di versione non è importante. HDFS/Hadoop funzionano bene, ma sono interessanti solo se si hanno diversi nodi per i dati e l'analisi. – Leonidas

+0

Se si desidera un avvio rapido, si consiglia di utilizzare pentaho e un database pentaho supporta. Penso che le risposte di seguito si concentrino maggiormente sull'accesso ai dati, ma nello sviluppo del data warehouse, anche gli strumenti sono importanti. – elprup

+0

@Piotr: Questa è una domanda di due anni senza una risposta. Ho bisogno di una soluzione con le stesse caratteristiche. Cosa hai deciso di usare alla fine? –

risposta

0

Se stai cercando compatibilità con gli strumenti di reporting, qualcosa basato su MySQL può essere la scelta migliore. Per quanto riguarda ciò che funzionerà per te, Infobright potrebbe funzionare. Ci sono anche molte altre soluzioni, tuttavia potresti anche voler guardare il vecchio MySQL e la tabella degli archivi. Ogni record è compresso e memorizzato e, IIRC, è progettato per il tuo tipo di carico di lavoro, tuttavia penso che Infobright dovrebbe ottenere una compressione migliore. Non ho nemmeno usato davvero, quindi non sono sicuro che funzionerà meglio per te.

Per quanto riguarda i negozi di valore-chiave (ad es. NoSQL), sì, possono funzionare altrettanto bene e ci sono un sacco di alternative là fuori. So che CouchDB ha "punti di vista", ma non ho avuto l'opportunità di usarli, quindi non so quanto bene funzionino.

La mia unica preoccupazione per il set di dati è che, dal momento in cui hai menzionato il tempo, potresti voler assicurare che qualsiasi soluzione tu usi ti consenta di archiviare i dati dopo un certo periodo di tempo. È prassi comune del data warehouse conservare solo N mesi di dati online e archiviare il resto. Questo è il punto in cui il partizionamento, come implementato in un RDBMS, è molto utile.

2

Si potrebbe anche considerare GridSQL. Anche per un singolo server, è possibile creare più "nodi" logici per utilizzare più core durante l'elaborazione delle query.

GridSQL utilizza PostgreSQL, quindi è anche possibile sfruttare le tabelle di partizionamento nelle sottotabelle per valutare più rapidamente le query. Hai menzionato che i dati sono orientati al tempo, quindi sarebbe un buon candidato per la creazione di sottotitoli.

+0

Solo aggiungendo, sì, lavoro per EnterpriseDB , chi sponsorizza GridSQL. – Mason

+0

Sembra che GridSQL sia morto di recente e gli sviluppatori si siano trasferiti a Stado. –

3

Sto avendo lo stesso problema qui e fatto ricerche; due tipi di depositi per BI:

  • orientato in colonna. Gratuito e conosciuto: monetDB, LucidDb, Infobright.InfiniDB
  • distribuita: hTable, Cassandra (anche colonna orientato teoricamente)
  • documento orientato/MongoDb, CouchDB

La risposta dipende da ciò che si ha realmente bisogno:

http://www.mysqlperformanceblog.com/2010/01/07/star-schema-bechmark-infobright-infinidb-and-luciddb/

  • Se le righe vengono aggiunte in tempo reale .. poi colonna orientato DB sono cattivi. Puoi scegliere due di avere due DB separati (questa è la mia scelta: un noSQL per l'alimentazione reale delle statistiche dal fronte e le statistiche in tempo reale. L'altro DB orientato alle colonne per la BI). O rivolgetevi a qualcosa che mischia colonne orientate (per richieste out) e distribuzione (per scritture)/come Cassandra.

documento orientato DB non sono adatti per la BI, sono più utili per le questioni CRM/CMS in cui è necessario un accesso frequente ad una particolare riga

Per quanto riguarda la scelta esatta all'interno di una categoria, sono ancora indeciso. Cassandra in distribuzione, e Monet o InfiniDB per CODB, sono leader. Si dice che Monet abbia problemi nel caricare tabelle molto grandi perché esegue gli indici in memoria.