Usando variáveis de contexto

Olá, neste job mostraremos como definir variáveis de contexto. Variáveis de contexto podem armazenar diretórios, configuração de banco de dados, em fim tipos de dados como string, interger, char, .. Se mostra útil no uso repetitivo de determinado valor. Imagine um job onde você utiliza repetidamente uma string que determina o caminho de um arquivo a ser o destino de nossos dados. Com uma variável de contexto guardando este valor a manutenção e possível mudança no job quanto ao diretório de destino será bastante simples e rápido, podendo alterar apenas a variável de contexto e alterar várias saídas.

Em posts anteriores já vimos como iniciar um projeto. Partiremos daqui.

Botão direito em Job Design‘create job’. Dê um nome ao nosso job, sugiro “usando vairiáveis de contexto”. Job criado, acesse a ‘paleta de componentes’ na aba Misc e selecione o componente tRowGenerator e clique na Job Design ou segure e arraste. Faça o mesmo para o componente tFileOutputDelimited localizado na aba File. Ligue os dois componentes usando o botão direito em tRowGenerator e selecionando ‘main’, ou segurando o botão direito arrastando até o segundo componente, tFileOutputDelimited. Assim criamos um ‘row link’, que será nosso duto para o fluxo de dados. Existem outros tipos de links, lógicos, que serão apresentados futuramente.

Clique duas vezes em tRowGenerator para abrir sua edição. Aqui temos dois grandes campos, sendo o primeiro para a criação e edição dos campos para nossos registros e o segundo para edição do parâmetros a serem utilizados no primeiro. No primeiro campo vamos configurar duas colunas, “company” e “randomNumber”. Na coluna ‘company’, escolha o tipo de dados como String, ‘…’ para a função, e então em parâmetros  digite “Client” em ‘value’. Já para a coluna ‘randomNumber’, escolha Integer para o tipo de dados, random para a função. Clique em ok. Aparecerá uma caixa de diálogo,

clique em Yes para sincronizar o esquema que criamos com o esquema de saída, ou seja, o esquema montado no arquivo. Clique duas vezes em tFileOutputDelimited para abrir sua edição na aba inferior ‘component view’. Clique em […] para determinar o diretório, nome e extensão do arquivo de saída. Use o diretório que entender melhor, com nome extensão, client1.csv.

Até aqui, temos nosso job desenvolvido em seu componentes e links. No componente de entrada, irá gerar registros da maneira como acabamos de configurar. Assim como o de saída, que já tem seu caminho configurado. Então vamos partir para o que interessa, as variáveis de contexto. Execute e job e verifique o arquivo criado, bem como seus dados, diretório, e nome, assim como foram setados. Crie as variáveis de contexto no repositório. Para isso, clique com o botão direito em Contexts na aba lateral de repositório de trabalho. Selecione Create constext group, dê um nome ao seu grupode contexto. Sugiro sempre usar um nome parecido ao do projeto. Clique em next. Estamos agora no campo onde poderemos criar e setar nossas variáveis. Para criar, clique em [+], três vezes,dê nomes as variáveis e indique seus tipos, company(String), diretory(Directory) e nbrows(int).  Clique na aba Values as tree e em Configure Contexts. Então, clique em New para adicionar novos contextos, sendo eles: contextClient1 e contextClient2. Dê OK. Ainda na aba Values as tree, defina vlaores para as variáveis de cada contexto.

Então, recaptulando, até aqui criamos um grupo de contexto. Neste grupo de contexto há três contextos, que serão nossas opções para execução do job final. E cada contexto é composto de trêsvariáveis de contexto.

Agora temos de disponibilizar estes contextos para o job que queiramos que trabalhe com estes. Clique no Context view (aba inferior). E Clique no botão de contexto para importar as variáveis. Então selecione todas as variávies de contexto que acabalmos de criar e dê OK. Então adicione o grupo de contexto em Add Context Group. Selecione os contextos e dê OK. Pronto, nossas variávies criadas já estão disponíveis na Context view.

