2013-02-21 12 views
6

fondo (scusate è così a lungo):R vs Pentaho cucchiaio come uno strumento di ETL

Sono stato incaricato con il mantenimento di un ETL che raccoglie una serie di dati di pubblicità online, circa 20-30 MB al giorno, e lo aggiunge alle tabelle in MySQL. Gli appaltatori esterni hanno costruito l'ETL con Pentaho Spoon (cucina, bollitore?). L'ETL consiste di circa 250 lavori e trasformazioni (.ktr, .kjb), ciascuno con circa 5 o 25 passi. È molto comune che qualcosa stia andando storto in questo grande processo. Ho scoperto che scrivere script R per fare la trasformazione e caricare è molto più efficiente. In effetti, penso che l'ETL potrebbe essere ridotto a meno di 1000 righe di codice oltre alle chiamate con RMySQL (cioè plyr!). Forse Python verrebbe utilizzato per estrarre i dati dal web.

Il mio uso di R ha portato ad alcune resistenze. I programmatori di computer che hanno progettato l'ETL non conoscono R quindi non potrebbero essere chiamati se me ne vado, e inoltre un sacco di tempo è stato investito nell'ETL di Spoon. Inoltre, un laico può seguire più facilmente i passi visivamente in Spoon, che negli script R. Da parte mia, penso che siamo impantanati dall'ETL. Tuttavia, non ho una grande voce in materia in quanto non ho esperienza in informatica.

Si prega di commentare se avete approfondimenti su quanto segue. Si prega so Sto ricercando questo per mesi e che ho letto molte opinioni, ma niente di più conciso e affidabili come SO fornisce in genere:

  1. R è stato chiamato non come scalabile da alcuni presso l'azienda. Penso al contrario soprattutto per via delle capacità di registrazione. Spoon ha limitato il puro output di logging, mentre tutti gli script R possono essere inseriti in un log giornaliero. Riparare ed evitare errori nel .ktrs è molto noioso, ma facile con l'impostazione di flag e/o la ricerca nel registro R. Qualche idea su questo?

  2. Questo porta a una grande domanda. Qual è il punto di ETL come Pentaho? Questo post Do I need a ETL?, mi porta a credere che se usi R o altri cosiddetti OOL, non c'è motivo di avere uno strumento come Pentaho. Qualcuno può confermare questo se è così? Ho davvero bisogno di una seconda opinione qui. Se è così, chi usa strumenti come Pentaho? Sono semplicemente persone senza lo sfondo della programmazione o qualcun altro? Vedo una discreta quantità di domande Pentaho su SO.

  3. È vero che molte più persone usano R e Pentaho, giusto? Questo http://www.kdnuggets.com/2012/05/top-analytics-data-mining-big-data-software.html fa sembrare così. Ad essere onesti, sono rimasto sorpreso dal fatto che Pentaho fosse il 5 °, il che mi fa doppiamente meravigliare chi usa Pentaho e se i miei dubbi sul suo utilizzo nel mio ambiente di lavoro sono mal riposti.

Grazie per eventuali risposte. Non intendo condiscendenza nei confronti degli utenti di Spoon o Spoon; Sono solo molto confuso e ho bisogno di opinioni esterne.

+1

Suggerisci di fare questa domanda più avanti quora allora - che sembra essere un posto migliore per soggettivo discussione/dibattito. Penso che sia un argomento eccezionale e vale la pena di discuterne da qualche parte. – Codek

+0

Interessante Non sono l'unico a pensarci: il BARUG vuole concentrarsi su un incontro. http://www.meetup.com/R-Users/events/47885552/?a=md1_evn&rv=md1&_af_eid=47885552&_af=event. FWIW, ho lasciato questo lavoro dopo solo 1 anno perché l'inefficienza mi stava facendo impazzire. Fortunatamente e penso che utilizzi efficacemente R in un ambiente di avvio ora. – StatSandwich

+0

Uso già data.table per i processi ETL in R, la sintassi è amichevole e ogni parentesi DT [,] può essere confrontata con il blocco di trasformazione in termini di ETL. Per quanto riguarda la domanda 1. è possibile effettuare un processo di registrazione per registrare tutto ciò che si desidera: tempo di trasformazione, elaborazione elaborata, messaggio di errore rilevato. Basta rilasciare il file log_dt (data.table/data.frame) su dbWriteTable. – jangorecki

risposta

4

R come strumento ETL? Questo è uno nuovo, ma qualsiasi cosa faccia galleggiare la vostra barca.

