2ndQuadrant » greenplum https://blog.2ndquadrant.it Il blog sui database di 2ndQuadrant Italia Thu, 25 Jan 2018 11:36:59 +0000 en-US hourly 1 http://wordpress.org/?v=4.3.15 Importare dati in Greenplum da più file csv con Talend https://blog.2ndquadrant.it/etl_con_talend_su_greenplum/ https://blog.2ndquadrant.it/etl_con_talend_su_greenplum/#comments Wed, 14 Sep 2011 15:05:01 +0000 http://2ndblog.dev.xcon.it/etl_con_talend_su_greenplum/ Lavorando con i database, capita spesso di dover importare i dati direttamente da uno o più file CSV. Esistono molteplici strumenti per farlo e spaziano dal copy di psql, via linea di comando, ai più complessi sistemi di ETL come Talend o Kettle. In questo articolo analizzeremo la capacità di Talend di interfacciarsi con un database Greenplum per importare i dati contenuti in 2 file di testo.

Dopo aver scaricato Talend Open Studio (reperibile dal sito di Talend) e dopo averlo installato, possiamo procedere creando un nuovo progetto, e all’interno di questo un nuovo job.

Creiamo quindi le connessioni alle risorse che ci serviranno durante l’importazione, ovvero la connessione al database remoto e i due file csv.

Nella sezione Metadata dell’interfaccia di Talend, aggiungiamo la connessione a Greenplum, dopo aver inserito il nome e i parametri di connessione, il programma creerà un nuovo oggetto di tipo DbConnection.

Cliccando su questo con il tasto destro e selezionando l’opzione “recupera schema”, sarà possibile selezionare le tabelle su cui vogliamo lavorare, nel nostro caso la tabella states e la tabella users.

Aggiungiamo ora i file contenenti i dati. Subito sotto l’icona delle connessioni ai database (DB connections), troviamo il gruppo dei file CSV, come precedentemente fatto per i database, clicchiamo con il tasto destro sul gruppo e poi su “crea file delimitato”.

Nella prima schermata del wizard che si aprirà, ci verrà richiesto di inserire un nome e una descrizione per la risorsa che stiamo creando. Si passa quindi allo step due, nel quale dobbiamo identificare il file di testo a cui vogliamo riferirci, e la sua codifica.

Una volta fatto sarà possibile possibile passare al terzo step, nel quale dobbiamo istruire Talend su come gestire le colonne del CSV. In questa schermata è possibile : selezionare l’encoding del file (1), i separatori di campo e i caratteri di fine linea (2), e qualora fosse necessario, segnalare quante e quali linee devono essere ignorate sia all’inizio che alla fine del file (3).

È inoltre possibile segnalare a Talend di utilizzare la prima riga come “schema” del CSV, in maniera che possa prendere i nomi delle colonne direttamente dal file, risparmiando all’utilizzatore l’inserimento manuale del nome delle colonne ( 4 ).

Nel quarto step resta solo da: modificare lo schema del file che stiamo associando, controllare e modificare i tipi di dato riconosciuti in automatico per ogni colonna e, qualora non fossero stati riconosciuti in automatico dalla testata del CSV, modificare i nomi delle colonne e la lunghezza dei campi.

Completato il 4° passo del wizard, il file è correttamente associato all’applicazione e pronto per essere usato.

Una volta aggiunte tutte le risorse che intendiamo utilizzare, è possibile procedere con la creazione del job. Trasciniamo quindi i due file sull’editor visuale del job, e selezioniamo tFileInputDelimited come tipo di file.

Dalla connessione a Greenplum precedentemente creata invece, trasciniamo sull’editor le due tabelle di destinazione (nel nostro caso states e users), e selezioniamo come tipo tGreenplumOutput.

Inseriamo ora un oggetto di tipo tMap – che si trova nella palette degli strumenti alla destra dell’editor visuale – nella cartella “elaborazione” e posizioniamolo fra il file CSV contenente gli stati da importare e la tabella di Greenplum di destinazione.

