2012-09-19 11 views
5

Sono un novizio di Pentaho (installato oggi). Sono stato in grado di fare una trasformazione di base in Spoon. Ora ho bisogno di fare alcune cose, che non riesco a capire come.Come concatenare una stringa nel cucchiaio Pentaho?

il mio ingresso assomiglia

2012-09-17|garima|fbhjgjhgj87687jghgj88jgjj|garima#1347868164626|::ffff:120.56.132.137 

terzo campo è un ID, per il quale ho bisogno di ottenere alcune informazioni da un API REST

http://api.app.com/app/api/v1/feature/fbhjgjhgj87687jghgj88jgjj 

che cosa devo fare a Spoon per ottenere questo fatto?

Inoltre, il ritorno dei dati sarà in formato JSON. come lo analizzo?

risposta

7

Si dovrebbe prima ottenere il proprio input con un CSV File Input utilizzando il delimitatore |. Quindi puoi ottenere il 3 ° campo come una stringa.

Successivamente probabilmente è necessario rimuovere tutti gli spazi da questa stringa con un passaggio String operations. Guarda la colonna Remove special character e seleziona space.

Quindi è necessario concatenarlo con l'indirizzo http http://api.app.com/app/api/v1/feature/. Per questo utilizzerai un passaggio Calculator. In questa fase, innanzitutto, crea un nuovo campo temporaneo tmpAddr, con l'operazione Define a constant value for ... (o qualcosa del genere, mi spiace che il mio cucchiaio sia in portoghese). Nella colonna Field A scriverai il tuo indirizzo http. È una buona pratica, dopo aver fatto questo lavoro, impostare il proprio indirizzo come variabile di sistema, quindi se cambia non è necessario sostituirlo ovunque sulle trasformazioni (guarda il menu Edit -> System Variables).

Ora sullo stesso Calculator passaggio creare un altro campo, diciamo MyAddress, con operazione A+B. Scegliere per Field A il campo tmpAddr appena creato e per il Field B il 3 ° campo dal proprio input.

Ora sul tuo stream dovresti avere l'indirizzo completo come campo MyAddress. Collegare un passaggio REST client. Contrassegnare Accept URL from field e selezionare il campo MyAddress come URL Field Name. Impostare Application Type a JSON. Impostare Result Fieldname come MyResult.

Se è necessario un ulteriore parsing JSON, è possibile aggiungere un passaggio Json input. Impostare Source is defined in a field e selezionare il campo MyResult come Get Source from field.

+0

Grande.Ottima spiegazione passo dopo passo e ha funzionato come un fascino :) –

1

Un approccio alternativo consiste nell'utilizzare il passaggio "Sostituisci in stringa" per aggiungere la stringa.

  1. Set 'uso RegEx' a Y
  2. Set 'Cerca' per (.*)
  3. Set 'Sostituire con' al http://api.app.com/app/api/v1/feature/$1
  4. Set 'Parola intera' a Y

Le parentesi nella regex impostare un gruppo di cattura che è possibile quindi inserire nella stringa sostitutiva con la sintassi $ X

Problemi correlati