ETL

Pentaho Data Integration 5 e Web Service REST di Carte

Il 20 Novembre è arrivato l’annuncio che aspettavo dal sito di Matt Casters.

E’ finalmente disponibile su Sourceforge Pentaho 5.0 community edition.

pentahoDI

 

Ovviamente il mio focus è sulle novità introdotte in Pentaho Data Integration. In particolare attendevo con attenzione i miglioramenti in merito alla possibilità di avviare un job da remoto utilizzando i Web Service REST di Carte.

Che cos’è Carte e come si configura

Per chi non lo sapesse Carte è un semplice web server, compreso negli strumenti offerti dalla suite Pentaho Data Integration, che consente l’esecuzione remota di una procedura di ETL.

Una volta “installato” (anche se il termine mi sembra un po’ eccessivo per definire un’estrazione di un file zip in una cartella a piacere su una macchina dotata di una certa versione della java virtual machine) è possibile avviare il servizio lanciando da riga di comando lo script

 carte.sh 127.0.0.1 8081

se siamo su sistemi Linux / Mac, ovvero

carte.bat 127.0.0.1 8081

se ci troviamo su sistemi Windows.

I parametri forniti allo script sono, come è evidente, l’ip dell’interfaccia di rete e la porta di ascolto del servizio.

In alternativa per specificare ulteriori parametri di configurazione è possibile passare un file XML di configurazione da posizionare nella directory di Carte.

Novità della versione 5

La novità consiste nella possibilità di specificare all’interno di questo file il repository per le trasformazioni ed i job.

Es. File configuration.xml in C:\pdi\data-integration

<slave_config>
<slaveserver>
  <name>localhost</name>
  <hostname>localhost</hostname>
  <port>8086</port>
</slaveserver>
<repository>
  <name>10</name>
    <username>admin</username>
    <password>admin</password>
</repository>
</slave_config>

A questo punto è possibile avviare Carte lanciando da riga di comando lo script

carte.bat configuration.xml

Web Service REST

Per lanciare una trasformazione

 http://hostname:port/kettle/runTrans/?trans=/path/to/transname&level=DebugLevel&ParameterName=ParameterValue 

Per avviare un job

 http://hostname:port/kettle/runJob/?job=/path/to/jobname&level=DebugLevel&ParameterName=ParameterValue

Per controllare lo stato delle procedure lanciate basta raggiungere la URL

http://hostname:port/kettle/status/

Veramente ben fatto.