Pensiamo ai casi d'uso ETL per un momento.
- Estratto.
- Leggere i database tramite un adattatore DB-API generico.
- Leggere file flat tramite un adattatore simile.
- Leggere fogli di calcolo tramite un adattatore simile.
- Pulire.
- regole arbitrarie
- Filtrare e rifiutare
- Sostituire
- aggiungere colonne dei dati
- Profilo dati.
- Tabelle di frequenza statistica.
- Trasforma (vedi pulire, sono due casi d'uso con la stessa implementazione)
- fare ricerche di conformità dimensionali.
- Sostituire valori o aggiungere valori.
- Aggregato.
- In qualsiasi punto in cantiere
- carico.
- Oppure preparare un file flat ed eseguire il caricatore del prodotto DB.
Inoltre, ci sono alcuni requisiti aggiuntivi che non sono casi d'uso singola.
Ogni singola operazione deve essere un processo separato che può essere collegato in una pipeline Unix, con singoli record che scorre da un processo all'altro. Questo utilizza tutte le risorse della CPU.
È necessario un qualche tipo di pianificazione temporale per luoghi che hanno difficoltà a risolvere le loro precondizioni ETL.
È necessario un programma basato su eventi per i punti in cui è possibile individuare le condizioni preliminari per le fasi di elaborazione ETL.
Nota. Dato che ETL è vincolato all'I/O, più thread non ti servono. Poiché ogni processo viene eseguito per un lungo periodo di tempo, soprattutto se si dispone di migliaia di righe di dati da elaborare, il sovraccarico dei processi "pesanti" non guasta.
fonte
2009-08-24 10:26:51
Quali casi di utilizzo hai in questo momento? Cosa ti serve che faccia? Si prega di elencare i casi d'uso attuali in modo che possiamo commentare su quelli. –