2012-09-19 11 views
5

Soy un novato en Pentaho (instalado hoy). Pude hacer una transformación básica en Spoon. Ahora necesito hacer algunas cosas, que no puedo entender cómo.¿Cómo concateno hilo en una cuchara Pentaho?

mi entrada parece

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

tercera campo es un identificador, por lo que necesito para obtener alguna información de una API REST

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

¿Qué necesito hacer en Cuchara para obtener esto hecho?

Además, la devolución de datos estará en formato json. ¿cómo puedo analizar eso?

Respuesta

7

Primero debe obtener su entrada con CSV File Input usando | como delimitador. Entonces puedes obtener el tercer campo como una cadena.

A continuación, probablemente necesite eliminar todos los espacios de esta cadena con un paso String operations. Mire la columna Remove special character y seleccione space.

Luego debe concatenarlo con su dirección http http://api.app.com/app/api/v1/feature/. Para esto, usará un paso Calculator. En este paso primero cree un nuevo campo temporal tmpAddr, con la operación Define a constant value for ... (o algo así, lamento que mi cuchara esté en portugués). En la columna Field A, escribirá su dirección http. Después de hacer esto, es una buena práctica establecer su dirección como una variable de sistema, de modo que si cambia no es necesario que la reemplace en todas partes en sus transformaciones (consulte el menú Edit -> System Variables).

Ahora en el mismo Calculator paso crear otro campo, digamos MyAddress, con la operación A+B. Elija para Field A el campo tmpAddr que acaba de crear, y para Field B el tercer campo de su entrada.

Ahora en la transmisión debe tener la dirección completa como campo MyAddress. Conecte un paso REST client. Marque Accept URL from field y elija el campo MyAddress como URL Field Name. Establezca Application Type en JSON. Establezca Result Fieldname como MyResult.

Si necesita más análisis JSON, puede agregar un paso Json input. Establezca Source is defined in a field y seleccione el campo MyResult como Get Source from field.

+0

Excelente.Excelente explicación paso a paso y funcionó a las mil maravillas :) –

1

Un enfoque alternativo es utilizar el paso "Reemplazar en cadena" para anexar la cadena.

  1. Set 'uso RegEx' a Y
  2. Set 'Buscar' a (.*)
  3. Set 'Reemplazar con' a http://api.app.com/app/api/v1/feature/$1
  4. Set 'Palabra completa' a Y

Los paréntesis en la expresión regular configure un grupo de captura que luego puede insertar en su cadena de reemplazo con la sintaxis $ X

Cuestiones relacionadas