Colleghiamo il file al componente tMap (clic con il destro sul file -> riga -> main) e il componente tMap alla tabella di destinazione (clic destro sulla tabella -> riga -> nuovo output). Una volta collegati fra di loro i componenti possiamo fare doppio click sull’oggetto tMap che permette di associare le righe del file da importare a quelle della tabella di destinazione.

Trascinando i vari campi dalla tabella di sinistra a quella di destra , è possibile associare ogni colonna del file alla colonna relativa sulla tabella di destinazione. Cliccando su ok salveremo l’associazione appena effetuata e i dati sono pronti per essere importati dal file di origine alla tabella di destinazione.

Aggiungiamo ora l’importazione di una lista di utenti dal secondo csv, durante l’importazione è necessario fare lookup sulla tabella degli stati appena riempita, in maniera da verificare l’associazione “utente -> stato”, riga per riga. Con il gergo lookup si intende la ricerca di un valore all’interno di un dizionario, utilizzando una chiave al fine di recuperare un ID (solitamente la chiave primaria di quell’oggetto nel database, per garantire integrità referenziale).

Aggiungiamo quindi un oggetto tMap fra il file CSV con gli utenti e la tabella di destinazione, inoltre dalla lista delle tabelle di Greenplum trasciniamo nuovamente la tabella contenente gli stati sulla finestra dell’editor visuale, selezionando come tipo tGreenplumInput.

Colleghiamo quindi i tre elementi al componente tMap, come e’ stato fatto precedentemente.

Adesso eseguiamo il mapping fra i tre elementi: questa volta il campo idState del CSV deve essere mappato sul campo idState della tabella states (row3) e quest’ultimo deve essere collegato alla tabella utenti di destinazione. In questa maniera per ogni linea del CSV viene eseguito il lookup sulla tabella stati, assicurando così l’integrità della relazione “Utente – Stato”.

Per concludere, facciamo in modo che prima venga eseguita l’importazione dei dati relativi agli stati. Successivamente, quelli degli utenti, in modo da poter eseguire correttamente il lookup. Tracciamo quindi una riga di tipo OnComponentOK (click destro -> attivare -> onComponentOk) dal componente di output della tabella stati a quello di input degli utenti (il file CSV).

In questo modo prima verrano importati gli stati e solo in caso di successo verranno impotati gli utenti.

Adesso basterà cercare il tab di esecuzione nella parte bassa dell’area di lavoro e premere il tasto run per fare in modo che il nostro job venga eseguito.

]]>
https://blog.2ndquadrant.it/etl_con_talend_su_greenplum/feed/ 0
Come utilizzare la Virtual Machine di Greenplum Community Edition con VirtualBox https://blog.2ndquadrant.it/greenplum_vmware_virtualbox/ https://blog.2ndquadrant.it/greenplum_vmware_virtualbox/#comments Fri, 26 Aug 2011 16:30:03 +0000 http://2ndblog.dev.xcon.it/greenplum_vmware_virtualbox/ Fra i vari download disponibili nella sezione community del sito di Greenplum, è possibile trovare una Virtual Machine con il software già configurato e installato su un sistema CentOs.

La virtual machine è fatta per funzionare con VmWare, ma con qualche piccola attenzione e per puri scopi di valutazione di Greenplum, è possibile farla funzionare anche con VirtualBox.

