Sono stato di recente esposto ad alcuni strumenti di ETL, come Talend e Apatar e mi chiedevo che cosa esattamente lo scopo/obiettivo principale di questi strumenti è in termini laymans. Chi li usa principalmente e se li usi, come sono (dal mio punto di vista) meglio della semplice scrittura di alcuni tipi di script.Strumenti ETL ... cosa fanno esattamente? In termini linguaggio profano piacimento
risposta
ETL sta per "Estrai/Trasforma/Carica". Questi strumenti prendono i dati da una fonte e la spostano in un'altra. È possibile mappare gli schemi dall'origine alla destinazione in modi unici, trasformare e pulire i dati prima che si spostino nella destinazione e caricare la destinazione in modo efficiente. È possibile pianificare i processi ETL come processi batch.
Quelle fonti di dati possono essere database relazionali, fogli di calcolo, file XML, ecc
Chi "usi" loro? Dipende da cosa intendi per "usi". Sono solo codice e la maggior parte delle volte sono programmati come parte delle normali operazioni. Non ci sono funzionalità per l'utente finale. Sono totalmente programmabili per i programmatori e le operazioni da eseguire.
Advantage over script? Nessuna. Si tratta di script scritti in un linguaggio specifico del dominio (DSL) incentrato interamente su "estrai" dall'origine, "trasforma" e "carica" sulla destinazione. La maggior parte della parte interessante dello script sono le mappature field-by-field in ogni fase.
@duffymo: Ho appena dovuto saltare e aggiungere una base eccellente. –
@ S.Lott: Sono lusingato che qualcuno come te pensi che qualsiasi cosa che ho scritto sia "eccellente". Grazie per il miglioramento e la formazione continua. Ho letto il tuo blog - davvero fantastico. Se potessi mai scalare la curva di apprendimento di Python abbastanza velocemente mi piacerebbe lavorare con qualcuno come te. – duffymo
ETL è comunemente utilizzato in applicazioni di data warehousing.
Ad esempio, è possibile disporre di un sistema di elaborazione ordini Oracle o Sql Server. Questo potrebbe mantenere tutti i dati fino alla spedizione dell'ordine, ma non vorrai anni di valore di vecchi ordini che intasano il sistema.
Inoltre, si potrebbero avere diversi sistemi come questo nella propria azienda, tutti sviluppati indipendentemente l'uno dall'altro.
Così, per consolidare i dati storici, si potrebbe configurare un data warehouse in cui i dati provenienti da tutti questi sistemi diversi finiscono, che consente un bel posto per fare reporting, pianificazione, data mining, ecc
Poiché tutte le origini dati sono diverse e i tipi di dati che si desidera archiviare a lungo termine potrebbero differire dai dati presenti nei database più piccoli, si configura un sistema ETL per la conversione e la gestione del flusso di dati.
ETL è semplicemente ottenere dati, fare qualcosa, attaccare i dati da qualche parte.
Estrazione: recupera i dati da qualche parte (la posizione è chiamata Sorgente). L'origine può essere file, tabelle di database, pipe, ecc.
Trasformazione: fare qualcosa per i dati di origine. Per esempio. la tua fonte contiene persona e data di nascita, quindi puoi "trasformare" i dati per determinare l'età della persona.
Caricare - Prendere i dati trasformati e metterli da qualche parte, ad esempio un database diverso o lo stesso database. Questo è chiamato il bersaglio. Quasi ogni tipo di archivio dati che può essere una fonte può anche essere utilizzato come destinazione.
Alcuni esempi:
estrarre dati da un data warehouse in DB2. Trasforma i dati utilizzando un filtro per inviare solo i dati che corrispondono a un determinato intervallo di date. Carica i dati filtrati in un data mart di SQL Server.
Estrarre dati da file XML. Trasforma i dati in modo che i dati vengano "appiattiti" in righe. Carica i dati in un file delimitato da virgola.
Estrarre i dati che arrivano su una pipe o una coda, come IBM MQ. Trasforma i dati analizzando i campi chiave nel messaggio in coda. Carica i dati analizzati in un mainframe.
Alcuni strumenti:
un sacco di soldi, di classe Enterprise: ab initio, Informatica, Datastage IBM
Meno costoso: Jitterbit, Talend
Da qualche parte in mezzo: SSIS per SQL Server
Chi li usa? Principalmente le aziende che devono costruire e mantenere complessi data warehouse investiranno in uno strumento ETL. Gli strumenti ETL sono spesso strumenti di progettazione visiva che consentono di creare un programma ETL visivamente, piuttosto che utilizzare solo tecniche programmatiche.
- 1. rails: cosa fanno esattamente hidden_field e hidden_field_tag?
- 2. beginTransaction(), endTransaction() e setTransactionSuccessful(). Cosa fanno esattamente?
- 3. SQL: cosa fanno esattamente le chiavi primarie e gli indici?
- 4. Che cosa fanno esattamente i comandi di Vagrant?
- 5. Cosa fanno esattamente le virgolette attorno al nome della tabella?
- 6. Che cosa significa esattamente scrivere un'API per un linguaggio OO?
- 7. Che cosa è esattamente Java?
- 8. Cosa fanno i comandi ft in Vim?
- 9. Posso generare un file HPROF a piacimento?
- 10. Che cosa è esattamente Rake?
- 11. Cosa succede esattamente quando premo il pulsante Invio in termini di interrupt system_read, assembly?
- 12. Cosa fa esattamente # in C?
- 13. Cosa sono TestExecutionListeners e cosa fanno?
- 14. Cosa significa xmlns = "" significa esattamente
- 15. Cosa fanno queste impostazioni di PHP mbstring?
- 16. Cosa fanno helper e helper_method?
- 17. '__exidx_start' e '__exidx_end' cosa fanno?
- 18. Cosa significa \ d + nei termini dell'espressione regolare?
- 19. Che cosa significa esattamente -1 refresh_interval in Elasticsearch?
- 20. Strumenti di analisi del linguaggio naturale: cosa c'è fuori e cosa no?
- 21. Cosa fanno i backtick in R?
- 22. Cosa fanno questi tre punti in React?
- 23. cosa fa esattamente numpy.apply_along_axis?
- 24. Che cosa significa "Costruire il linguaggio"?
- 25. Cosa significa^in termini di obiettivi?
- 26. cosa significa esattamente UrlReferrer?
- 27. Che cosa fanno esattamente le tabelle delle pagine shadow (per VMM)?
- 28. Cosa fanno esattamente h: c: f: e ui: denota nella libreria di tag JSF?
- 29. Open Source ETL framework
- 30. cosa fa esattamente la griglia 960?
"li utilizza"? Cosa intendi con "usi"? La gente li scrive. Poi loro scappano. "Usi" potrebbe significare qualsiasi cosa quando non ci sono "utenti finali" coinvolti. –
Consentitemi di indicarvi [la mia risposta a una domanda correlata] (http://stackoverflow.com/questions/51198/what-etl-tool-do-you-use/67784#67784). – runrig
Poiché il thread SO collegato è stato rimosso, [ecco una definizione di ETL] (http://www.dbasupport.com/forums/showthread.php?35663-what-s-ETL&p=155078#post155078) – runrig