Agora então, nos falta apenas usar nossas variáveis de contexto na execução dos jobs. Clique duas vezes no componente tRowGenerator para abrir seu editor. No campo, Number of Rows, coloque a variável de contexto nbrows, você pode fazer isso apenas digitando context.nbrows ou selecionando o campo e teclando Ctrl+Space, isso listará opções de sistema e contexto para que não precisse se preocupar em lembrar o nome da variável que usou. Faça o mesmo para o campo Parameter no campo de função de parametros do nosso esquema, setando a variável context.company. Dê OK.

Usamos duas das três variáveis de contexto. Falta apenas a variavel que indicava nosso diretório. Este será usado para não ter que ficarmos repetindo um diretório extenso para cada execução de nosso job. Isso facilita bastante. Pode imaginar o tempo que economizamos. Clique duas vezes no componente tFileOutputDelimited. No campo File Name, devemos passas do diretório, o nome do arquivo e ainda sua extensão. Assim usaremos nossas variáveis criadas. Lembrando que estamos lidando com Java, podemos concatenar Strings de forma a usar nossos contextos e gerar a String com diretório, nome e extensão para nosso arquivo de saída, assim:  context.directory+context.company+”.csv”.

Contextos criados, configurados e indicados para uso podemos rodar nossso job nos diversos contextos criados para que possamos ver o resultado. Para isso basta ir na aba inferior Run e dentro desta na aba de contexto selecionar um dos três contextos e clicar no botão de Run para executar nosso job usando o contexto selecionado. Fazendo isso para os três que criamos, podemos notar diferenças no númro de linhas criadas, na informção do campo company da nossas tabelas, e ainda no diretório e no nome do arquivo, isso tudo apenas usando as três variáveis de contextos que criamos. Essa se mostra uma boa prática, pois a mudança em cada um desses campos se mostra bem mais demorada que a simples criação dos variados contextos. E uma necessária re-execução se mostra ainda mais lenta.

Espero que tenha sido um post claro e útil.

O uso de variáveis de contexto se mostra muito mais ampla, segura e necessária que essas simples explicação. Mostraremos mais detalhes, principalmente sobre segurança, futuramente.

Um abraço a todos.

Anúncios

For your appreciation, the Talend

Olá pessoas. Neste post vamos apresentar à vocês a ferramenta Talend. Para que possam fazer avaliação do quanto essa ferramenta é prática e eficaz.

Hoje, todos procuram soluções inteligentes para o mundo dos negócios. Transformar Gigas, Terabytes de dados em informação legível, como gráficos, tabelas, é algo não apenas necessário, mas essencial para a tomada de decisão que hoje, acompanhando a velocidade da informação, deve ser feita em tempo real, tudo é pra agora, ou melhor pra ontem.  É onde entra a inteligência nos negócios, Busineess Intelligence (BI). As ferramentas de integração de dados, são conhecidas também como ETL (Extract, Tranform, Load), onde a função destas nada mais é do que preparar todos esses dados e organizá-los de forma a serem guardados em tabelas, fazendo com que consultas posteriores sejam mais simples e eficazes, é onde um emaranhado de dados começa a fazer sentido. Nesse ponto que se encaixa o trabalho do Talend Open Studio, a ferramenta livre e de código aberto da empresa francesa Talend. Com um poderoso sistema ETL, esta se comporta como a mais abrangente em código aberto do mercado. O Talend também trabalha com o processo denominado ELT (Extract, Load, Tranform), onde este sobressai em desempenho, quanto a carga em banco de grande volume de dados por aproveitar a eficiência das funções nativas do banco de dados em uso. O Talend mostra que a solução livre pode ser um ótimo negócio, chegando a concorrer com grandes como IBM, SAS e SAP.

Outro ponto positivo é quanto a documentação. No próprio site da Talend podemos encontrar toda a documentação para qualquer versão da ferramenta que queremos, seja ela em uma versão paga ou não. Podemos encontrar desde detalhes sobre a arquitetura do sistema até os componentes, explicados um a um, quanto a função e uso.

Desenvolvido em Java, O Talend possui entre outras, gerenciador gráficos para processos ETL, gerenciador de metadados, interface WebService para processos ETL. Aqui daremos uma visão sobre ETL, e a ferramenta gratuita TOS – Talend Open Studio, usada para tal fim. Desde instalação, passando por uma configuração inicial, e uma breve visão de interface.

