processo di ETL per caricare la dimensione temporale. Esempio di utilizzo del ETL Talend.

Dopo aver individuato le origini dei dati, possiamo procedere con la costruzione delle tabelle fisiche del nostro modello e lo sviluppo del ripieno. Inizia il processo con la dimensione temporale. Come detto, questa dimensione non dipende dal nostro ERP o altri sistemi esterni, ma la build dal calendario. Genera tutti i record necessari a tale tavolo, per un periodo di 20 anni, che va dal 1 ° gennaio 2000 (per i dati storici anteriori carica anche nel nostro DW) fino al 31 dicembre 2020.

La definizione fisica della tabella non è cambiata dopo l'analisi delle fonti di dati, ed è la seguente:

Progettazione fisica di Tabella delle dimensioni Time in MySql

I processi saranno realizzate utilizzando Talend seguirà (come abbiamo visto in un blog precedente):


Trasformazioni di creare dimensione temporale

Useremo Talend di opzione di generazione in Java (si potrebbe utilizzare anche il linguaggio Perl).Utilizzo di Java significa che tutti i processi e le trasformazioni che si definiscono "tradurre" il linguaggio Java internamente. Sebbene non sia strettamente necessario conoscere il linguaggio Java per lavorare con Talend, sapendo che li agevolerà notevolmente il lavoro con lo strumento e ci permetterà di definire il nostro codice per la lavorazione o processi che non sono inclusi come standard.

Talend è basato su l'ambiente di sviluppo Eclipse. Si tratta di un ambiente grafico con funzionalità ricca dove vengono effettuate la definizione delle trasformazioni in un menu molto intuitivo, cliccando e trascinando i componenti e stabilire relazioni tra di loro.Include ambiente di debug per analizzare i processi ed i loro errori, nonché la possibilità di tracce di monitorare i processi quando abbiamo sviluppato e validato.

L'immagine seguente è un esempio di lavoro creato con Talend:


ambiente grafico di Talend strumento

I componenti più importanti all'interno dell'ambiente grafico sono:


Oggetti Talend Repository

Repository: include tutti gli oggetti che possono essere definiti con Talend, cadendo da un albero come segue:

  • Modelli di Business: Talend è un semplice strumento grafico dove possiamo definire i nostri modelli di business.In questa cartella individuare i diversi modelli imprenditoriali che hanno "disegnato" con Talend. Lo strumento contiene gli elementi grafici più comuni.
  • Disegni di lavoro, un progetto di trasformazione o l'integrazione dei dati è costituito da più processi o lavori che possono essere definiti e classificati in una struttura di cartelle per organizzare e classificare.In questa sezione esaminiamo i posti di lavoro diversi e abbiamo definito il modo in cui abbiamo classificato.
  • Contesti: contesti di esecuzione sono processi. Essi possono definire costanti o parametri che ci viene chiesto di eseguire un processo e si possono usare i vari componenti di un lavoro. I contesti possono anche essere caricati in fase di esecuzione da file.
  • Routine: il luogo dove possiamo vedere le routine di codice sviluppato da Talend (che poi può essere utilizzato nelle trasformazioni) e dove possiamo aggiungere la nostra routine proprio per eseguire operazioni o calcoli o trasformazioni per le quali non abbiamo un metodo standard.Le routine vengono programmati in Java (o Perl se avete selezionato la lingua).
  • Template SQL: istruzioni SQL sono modelli predefiniti che possiamo utilizzare o personalizzare.
  • Metadati: il luogo dove si definiranno i metadati del progetto. Queste definizioni di componenti che verranno poi essere riutilizzati in tutti i processi di progettazione di cambiamento. Ad esempio, i metadati possono definire le connessioni ai database, recuperare lo schema di un database e li hanno documentato (con tabelle, viste, ecc), le istruzioni SQL definire, identificare i modelli dei diversi tipi di file, ecc Questo ci permette gli elementi definiti in un unico luogo e riutilizzarli in tutto il processo.Il Metadata Repository centralizza tutte le informazioni sul progetto e garantisce la coerenza in tutti i processi di integrazione. I metadati relativi alla sorgente e la destinazione dei processi di integrazione dei sistemi è facilmente caricato nel repository di metadati attraverso strumenti avanzati di analisi dei database o file forniti da vari partecipanti. Le caratteristiche definite nei metadati vengono ereditate dai processi che fanno uso di esse.
  • Documentazione: possiamo caricare i file di progetto di documentazione della nostra analisi e lo sviluppo, la loro classificazione in cartelle. Il collegamento può essere fatto con un link o caricare il file direttamente nel repository. Questa utility ci permette di essere centralizzata in un unico luogo tutti gli elementi di un progetto di integrazione di dati.
  • Cestino: eliminare gli oggetti che vanno nel Cestino e riportarlo lì, se necessario.

Designer di lavoro: è uno strumento da cui partire per manipolare le varie componenti che compongono un lavoro, che stabilisce le relazioni tra i vari elementi.

pg "/>

Job Designer

Quando si lavora con un lavoro, in fondo, hanno un insieme di schede da cui si può eseguire varie azioni, come ad esempio la fissazione di un contesto per il lavoro, l'impostazione della proprietà, eseguire il lavoro e impostare la modalità di esecuzione, modificare le proprietà componenti di posti di lavoro, la pianificazione dei processi, stabilire le gerarchie in posti di lavoro, ecc.

Infine, sul lato destro della domanda abbiamo il Component Palette, che sono diversi Talend fornisce i controlli per l'uso nei nostri posti di lavoro.Esse sono classificate per funzione.


Component Palette

Alcuni dei componenti disponibili in Talend sono:

