Come unire due sorgenti di dati con il componente tMap

Questo tutorial spiega come unire due sorgenti di dati in tutta semplicità con il componente tMap.

In questo tutorial viene impiegato Talend Open Studio for Data Integration versione 6.

1. Creazione di un nuovo job e aggiunta di un componente sorgente

In un nuovo job, aggiungi il file dei metadati "movies" come componente "tFileInputDelimited".

L'ultima colonna del file "movies" corrisponde a "directorID". In questo tutorial, utilizzeremo questa colonna per unire il file "movies" alla colonna "directorID" del file "directors".

2. Creazione di un nuovo file di metadati basato sul file "directors.txt" e aggiunta di tale file come seconda sorgente

  1. Crea un nuovo file di metadati delimitato denominato directors.
  2. Per specificare un file campione, fai clic su Browse (Sfoglia) accanto al campo File, seleziona il file txt dal disco locale e fai clic su Open (Apri).
  3. In questo file, il delimitatore di campo è la virgola. Per modificare il delimitatore, seleziona Comma (Virgola) nell'elenco a discesa Field Separator (Separatore campo).
  4. Per aggiornare la schermata in modo che rifletta la modifica apportata, fai clic sul pulsante Refresh Preview (Aggiorna anteprima).
    Nota: questo file presenta solo due colonne: "directorID" e "directorName".
  5. Modifica i nomi delle colonne in directorID e directorName e imposta la lunghezza del campo "directorName" su 40. Il nuovo file di metadati, "directors 0.1", viene visualizzato in corrispondenza di Metadata (Metadati) nel Project Repository (Repository progetti). Ora puoi unire la colonna "directorID" del file "movies" alla colonna "directorID" del file "directors".
  6. Aggiungi il file dei metadati "directors" al job come seconda sorgente di input.

3. Aggiunta e configurazione di un componente tMap per unire i due componenti sorgente

  1. Aggiungi un componente tMap a Job Designer (Progettazione job).
  2. Per stabilire un flusso di dati tra i due componenti verso il componente tMap, per prima cosa, collega movies al componente tMap_1, quindi collega "directors" a tMap_1.
  3. Per rinominare il collegamento tra il componente sorgente e i componenti tMap, fai doppio clic sul collegamento e digita movies. Procedi allo stesso modo per rinominare l'altro collegamento directors.
  4. Per aprire la procedura guidata del componente tMap, fai doppio clic sul componente.
    Come puoi vedere, nella sezione sinistra della procedura guidata, "movies" e "directors" sono visualizzati come input del componente tMap.
  5. Per creare un nuovo flusso di dati di output, nella sezione output della procedura guidata tMap, fai clic sul pulsante [+], assegna al nuovo output il nome joinedOutput, quindi fai clic su OK. Viene creato un flusso di dati di output vuoto.
  6. Per aggiungere i campi "movieID", "title", "releaseYear" e "url" al flusso di dati di output, seleziona i quattro campi nell'input "movies" e trascinali nel flusso di dati di output. Allo stesso modo, aggiungi il campo "directorName" al flusso di dati di output dall'input "directors".
  7. Per configurare l'unione, seleziona la colonna "directorID" nella tabella "movies" e trascinala sulla colonna "directorID" della tabella "directors".

4. Memorizzazione del risultato in un file

  1. Per specificare una destinazione per l'output, aggiungi un componente tFileOutputDelimited in Job Designer (Progettazione job) e collega ad esso l'output joinedOutput del componente tMap.
  2. Per configurare il componente di output, nella vista Component (Componente) del componente, specifica percorso e nome del file di output e includi una riga di intestazione nel file di output.
  3. Per eseguire il job, fai clic su Run (Esegui) nella vista Run (Esegui).
  4. Per verificare il file moviesComplete.csv, seleziona la cartella in cui il file è stato creato e fai clic sul file.

Nota: per alcuni film non è riportato il nome del regista. Significa che questi film non presentano un directorID.

Comportamento predefinito nello strumento ETL:

  • Tutte le righe nella tabella di guida vengono visualizzate.
  • Se la condizione di unione non viene soddisfatta, i campi di output corrispondenti restano vuoti. Si tratta di una "left outer join".
    Al contrario, è possibile configurare l'unione in tMap come "inner join", per visualizzare solo le righe in cui la condizione di unione viene soddisfatta.