Talend Contextualizado

Compartilhe este post

Olá pessoal! Após o sucesso absoluto das Canecas Talend Brasil e depois de muito tempo sem tutoriais iremos falar sobre algo essencial dentro do Talend: variáveis de contexto e contextos de execução. Pegue sua caneca Talend Brasil, tome um café e se prepare – ou caso você ainda não tenha uma, não perca tempo e adquira já!

Variáveis de contexto são variáveis de acesso global dentro de um job, cujo conteúdo pode variar de acordo com o contexto de execução.

No Talend, os Contextos são organizados em três níveis, os quais iremos conferir hoje:

Variáveis de Contexto -> Grupos de Variáveis -> Contextos de Execução

– Variáveis de contexto representam o menor nível na definição de contextos. Podemos entendê-las como variáveis simples, mas que podem armazenar conteúdos diferentes de acordo com o Contexto de Execução.

– Grupos de Variáveis, como o próprio nome sugere, são grupos de variáveis criados para proporcionar maior organização ao projeto, agrupando variáveis correlacionadas (exemplo: variavéis que formam a conexão com um Mysql).

– Contextos de Execução são os contextos em si. Exemplos de contexto podem ser “Produção” e “Homologação“, ou “Servidor A” e “Servidor B“.

Contexto01
Além disso, você pode definir Grupos de Variáveis armazenados em repositório – desta forma você poderá reaproveitar o mesmo conjunto de variáveis em vários jobs.

Para começar, vamos criar um job e definir uma variável de contexto chamada “Servidor“, do tipo String – vá até a aba Contexts e clique no ícone com um “+”:

Contexto02
Agora iremos definir os contextos de execução do job.
Clique em Values as tree ou Values as table na aba Contexts.
Em seguida clique em Configure Contexts… (botão destacado na imagem abaixo):
Contexto03
E então iremos atribuir valores diferentes para cada contexto:
Contexto04
E como acessar as variáveis de contexto?

Simples! Todas as variáveis de contexto são acessadas da mesma forma:

context.NOME_DA_VARIÁVEL

Vamos dar um exemplo: Adicione um componente tJava ao job e acrescente o seguinte código ao mesmo:

System.out.println(context.Servidor);
Contexto05
Na sequência iremos executar o job. Na aba Run, experimente alterar os contextos a cada execução e observe o que acontece!
Contexto06

Agora você já sabe definir variáveis dentro de um job, mas e se você quiser reutilizá-las em outros jobs?

Vamos até a árvore do repositório e criaremos um Grupo de Variáveis, ou Context Group:

Contexto07
Em seguida vamos definir uma Variável de Contexto chamada arquivo:
Contexto08
E então iremos definir os Contextos:
Contexto09

Por fim, atribuímos os valores a cada contexto:

Contexto10

Dê um Finish e pronto.

Para importar o grupo de variáveis criado para dentro do job que estávamos trabalhando, vá até a aba Contexts e selecione o grupo de variáveis a importar, conforme nas imagens abaixo:

Contexto11

Contexto11

Contexto12

E como o Talend associa tudo isso?

Como você deve ter percebido, é possível criar variáveis sem grupos, grupos sem variáveis, contextos sem variáveis… Não há uma “amarração” muito forte entre os três. Essa é uma flexibilidade que pode ajudar mas também confundir.

É importante compreender como variáveis, grupos e contextos são interligados entre si e a resposta mais simples é: através dos contextos.

Você pode ter tantas variáveis e grupos de variáveis dentro de um job quanto forem necessários. Mas sejam eles importados do repositório ou locais, os nomes de seus contextos de execução deverão coincidir – só assim o Talend poderá compreender em qual contexto executar o job. Observe na imagem anterior: tanto a variável local “Servidor” quanto o grupo denominado “Contexto” possuem dois contextos de execução iguais: Default e Desenvolvimento.

Se você importar um grupo de variáveis cujos contextos de execução são “Servidor A” e “Servidor B” e outro grupo de variáveis cujos contextos de execução são “Desenvolvimento” e “Producao”, não haverá como o Talend compreender em qual contexto executar o job, pois ele terá 4 contextos de execução diferentes.

Dica de boas práticas: variáveis de contexto tem acesso global e funcionam como parâmetros dentro de um job. Seus valores podem ser alterados por quem irá executá-lo e por isso tenha cuidado. Quando for preciso declarar variáveis que influenciam no comportamento de um job e não for sua intenção expor isso, opte por utilizar o globalMap, pois variéveis declaradas lá não ficam expostas externamente à modificações. Como declarar variáveis via globalMap ficará para outro dia… 😉

Muitos usos podem ser feitos das variáveis de contexto, o limite é a criatividade e o motivador é a necessidade – como sempre. Você pode utilizá-las como variáveis de controle de fluxo – como elas tem acesso global dentro do job e seu valor pode ser alterado via parâmetro, você pode utilizá-las para modificar os passos de execução de um job.

Até a próxima!

Assine nossa newsletter

Fique por dentro das novidades mais recentes sobre o Talend e aprenda com nossos experts

Leia outros posts do nosso blog

Quer acelerar a tomada de decisão com dados de qualidade?

Fale conosco agora mesmo!

Fale com nossos experts

O café é por nossa conta!