Em outros posts trataremos especificamente cada uma dos tópicos tratados superficialmente aqui a fim de apresentar a ferramenta de maneira completa para que possamos passar para níveis mais avançados de tutoriais, onde ficará mais divertido! Mas agora vamos a parte chata menos legal necessária.

Talend é uma ferramenta que trabalha com a geração de código, sendo Java ou Perl. O mecanismo de geração de código permite a integração do código gerado pelo Talend dentro de outras soluções, além de ter maior portabilidade. E esta é o grande diferencial do Talend. Aqui trataremos apenas para o caso de Java, o que não torna inútil para quem segue com Perl, pois nos tutoriais trataremos do desenvolvimento que pode ser seguido em qualquer um dos casos.

Instalação

A instalação do Talend é muito simples. Na verdade, trata-se de uma extração para diretório de caminho curto, como “c:\Talend”, e ‘voila!’. Está feito. Agora podemos passar para a primeira execução.

Execução

Na execução, não somente na primeira, mas em todas, é apresentada um janela para

a configuração, seleção, importação, de projetos. Em dois campos, sendo o primeiro quanto a conexão, como local ou remoto, e um segundo campo projeto, onde temos opção de importar, criar ou remover um projeto. Por enquanto ficaremos com os projetos de demonstração em Java. Clique em ‘…’ e crie uma nova conexão. Selecione ‘Local’ em repositório. Dê um nome à sua conexão, sugiro “Local”. Escolha um diretório destino para a Workspace dos seus projetos.

Uma observação a ser feita, o Open Studio não possibilita a criação de uma conexão remota, ou seja, para o TOS o desenvolvimento sempre ocorrerá localmente.

No campo “Projeto” selecione ‘Import demo project’ clique em ‘Go!’, então selecione a linguagem. Espere a importação. Então refresh na lista de projetos,  selecione ‘TALENDDEMOSJAVA – java’ e ‘Open’. Pronto, aqui temos uma boa quantidade de Jobs, metadados, entre outros, sendo o suficiente para uma boa diversão.

Interface

Como aspirante à Java Monkey, sou bastante suspeito em falar, mas me lembro bem do primeiro dia em que usei o Talend e de como me senti em casa. Esta é muito pareceido idêntica à do Eclipse, sim, o poderoso assistente para projetos em plataforma. Na verdade o Talend, como outros tantos aplicativos e programas, roda dentro do ambiente Eclipse.

interface Talend Open Studio

Por default, o Talend dispõe suas abas da forma que irei apresentar logo em seguinte. Mas nada impede o usuário de ocultar, exibir outras opções, bem como mudar tamanhos, e até mesmo os locais das mesmas.

À esquerda, encontramos nossas conexões, metadados, templates, funções, além dos desenvolvimentos já desenvolvidos, bem como suas versões. Enfim, os dados a serem integrados e/ou transformados em nosso projeto, bem como funções que possamos vir a utilizar neste.

À direita, está o ouro. Digo isso pela gama de componentes que encontramos. É possível se chegar a solução do nosso problema de várias maneira diferentes usando vários componentes diferentes tamanha é quantidade de componentes disponíveis por default. E claro, se chegar a solução não é o único objetivo. Mas fazer isso com o menor número de recursos possíveis, como tempo, e recursos da própria máquina. Aqui, sempre priorizaremos mostrar a melhor solução, por excelência.

Abaixo, encontramos a aba de configuração, execução, teste, debug, o Talend Exchange, que possibilita a inclusão automática de novos componentes ampliando ainda mais nossos horizontes. Onde também configuramos as opções de cada componente adicionado ao Job.

E no meio disso tudo no campo para criação. O espaço onde desenvolvemos as soluções, onde os componentes são adicionados linkados para gerar o Job. Tudo no “arraste”, botão direito,  muito intuitivo.

O Talend apresenta solução flexível para atender aos processos de ETL de forma segura e confiável. A documentação pelo desenvolvedor se mostra bastante simples e de fácil acesso e fácil extração, podendo exportá-la como HTML, por exemplo. Estando ciente que a documentação se encontra completa apenas em inglês ou francês, é possível estudar sozinho para conhecer melhor esta ferramenta e perceber que pode ser usada para várias soluções que está procurando.