- Business Intelligence: un gruppo di connettori che soddisfano le esigenze di lettura o la scrittura in database multidimensionali OLAP o, partenze alle relazioni Jasper, il cambiamento di gestione di database di dimensioni lentamente cambiando, ecc (tutte legate alla Business Intelligence .)

- Business: connettori per la lettura e la scrittura di tipo sistemi CRM (Centric, Microsoft CRM, Salesforce, Zucchero, Vtiger) o per leggere e scrivere dai sistemi SAP.Inoltre, consentono di lavorare con sistema di gestione documentale Alfresco.

- Custom Codice: componenti per definire il nostro codice personalizzato ed utilizzarla integrati con altri componenti di Talend. Siamo in grado di scrivere i componenti in Java e Perl, così come le biblioteche di carico o personalizzare i comandi di Groovy.

- Data Quality: componenti per la gestione dei dati di qualità, come il filtraggio, calcoli CRC, ricerche per la logica fuzzy, valori di rimpiazzo, contro la convalida dello schema di metadati, pulito duplicati, ecc

-

- ELT: componenti per l'utilizzo dei database in modalità ELT (con le modifiche e le lavorazioni tipiche di questi sistemi.)

- File: comandi per la gestione dei file (esistenza di verifica, copia, cancellazione, lista, proprietà), per leggere i file di diversi formati (testo, excel, delimitato, XML, email, ecc) e la scrittura su di essi.

- Internet: componenti per l'accesso contEnid archiviati online i servizi Web, feed RSS, SCP, mamma, email, server FTP e simili.

- Diari & Errors: controlli di gestione e registra gli errori nella definizione dei processi.

- Varie: i vari componenti come i messaggi di finestre, la verifica del funzionamento dei server, i record di generazione, gestione portata variabile, ecc

- Orchestrazione: componenti per generare le stringhe e orchestrazione compiti e posti di lavoro di trasformazione e di subjobs definita nella nostra trasformazioni (cicli di generazione, l'esecuzione di lavori o post precedente, i processi in attesa di file o dati, ecc.)

- Lavorazione: componenti per l'elaborazione dei dati flussi, ad esempio l'aggregazione, la mappatura, le trasformazioni, filtri, denormalizzazione, ecc

- Sistema: componenti per l'interazione con il sistema operativo (esecuzione di comandi, variabili d'ambiente, ecc.)

- XML: componenti per lavorare con i dati XML strutture, delle operazioni di analisi, la convalida o la creazione di strutture.

Per avere un'idea di come lavorare con Talend, è interessante vedere una demo di 5 minuti di Talend web (raggiungibile da questo link ).Inoltre è possibile vedere il seguente video dimostrativo di come generare dati di test in una tabella MySQL.

Inoltre, per approfondire ulteriormente È possibile scaricare il Manuale d'uso dello strumento e dei componenti Guida di riferimento (in inglese) a questo link .

lavoro Talend nella compilazione della dimensione Time

Ora che sappiamo che è un po 'di Talend, la società si vede un esempio pratico.Abbiamo bisogno di generare un flusso di date a partire dal 01.01.2000, 2020/12/31 arriva fino ai nostri giorni (con le date che portano 20 anni nella dimensione).

Per rendere il pPROCESSO cosa definiamo le seguenti operazioni:

1) ciclo che viene eseguito 10.000 volte, con un contatore di passare da 0 a 9999 (utilizzando il componente del gruppo tLoop Orchestration).

2) Il ciclo chiama il generatore di controllo documenti, che genera un log con la data 2000/01/01 (utilizzando il gruppo di componenti tRowGenerator varie).

3) la data RowGenerator passa un trattamento (MAP), che aggiunge al momento in cui il contatore della fase 1 (con questo stiamo aumentando la data di inizio ogni giorno e di generare tutte le date necessarie.)Usiamo il componente TMAP Processing Group.

4) le date in cui abbiamo generato un altro trattamento (MAP), in cui per ogni data, si generano tutti gli attributi della dimensione del tempo come la tabella di trasformazione che hanno indicato in precedenza (mese, anno, giorno, giorno della settimana, trimestre semestre, ecc.) Usiamo il componente TMAP Processing Group.

Abbiamo dovuto definire una routine in Java per generare il numero corretto di settimane l'anno di ogni data e per la generazione di dati di trimestri, semestri, vacanze e week-end.Ad esempio, per la generazione di settimane abbiamo scritto il seguente codice Java:

/ / Template routine Java 
pacchetto di routine; 
importazione java.util.Calendar; 
import java.util.Date; 
{Date classe pubblica 
public String semana_del_anyo statico (Data date1) { 
Calendar c1 = Calendar.getInstance (); 
c1.set (Calendar.DAY_OF_WEEK, Calendar.MONDAY) 
c1.setMinimalDaysInFirstWeek (1); 
c1.setTime (data1); 
settimana int = c1.get (Calendar.WEEK_OF_YEAR) 
se (settimana <10) { 
ritorno (0 + Integer.toString (settimana)); 
Else {} 
ritorno (Integer.toString (settimana)); 
}} 

5) Noi filtro per eliminare i record che sono più vecchi di 2020/12/31, come tale vogliamo caricare sul database.Usiamo il componente tFilterRow Processing Group.

6) Inserire i record nel database Enobia in tabella DWD_TIEMPO, utilizzando il componente tMySqlOutput, Gruppo Database, MySql. Se i record già presenti nel database vengono aggiornati.

Lo schema completo di Giobbe potrebbe essere:


Job riempimento dimensione Time

Questo era il nostro primo contatto con uno strumento di ETL.Senza di programmazione (o quasi, perché abbiamo dovuto preparare una routine in java per il trattamento di settimane e altri attributi delle date), abbiamo riempito con i datis reale la prima tabella / dimensione del nostro modello.