Direi questo però, se puoi ottenere 250 lavori e trasformazioni fino a meno di 1000 righe di R, direi che il tuo ETL è scritto male.

Insieme a questo è necessario pensare a supportabilità e scalabilità. Entrambi, immagino, sarebbero molto più semplici con uno strumento grafico come Spoon piuttosto che R code.

Personalmente penso che tu sia un errore e la domanda che fai è scritta male ma questo è un argomento diverso.

Per quanto riguarda i punti, la registrazione di PDI è molto buona ed è possibile effettuare il login praticamente come desiderato, il tutto in un'unica tabella di database se si desidera un registro consolidato.

ETL non andrà via, anche con l'avvento dell'amore per i pool di storage di dati non strutturati come HDFS, pensa anche all'analisi dei dati eseguita fuori R, se vuoi report o OLAP sopra i tuoi dati, sarà ancora bisogno di trasformarsi a prescindere.

È vero, più persone usano R vs Pentaho? Che tipo di domanda è? Da Pentaho presumo tu intenda PDI? Come può mai essere comparato? Uno strumento di analisi dei dati rispetto allo strumento ETL e vuoi contare gli utenti? eh? Se invece intendi R vs Pentaho nel suo complesso, allora indovinerei no. Stai guardando un rapporto su R vs Weka e adattandolo al tuo argomento ETL. Questo non si lava in un mese di domenica.

== EDIT == Okay, quindi hai circa 1000 linee di codice R & Python al momento. Man mano che i tuoi requisiti dei padroni si espandono, questo cresce lentamente nel tempo e, poiché stai cercando di raggiungere le scadenze, il nuovo codice è scritto in modo chiaro o documentato come il codice che hai al momento presente. Quindi nel tempo questo cresce a 5000 righe dire più alcuni script python. Poi un giorno sarai investito da un autobus, e una nuova persona deve entrare e gestire il tuo codice ... da dove iniziano, come fanno i cambiamenti?

Praticamente chiunque abbia un'esperienza di dati modesta potrebbe apportare una modifica a un ETL PDI qualora fosse necessario. Dove ci vorrebbe qualcuno con una conoscenza R abbastanza profonda per apportare modifiche a ciò che hai fatto.

Gli strumenti ETL sono progettati per essere veloci e facili da usare, offrono anche molto più di quanto R possa fornire in termini di connettività dati a sistemi diversi (ad esempio non db o file), anche se suppongo che questo sia il motivo le persone ricorrono a Python ecc. Detto questo c'è spazio per entrambi, c'è un plugin R per PDI che fa il giro della comunità che ho visto dimostrare. Oltre a ciò ho visto abbastanza migrazioni da TSQL a ETL nel corso degli anni per sapere per esperienza, che anche se mantenere il tuo ETL in codice può sembrare pratico a breve termine, a lungo termine porta solo più dolore .

D'altra parte se è possibile codificare 250 trasformazioni PDI fino a 1000 linee di R, il vostro ETL è probabilmente gonfiato dal cattivo design del vostro predecessore.

Se si desidera che esprima un'opinione sulla struttura ETL PDI esistente, è possibile organizzarla.

Tom

+0

Grazie per la risposta, Tom. Sapevo che la mia domanda non era stata scritta bene, anche con settimane di elaborazione nella mia testa.Hai assolutamente ragione che sono fuorviato - non ho idea di quello che sto facendo! Il punto qui è che questo è il mio primo lavoro. So come usare R. Non ho mai usato uno strumento ETL. Sembra che R faccia ciò che lo strumento ETL dovrebbe fare, oltre all'analisi dei dati, naturalmente. Si prega di descrivere perché la frase "R come strumento ETL" è pazzesca. Anche con tutte le mie ricerche, non so che diamine sia uno strumento ETL contro un mix di R e Python. Si prega di avvisare se sono necessarie ulteriori informazioni. – StatSandwich

+0

Modificherò la mia risposta .... –

+0

Sono d'accordo sul fatto che la mancanza di documentazione negli strumenti ETL non è così dolorosa come la mancanza di doc in R, ma tuttavia facendolo in R avrai più tempo per scrivere un documento migliore, un debug migliore capacità, sviluppo di richieste di modifica più semplice. Puoi organizzare il tuo codice in pacchetti ben documentati, avere un buon controllo delle versioni, cambiare facilmente i repository tra DEV/QA/PROD. – jangorecki