Dopo aver installato l’ultima versione di VirtualBox (disponibile su http://www.virtualbox.org/wiki/Downloads ) è possibile scaricare l’immagine di VmWare da http://www.greenplum.com/community/downloads/. Una volta ultimato il download, e dopo aver scompattato l’archivio, è possibile procedere con l’installazione.

Innanzitutto creiamo una nuova virtual machine, semplicemente cliccando sul tasto “Nuovo” in alto a sinistra nella finestra di VirtualBox; avremo così accesso al wizard di creazione virtual machine. Dopo la prima schermata introduttiva, nella seconda ci troveremo a scegliere il nome della macchina, che deve essere univoco, e il tipo di sistema operativo. Nel primo dropdown deve essere selezionato “Linux”, mentre come versione va scelta Red Hat a 64 bit, essendo la VM basata su CentOs.

Nel terzo step del wizard viene chiesta quanta RAM deve essere allocata alla virtual machine. Di default il programma ne assegna 512 MB, ma per il tipo di ambiente che sta per essere eseguito potrebbero essere pochi. Consiglio quindi di aumentare a 1024 MB la RAM da allocare.

Nella quarta schermata deve essere deselezionato il flag “disco di avvio”. Una volta cliccato su continua, VirtualBox ci avvertirà che, continuando senza disco, non potremo fare il boot della macchina. Il disco di boot verrà aggiunto manualmente in seguito: selezionare pertanto “continua”. Nell’ultima schermata bisogna semplicemente cliccare su “continua” per completare la creazione della VM.

E’ il momento di aggiungere il disco di avvio alla VM appena creata: entrare nelle impostazioni relative alla virtual machine e andare nella sezione “archiviazione”. Nell’albero dei controller deve essere selezionata la voce “controller ide” , cliccando sull’immagine del disco con il “+” verde in basso a sinistra, comparirà l’opzione “aggiungi disco fisso. Alla domanda successiva, relativa alla creazione di un disco vuoto, deve essere selezionata la voce “scegli disco esistente”. E’ possibile ora navigare fino alla posizione dove è stata scompattata l’immagine della virtual machine, e selezionare il primo della serie di files che compongo l’immagine, in questo caso il file si chiama “CentOS 64-bit-cl1.vmdk”, riconoscibile come primo della serie per l’assenza di numeri sequenziali nel nome.

Dopo aver aggiunto il disco la virtual machine è pronta per essere avviata. Completata la fase di boot, il sistema proverà a far partire l’ambiente grafico, ma, essendo il sistema configurato per funzionare con VmWare, i driver attualmente installati non possono funzionare con la scheda video virtuale di VirtualBox. Verrà quindi mostrata una schermata blu di errore che chiederà se devono essere visualizzati i log. Dopo aver risposto “No”, verrà mostrata un’ulteriore schermata per l’autoconfigurazione di GDM. Anche in questo caso non è quello che serve, quindi la risposta da dare è nuovamente “No”.

Si viene quindi condotti a una schermata di login su shell; per accedere l’ username è root, la password è password.

Essendo ora amministratori della macchina è possibile lanciare lo script che disinstallerà i driver specifici di VMWare: vmware-uninstall-tools.pl.

lo script eseguirà la disinstallazione completa dei driver. Una volta terminata, è necessario riavviare il sistema. Subito dopo il riavvio ci troveremo nuovamente di fronte alle domande relative al log e all’autoconfigurazione di GDM. Rifiutando come prima, sarà possibile effettuare nuovamente login da shell come root.

E’ ora possibile installare i driver di VirtualBox. Per farlo è necessario andare nel menù “dispositivi” di VirtualBox, e selezionare l’opzione “installa guest additions”. A questo punto tornando sulla shell è possibile lanciare il comando:

mount /dev/cdrom /media

Andiamo adesso nella directory media:

cd /media

e eseguiamo lo script di installazione dei driver di VirtualBox:

bash VboxLinuxAdditions.run

Purtroppo a causa del kernel troppo vecchio di questa macchina virtuale, non sarà possibile avere l’accelerazione grafica, ma adesso il sistema è pronto per funzionare.

Dopo un ultimo riavvio, il sistema sarà correttamente funzionante anche su VirtualBox, e potrete pertanto avviare i primi passi con Greenplum direttamente da questo sistema.

Ricordiamo che il presente articolo deve essere considerato solamente per scopi di valutazione delle funzionalità di Greenplum Community Edition. Per ottenere performance maggiori, si consiglia di installare Greenplum Community Edition su sistemi non virtuali.

Buon divertimento!

]]>
https://blog.2ndquadrant.it/greenplum_vmware_virtualbox/feed/ 0