2009-07-29 16 views
6

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

+0

"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. –

+0

Consentitemi di indicarvi [la mia risposta a una domanda correlata] (http://stackoverflow.com/questions/51198/what-etl-tool-do-you-use/67784#67784). – runrig

+0

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

risposta

14

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.

+0

@duffymo: Ho appena dovuto saltare e aggiungere una base eccellente. –

+0

@ 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

2

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.

4

ETL è semplicemente ottenere dati, fare qualcosa, attaccare i dati da qualche parte.

  1. Estrazione: recupera i dati da qualche parte (la posizione è chiamata Sorgente). L'origine può essere file, tabelle di database, pipe, ecc.

  2. 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.

  3. 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:

  1. 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.

  2. 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.

  3. 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:

  1. un sacco di soldi, di classe Enterprise: ab initio, Informatica, Datastage IBM

  2. Meno costoso: Jitterbit, Talend

  3. 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.

Problemi correlati