Contextos en Talend

Contextos en Talend
Los contextos definen variables que pueden ser parametrizadas desde fuera del job y ser compartidas entre trabajos. Se utilizan principalmente para definir rutas y otros parámetros de configuración. Funcionan como variables de entorno que toman distintos valores en función del entorno de ejecución.

En este post vamos a ver con detalle como utilizar estas variables de contexto en Talend.

 

 

variables de contexto

Las variables pueden añadirse desde el diseñador en la pestaña “contexts”, el proceso es simple: le damos un nombre a cada variable e indicamos su tipo.

 

Añadir variables al contexto

Añadir variables al contexto

 

Una vez creadas las variables, podemos añadir diferentes contextos de ejecución, en los que las variables tomarán diferentes valores. Creamos tantos contextos como entornos de ejecución queramos darle al trabajo. Podemos por ejemplo tener tres contextos y configurar la conexión a la base de datos para nuestro ordenador local, el entorno de pre-producción y el entorno de explotación.

  • Gestión de contextos

    Gestión de contextos

  • Definir Contextos

    Crear contextos

  • Asignar valores según contexto

    Valores según contexto

 

En el entorno de desarrollo podemos seleccionar el contexto que vamos a utilizar para la ejecución. Desde la línea de comandos, si no decimos lo contrario, el contexto que se utilizará será el de por defecto.

 

Selección de contexto al ejecutar

Selección de contexto al ejecutar

 

Podemos indicar el contexto pasándolo como parámetro.

 

sh /var/taled/jobs/context_0.1/context/context_run.sh --context=testing

 

O podemos modificar el .sh (o .bat) para cambiar el contexto por defecto por el que nos interese.

 

vi /var/taled/jobs/context_0.1/context/context_run.sh
cd `dirname $0`
 ROOT_PATH=`pwd`
java -Xms256M -Xmx1024M -cp classpath.jar: ejemplo.context_0_1.context --context=production $*

 

 

Grupos de variables

Es habitual que los jobs de un proyecto tengan parámetros de configuración comunes; conexiones a bases de datos, rutas de trabajo, ficheros de intercambio. Con los grupos podemos hacer agrupaciones temáticas de variables y reutilizarlas dentro de un mismo proyecto.

  • Nuevo grupo de contexto
  • Asistente de creación de grupo de contexto paso 1
  • Asistente de creación de grupos de variables de contexto paso 2, variables.

 

El procedimiento de creación de variables en un grupo de contexto es el mismo que para crearlas en el job; añadimos la variables, definimos sus tipos y guardamos sus valores.

 

Asistente de creación de grupo de contexto paso 2, datos

Añadir datos a las variables

 

Desde la pestaña de Contextos podemos añadir los grupos creados al trabajo en curso y actualizar las modificaciones de los grupos, para incorporar nueva variales añadidas.

 

Importar grupos al job actual

Importar grupos al job actual

 

Otra de las ventajas de usar grupos de variables de contexto, es que Talend se encarga automáticamente de propagar los cambios que introducimos en los jobs que usan esos grupos.

 

 

Cargar contextos

Talend tiene dos formas de cargar el contexto; de forma implícita (automática), o explicita (manual). La primera carga un sólo contexto de forma automática en todos los jobs del proyecto. Es una forma poco clara de cargar las variables.

 

Carga implícita de contexto

Carga implicita de contexto

 

La carga manual permite seleccionar un fichero o base de datos como origen de los valores, y cargarlos de forma explicita desde el propio job.

Para esto preparamos un fichero o tabla con con los valores de las variables que hemos definido en el job. El esquema debe ser key, value como String. En nuestro ejemplo vamos a utilizar un fichero tipo “properties” con el siguiente contenido:

 

database=wordpress
dbHost=localhost
dbUser=wp_user
dbPassword=realOne
path=/var/talend/josbs/context_Example
outputPath=output
tempPath=temp

 

Hacemos la carga del contexto en dos pasos. En el primero cargamos el fichero que hemos preparado indicando una ruta que deberá ser fija, en el segundo paso cargamos las filas de clave / valor al contexto del job.

  • Cargar contexto con tFileInputProperties

    Cargamos fichero

  • Cargar contexto con tContextLoad

    Volcamos al contexto

 

Las variables contenidas en el fichero deben estar definidas en nuestro contexto, si no es así el tContextLoad lanzará “warnings” para avisarnos.

 

Aunque los valores se estén cargando en tiempo de ejecución, en el caso de las conexiones a las bases de datos; es importante definir los valores al crear las variables para que estén disponible en tiempo de diseño, y podamos recibir ayuda al crear consultas o definir esquemas.

 

Como usar las variables

Vamos a hacer un ejemplo para ver como utilizar las variables de contexto en un trabajo de Talend. Para usar las variables en una propiedad de un componente, indicamos “context” seguido de punto y nombre de la variable, Talend usa Java y por lo tanto es sensible a mayúsculas.

Importante destacar que no es posible acceder a las variables de contexto desde el código de una rutina, si es necesario la rutina deberá recibir el valor como parámetro.

 

  • Usar variables de contexto
  • Usar conexión existente
  • Usar variables de contexto
     

 

En el ejemplo estamos utilizando las variables con los datos de conexión a la base de datos en un componente tMysqlConnection. La utilidad de este componente, es crear una conexión a la base de datos que consumir desde los componentes de datos, sin necesidad de definir los datos de conexión para cada uno.

Luego estamos usando un tMysqlInpput para extraer los datos de una tabla y exportarlos a un fichero, en las rutas que hemos definido también en las variables de contexto.

 

Pasar valores a otro job

Es habitual encontrarnos con una situación en la que un job deba llamar a otro pasándole algún tipo de resultado. Podemos pasarle al siguiente job la ruta donde encontrar los resultados del anterior, la configuración de acceso a la base de datos, o simplemente el tipo de acción a realizar.

Talend incorpora un componente para hacer llamadas a otros jobs tRunJob. Desde la configuración del componente podemos indicar si le pasamos al segundo job todo el contexto del job actual, o elegir entre las variables de contexto definidas en el segundo job e indicar los valores que deseemos.

 

Pasar valores de contexto

Pasar valores de contexto

 

Pasar valores por línea de comando

Podemos pasar las variables de contexto desde las línea de comando indicándole al lanzador las variables y sus valores de la siguiente forma:

context_Example.sh --context_param path=/var/talend/jobs/context_Example --context_param outputPath=output

 

 

 

Un comentario para “Contextos en Talend”

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

?>