Domanda

L'I lavori compagnia per produce un sistema di gestione dei contenuti (CMS) con diversi vari add-on per la pubblicazione, e-commerce, la stampa on-line, ecc Siamo ora in processo di aggiunta di "modulo di reporting" e ho bisogno di indagare quale strategia dovrebbe essere seguita. Il "modulo di reporting" è altrimenti noto come Business Intelligence , o BI.

Il modulo dovrebbe essere in grado di monitorare download voce, ricerche eseguite e produrre vari rapporti fuori di esso. In realtà, non è così importante il tipo di dati che viene agitato come nel lungo termine potremmo vogliamo essere in grado di spingere tutto ciò che pensiamo è necessario e ottenere un rapporto fuori di esso.

In parole povere, abbiamo due opzioni.

1 è quello di scrivere una soluzione basata su Apache Solr (in particolare, utilizzando https://issues.apache.org/jira/browse/SOLR-236 ). A favore di questo approccio:

  • libero / open source / buona qualità
  • usiamo Solr / Lucene altrove quindi sappiamo il dominio abbastanza bene
  • flessibilità totale su ciò che viene indicizzato come abbiamo potuto prendere dati in ingresso (in formato XML), spingerlo attraverso XSLT e mangimi per Solr
  • totale flessibilità di come per mostrare i risultati di ricerca. Simile al passaggio precedente, si potrebbe avere su modello di ricerca XSLT e mostrare i risultati indietro in qualsiasi formato che pensiamo sia necessaria
  • i nostri sviluppatori di frontend sia in grado di XSLT in modo montaggio di questo meccanismo per un altro cliente dovrebbe essere relativamente facile
  • Solr offerte realtime / testo completo / ricerca sfaccettata che sono assolutamente necessario per noi. Un prototipo rapido (basati su fonti Solr, 1M) è stato in grado di fornire risultati di ricerca in 55 ms. Il nostro massimo stimato di record è di circa 1 miliardo di righe (questo non è molto per tipica applicazione BI) e se arriva peggio in peggio, possiamo sempre guardare SolrCloud, ecc.
  • ci sono aziende che fanno cose molto simili utilizzando Solr (Honeycomb Lexicon, per esempio)

Contro di questo approccio:

  • SOLR-236 potrebbe o non potrebbe essere stabile, inoltre, non è ancora chiaro quando / se verrà rilasciato come parte del rilascio ufficiale
  • non ci sarebbe forse essere un po 'di cose che avremmo dovuto scrivere per ottenere qualche BI-specifiche caratteristiche di lavoro. Questo suona un po 'come reinventare la ruota
  • il problema più grande è che non sappiamo cosa ci potrebbe essere necessario in futuro (come ad esempio l'integrazione con qualche pezzo di software di BI, l'esportazione in Excel, ecc.)

2 è quello di fare un'integrazione con qualche pezzo libero o commerciale del software di BI. Finora ho guardato Wabit e avrà un aspetto a QlikView , possibilmente altri. A favore di questo approccio:

  • non c'è bisogno di reinventare la ruota, il software è (si spera) collaudato
  • ci avrebbe risparmiare tempo potremmo spendere risolvere i problemi specializzati su

Contro:

  • come siamo un negozio di Java e la nostra soluzione è cross-platform, che avrebbe dovuto eliminare un sacco di opzioni che sono sul mercato
  • Non sono sicuro di come flessibile software di BI può essere. Ci sarebbe voluto tempo per passare attraverso alcune offerte di BI per vedere se possono fare indicizzazione flessibile, in tempo reale / ricerca a testo integrale, completamente personalizzabili risultati, ecc.
  • mi è stato detto che l'open source di BI offerte non sono abbastanza maturi mentre incubatori commerciali (SAP, altri) fortune di costo, le loro licenze partono da decine di migliaia di sterline / dollari. Mentre io non sono contro la scelta commerciale di per sé, si sommano al prezzo complessivo che può facilmente diventare troppo grande
  • non è sicuro quanto bene BI è fatto per lavoro con i dati dello schema-less

Sono sicuramente non essere il candidato migliore per trovare l'opzione di integrazione approprate più sul mercato (soprattutto a causa della mancanza di conoscenze nel settore BI), comunque un bisogno di decisione da fare in fretta.

Qualcuno ha trovato in una situazione simile e potrebbe consigliare su quale strada take, o meglio ancora - consigli su eventuali vantaggi / svantaggi dell'opzione # 2? Il problema più grande è che io non so cosa non so;)

È stato utile?

Soluzione

Ho trascorso qualche tempo a giocare sia con QlikView e Wabit , e, devo dire, sono abbastanza deluso.

ho avuto l'aspettativa che l'intero settore della BI è in realtà un po 'di scienza sotto di essa, ma da quello che ho trovato che questo è solo un mero slogan. questo articolo di MSDN era in realtà un aprire gli occhi. L'intera attività della BI consiste nel prendere i dati da schemi ben normalizzato (lo chiamano OLTP ), mettendola in schemi meno normalizzati ( OLAP , snowflake- o stella di tipo ) e la creazione di indici per ogni aspetto che si desidera (gergo del settore per questo è cubo di dati ). Il resto è solo un po 'di scripting per ottenere i bei grafici.

OK, so che sto banalizzando le cose qui. So che potrebbe avere perso molti aspetti diversi (rapporti Nizza? Esportazione in Excel? Previsioni?), Ma da un punto di vista informatico Non riesco a vedere nulla al di là di un indice di database qui.

mi è stato detto che alcuni strumenti di BI supportano la compressione. supporti Lucene anche quello. Mi è stato detto che alcuni strumenti di BI sono in grado di mantenere tutte indice nella memoria. Per questo v'è una cache Lucene.

A proposito dei due candidati (Wabit e QlikView) - il primo è semplicemente immaturo (Ho decine di eccezioni quando si cerca di passo al di fuori di ciò che è stato suggerito loro demo), mentre gli altri funziona solo sotto Windows (non molto bello, ma ho potuto vivere con questo) e l'integrazione sarebbe probabile che richiedono me di scrivere qualche VBScript (bleah!). Ho dovuto spendere un paio d'ore sui forum QlikView solo per ottenere un controllo semplice intervallo di date di lavoro e non è riuscito perché il Personal Edition che avevo non sostenere progetti demo scaricabile disponibile sul loro sito. Non fraintendetemi, sono entrambi strumenti buoni per quello che sono stati costruiti per, ma io semplicemente non si vede alcun punto di fare l'integrazione con loro come non vorrei guadagno molto.

Per indirizzo (discutibile) immatureness di Solr I definirà un'API astratta in modo da poter spostare tutti i dati in un database che supporta le query full-text se qualcosa va storto. E se arriva peggio in peggio, posso roba sempre scrivere in cima Solr / Lucene se ne ho bisogno.

Altri suggerimenti

Se siete veramente in uno scenario in cui non si è sicuro di quello che non si sa penso che sia migliore per esplorare uno strumento open-source e valutarne l'utilità prima di immergersi nella propria implementazione. Potrebbe benissimo essere che utilizzando la soluzione open-source vi aiuterà a cristallizzare ulteriormente la propria comprensione e le caratteristiche richieste.
Avevo lavorato in precedenza w / un open-source soluzione chiamata Pentaho . Ho seriamente pensato che ho capito molto di più, imparando a utilizzare le funzioni di Pentaho per la mia fine. Naturalmente, come è il caso di lavorare w / la maggior parte delle soluzioni open-source, Pentaho sembrava essere un po 'intimidatorio in un primo momento, ma sono riuscito a ottenere un buon grip di esso in un mese di tempo. Abbiamo anche lavorato con bollitore ETL strumento e Mondrian cubi -. che credo la maggior parte degli strumenti di BI gravi in ??questi giorni si accumulano in cima
In precedenza, tutti questi componenti sono indipendenti, ma off-fine credo Pentaho ha preso possesso di tutti questi progetti.

Ma una volta che siete sicuri w / ciò che è necessario e ciò che non lo fai, io suggerirei di costruzione di alcuni tool di reporting di base del proprio sulla cima di un'implementazione Mondrian. Personalizzazione di un sofisticato strumento open-source può effettivamente essere un grosso problema. Inoltre, ci sono le licenze a diffidare di. Credo Pentaho è GPL, anche se si potrebbe desiderare di controllare su questo.

Per prima cosa dovrebbe chiarire quali sono i vostri rapporti dovrebbero mostrare. Quale funzione di reporting avete bisogno? Quali sono i formati di output vuoi? Vuoi mostrare nel browser (HTML) o come PDF o con un visualizzatore interattivo (Java / Flash). Dove sono i dati (database, Java, etc.)? Avete bisogno di report ad-hoc o solo alcuni rapporti codificati duri? Questo sono solo alcune domande.

Senza risposte a questa domanda è difficile dare una vera e propria raccomandazione, ma la mia raccomandazione generale sarebbe Rapporti I-net Cancella (utilizzato per essere chiamato i-net cristallino). Si tratta di uno strumento di Java. Si tratta di uno strumento commerciale, ma il costo è inferiore come SAP e co.

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