* Exportar dados de banco de dados para arquivos texto
* Carregar massivamente dados em banco de dados
* Data Cleansing – disciplina de qualidade/limpeza de dados de data warehouse
* Integração de aplicações.
PDI é fácil de usar. Todos os processos são criados com uma ferramenta gráfica onde você especifica o que fazer sem escrever nenhuma linha de código. Por conta disso você pode dizer que PDI é orientado a metadado. O PDI pode ser usado como uma aplicação independente ou como parte da suíte do Pentaho. Como uma ferramenta de ETL, é a mais popular ferramenta open source disponível. PDI suporta um vasto conjunto de formatos de entrada e saída de dados, incluindo arquivos texto, arquivos .xls (Excel) além de banco de dados comerciais e open source. Além disso, a capacidade de transformação de dados do PDI permite que você manipule dados com pouquíssimas limitações.
Através de um simples exemplo “Hello World”, esse tutorial mostrará como é fácil trabalhar com o PDI e mostrará também o básico, preparando você para outras transformações mais complexas.
Instalando o Kettle Você pode baixar o PDI aqui http://sourceforge.net/projects/pentaho/files/Data Integration/3.2.0-stable/. Enquanto esse tutorial é traduzido e atualizado o Kettle está na sua versão 3.2.0, então o arquivo que deve ser baixado é o pdi-ce-3.2.0-stable.zip para Windows e pdi-ce-3.2.0-stable.tar.gz para outras plataformas.
Pré-requisitos
O Kettle requer o runtime do Java para rodar (JRE), versão 1.5 ou mais nova. O JRE pode ser baixado gratuitamente no site http://java.sun.com/.
Instalação O PDI não requer instalação. Apenas descompacte o arquivo .zip dentro de uma pasta qualquer. Para sistemas operacionais baseados no Unix é necessário fazer com que o script se torne executável usando o seguindo comando:
cd Kettle chmod +x *.sh
Introdução ao Spoon
O Spoon é a ferramenta gráfica com que se desenha e testa todo processo do PDI. Os outros componentes executam os processos desenhados com o Spoon. No Spoon você constrói Jobs e Transformations. O PDI oferece dois métodos de salvar seus arquivos:
- Repositório em banco de dados
- Arquivos
Iniciando o Spoon O arquivo spoon.bat no Windows ou spoon.sh nos sistemas operacionais baseados no Unix, inicia o spoon.
Será exibida a janela de boas vindas. Vá ao menu Edit e clique em Options. Na janela de opções é possível várias configurações gerais, inclusive características visuais. Caso algo for modificado é necessário iniciar o Spoon novamente para que as mudanças tenham efeito.
Exemplo Hello World Apesar de se tratar de um exemplo simples, irá introduzir alguns fundamentos do PDI:
- Trabalhando com o Spoon
- Transformações
- O que são Steps e Hops
- Variáveis predefinidas
- Visualizando e executando a partir de Spoon
- Executando transformações a partir da linha de comando com o Pan
last_name, name Suarez,Maria Guimaraes,Joao Rush,Jennifer Ortiz,Camila Rodriguez,Carmen da Silva,Zoe
Essa deveria ser a saída num arquivo .xml: – <Rows> – <row> <msg>Hello, Maria!</msg> </row> – <row> <msg>Hello, Joao!</msg> </row> – <row> <msg>Hello, Jennifer!</msg> </row> – <row> <msg>Hello, Camila!</msg> </row> – <row> <msg>Hello, Carmen!</msg> </row> – <row> <msg>Hello, Zoe!</msg> </row> </Rows> A criação desse arquivo .xml será o objetivo dessa primeira transformação.
Uma transformação é formada por Steps conectados por Hops. Esses Steps e Hops formam um caminho por onde o dado trafega. Por isso que é dito que uma transformação é data-flow oriented, ou seja, orientada a fluxo de dados.
Preparando Ambiente Antes de começar a construir a transformação, crie uma pasta para os arquivos desse tutorial. Nessa pasta serão salvos todos os arquivos desse tutorial. Então crie um arquivo .csv como mostrado acima e salve o arquivo como list.csv.
Etapas da criação da transformação
A transformação proposta será completada em três atividades:
1. Criar a transformação
2. Construir o esqueleto da transformação usando Steps e Hops.
3. Configurar os Steps especificando seu comportamento.
Criar a transformação 1. Clicar em New, selecionar Transformation. Também acessível através do menu File. E ainda através do Ctrl-N
2. Selecionar o menu Transformation e clicar em Configuration.
3. Na janela seguinte, é possível definir várias configurações da transformação. Nesse caso, apenas dê um nome e uma descrição para a transformação.
4. Salve a transformação na pasta criada para o tutorial com o nome de hello. Isso criará um arquivo hello.ktr. Construir o esqueleto da transformação usando Steps e Hops Um Step, ou passo em português, é menor unidade dentro de uma transformação. Uma larga variedade de steps está disponível no Kettle. Esses steps estão agrupados em categorias como Input e Output além de várias outras. Cada Step foi desenhado para completar uma função específica como ler um parâmetro ou normalizar um conjunto de dados.
Um Hop é uma representação gráfica do dado transitando entre dois steps, com uma origem e um destino. O dado que transita através do Hop consiste nos dados de saída do Step, opção identificada no Kettle como Output Data. Esse mesmo dado é considerado o dado de entrada do Step destino, Input Data. Um Hop tem apenas uma origem e apenas um destino, no entanto mais de um Hop pode ter como origem o mesmo Step. Quando isso acontece, o dado de saída pode ser copiado ou distribuído para vários destinos. Também mais de um Hop pode ter como destino o mesmo Step. Nesse caso, o Step destino deve ter a habilidade de fazer um merge entre os dados de entrada de diferentes steps.
Essa transformação deve:
1. Ler o arquivo .csv
2. Construir os cumprimentos
3. Salvar os cumprimentos no arquivo .xml
Para cada um desses itens, será usado um Step diferente, como mostrado abaixo:
Nesse exemplo, a relação entre tarefas a ser executadas e steps é de um para um, mas nem sempre ocorre assim.
Como iniciar a criação da transformação: 1. A esquerda da janela do Spoon fica a paleta de steps, Steps Palette. Selecione categoria Input.
2. Arraste o CSV file input e solte na área de trabalho a direita.
3. Selecione a categoria Scripting.
4. Arraste Modified JavaScript Value para a área de trabalho.
5. Selecione a categoria Output.
6. Arraste o Step XML Output para a área de trabalho.
Agora é necessário fazer a ligação entre o Step CSV file input com o Step Modified JavaScript Value. Para isso crie um Hop:
1. Selecione o primeiro Step
2. Segure a tecla Shift e arraste o ícone para o segundo Step.
3. Pelo mesmo processo, faça a ligação entre Modified Java Script Value e o XML Output
Especificando o comportamento do Step Todo Step tem uma janela de configuração. Essa janela varia de acordo com a funcionalidade do Step e a categoria a qual pertence. Por outro lado, o nome do Step é sempre exibido para todos os casos e deve ser preenchido cuidadosamente, pois é o nome pelo qual o Step será reconhecido ao longo de todo o ETL. Configurando o Step CSV file input 1. Clique duas vezes no Step CSV file input.
2. Nessa janela você deve indicar a localização, formato e conteúdo do arquivo.
3. Substitua o nome padrão por um mais representativo da função desse Step. Nesse caso name list.
4. No campo Filename, escreva o nome e a localização do arquivo.
5. Clique em Get Fields para adicionar a lista com os nomes das colunas do arquivo de entrada. Por padrão o Kettle assume que o arquivo tem cabeçalho (checkbox Header row present está selecionado)
6. Agora a grid contém os nomes das colunas do arquivo. Last_name e name. A janela deveria estar mais ou menos assim:
7. Desmarque a opção lazy conversion caso esteja marcada.
8. Clique em Preview para assegurar que o arquivo está sendo lido como esperado. Uma janela irá aparecer com um conjunto de dados para visualização.
9. Clique em OK para finalizar as alterações do Step. Configurando o Step Modified JavaScript Value 1. Clique duas vezes no Step Modified JavaScript Value.
2. Essa janela é diferente da do Step anterior. Nessa o PDI permite que seja escrito código JavaScript. Esse Step será usado para escrever a mensagem de cumprimento “Hello,” concatenado com cada um dos nomes do arquivo.
3. Dê o nome de Greeting para esse Step.
4. Ao lado esquerdo da janela fica o conjunto de funções que podem ser utilizadas no código além dos campos de entrada e saída. Nesse exemplo existem dois campos: _name e name. Escreva o seguinte código: var msg = ‘Hello, ‘ + name + “!”; 5. No painel inferior é possível direcionar qualquer variável criada ou manipulada no código como campo de saída. Nesse caso foi criada a variável msg, e para que a mesma seja incluída como dado de saída, é preciso adicioná-la no grid: 6. Clique em Ok para finalizar a configuração do Step.
7. Para visualizar os dados de saída e qual novo campo foi criado, selecione o Step que foi configurado, clique com o botão direito e vá até a opção Input Fields. Essa opção mostrará os campos que entram no Step, campos que vêem de Step anterior. Clicando em Output Fields mostra os campos de saída, inclusive os criados nesse Step. Nessa ultima opção, além dos campos last_name e name, você verá também o novo campo msg.
Configurando o Step XML Output 1. Clique duas vezes no Step XML Output. Nessa janela deve ser configurado a localização e o nome do arquivo de saída e quais dos campos serão incluídos no arquivo.
2. Dê o nome de File with Greetings para o Step.
3. No campo File, digite:
Hello
4. Clique em Get Fields na aba Fields para preencher o grid com o nome dos campos vindos do Step anterior. Nesse caso deixe apenas a msg. Apague os campos name e last_name.
5. Salve a transformação. Como isso funciona? Quando uma transformação é executada, quase todos os Steps são executados simultaneamente e assincronamente. As linhas de dados fluem através dos Steps “cada uma por si“. Cada registro processado deixa o Step de origem para o destino sem esperar pelos demais registros. Essa é uma característica importante para se manter em mente.
O exemplo está quase completo. A transformação lê o arquivo de entrada, cria mensagens para cada registro através do código javascript e envia as mensagens para o arquivo de saída. Esse é um pequeno exemplo com poucos registros, por conta disso é difícil notar a característica assíncrona em ação no Kettle. Tenha em mente que ao mesmo tempo em que um registro está sendo gravado no arquivo de saída, outro pode estar saindo do primeiro Step da transformação.
Verificando, pré-visualizando e executando. 1. Antes de executar a Transformação, cheque se tudo está configurado propriamente clicando em Verify. O Spoon vai verificar se a transformação é sintaticamente correta e vai procurar por Steps sem Hops e conexões não existentes. Se tudo estiver em ordem a transformação esta pronta para testar a saída de dados.
2. Selecione o Step contendo o código JavaScript e clique no botão preview. A janela abaixo será exibida:
3. Clique em QuickLaunch. Uma janela com uma amostragem dos dados de saída desse Step. Se a saída está como esperada a transformação é pronta para ser executada.
4. Clique em Run.
5. O Spoon exibirá uma janela onde podem ser configurados parâmetros e o nível de log gerado pela transformação, além de outras informações. Clique em Launch.
6. Uma nova janela será exibida. A aba de log contém registros da execução corrente. A tabela de log contém informações importantes: Read: Número de vindo do Step anterior.
Written: Numero de linhas saindo para o próximo Step
Input: O número de registros lidos de um arquivo ou tabela de banco de dados.
Output: Número de linhas escritas num arquivo ou tabela de banco de dados.
Errors: Erros da execução. Se existe erros, a linha será exibida em vermelho.
Na aba de log escrito, as linhas informativas de output são mostradas. A última linha, caso a transformação ocorra bem, será:
Spoon – The transformation has finished!! Não havendo nenhum erro, abra o arquivo gerado Hello.xml e verifique o conteúdo. Pan O Pan permite que transformações sejam executadas através de janelas de terminais. O arquivo de script é o pan.bat no Windows ou pan.sh em outras plataformas. Esses arquivos ficam localizados na pasta de instalação. Se o arquivo de script for rodado sem nenhum parâmetro, o mesmo retornará uma lista de possíveis parâmetros e opções. Para executar a transformação criada anteriormente, execute esse comando: Pan /file <Jobs_path>/Hello.ktr /norep /file – deve preceder o nome do arquivo .ktr
/norep – comando que diz ao Kettle para não conectar em repositório.
<Jobs_path>/Hello.ktr – caminho completo de onde se encontra o arquivo. Por exemplo:
C:/Pentaho/Tutorial
ou /home/PentahoUser/Tutorial Se o comando foi executado corretamente a transformação rodará da mesma forma em que rodou no Spoon. Nesse caso o log será exibido no terminal a menos que especificado um arquivo para ser escrito com o log. O formato será ligeiramente diferente mas a informação é a mesma que foi exibida no ambiente gráfico.
Refinando o primeiro exemplo Agora que a transformação foi criada e executada, o próximo passo será melhorar a transformação. Visão Geral As evoluções que serão adicionadas a transformação são: a) A transformação será armazenada numa nova pasta e o nome do arquivo será informado através de parâmetro.
b) A existência do arquivo de entrada será validada.
c) O nome do arquivo de saída dependerá do nome do arquivo de entrada. Para esses melhoramentos será necessário:
- Receber parâmetro
- Criar o arquivo de saída com os cumprimentos
- Checar se o parâmetro não é nulo e abortar a transformação caso seja.
- Checar se o arquivo existe e abortar a transformação caso não exista.
O processo será:
- Recuperar o parâmetro necessário será resolvido com uma nova transformação.
- O parâmetro será validado através do resultado da nova transformação.
- A existência do arquivo será validada através de um componente do Job.
- A maior tarefa do Job será executada pela transformação criada anteriormente na primeira parte do tutorial.
Para evitar que seja necessário escrever o caminho completo toda vez que se referencia a uma pasta ou arquivo, é aconselhável criar uma variável contendo essa informação. Para isso edite o arquivo de configuração kettle.properties localizado em C:Documents and Settings<usuário>.kettle no Windows XP/2000, C:Profiles<usuário>.kettle no Windows Vista ou *~/.kettle em outras plataformas. Coloque a linha abaixo no final do arquivo, mudando o caminho para a pasta criada para conter os arquivos.
FILES=/home/PentahoUser/Files O Spoon lê este arquivo quando é iniciado, portanto para que a alteração tenha efeito é preciso reiniciar o spoon. As atividades são:
1. Criar a nova transformação
2. Modificar a transformação criada anteriormente.
3. Criar o Job.
Criando a nova transformação 1. Crie uma nova transformação da mesma forma que foi feito na primeira parte do tutorial. De o nome de get_file_name.
2. Arraste os Steps abaixo para a área de trabalho, dê nomes a eles, e crie os Hops para conectá-los de acordo com a imagem:
- Get System Info (categoria Input)
- Filter Rows (categoria Flow)
- Abort (categoria Flow)
- Set Variable (categoria Job)
Configurando o Step Get System Info
Esse Step captura informações das fontes fora da transformação, como por exemplo a data do sistema ou parâmetros digitados em linha de comando. Nesse caso será utilizado para pegar o parâmetro necessário para completar as tarefas dessa parte do tutorial. Na janela de configuração desse Step existe um grid onde cada linha digitada se torna uma nova coluna contendo informações do sistema.
1. Clique duas vezes no Step.
2. Na primeira célula, abaixo a coluna Name, digite my_file.
3. Quando clicar abaixo da coluna Type, uma janela será exibida com as opções disponíveis. Selecione command line argument 1.
4. Clique em OK Configurando o Step Filter Rows
O Step Filter Rows divide sua saída em duas, escolhendo qual saída será utilizada baseado em condições. As linhas que atendem a condição seguem um caminho no Job. As demais seguem outro caminho.
1. Clique duas vezes no step
2. Escreva a condição: Em Field selecione my_file e substitua o sinal “=” por IS NULL.
3. Na lista perto da opção Send ‘true’ data to Step, selecione Abort.
4. Na lista perto de Send ‘false’ data to Step, selecione Set Variable.
5. Clique OK.
Agora, um parâmetro nulo (NULL) será encaminhado para o Step Abort e um parâmetro não nulo (NOT NULL) será encaminhado para o Set Variable. Configurando o Step Abort
Não existe nada para configurar nesse Step. Se alguma linha chegar a esse Step, a transformação é encerrada imediatamente, e um retorno de falha é enviado para o Job onde será utilizado. Configurando o Step Set Variable
Esse Step permite que se crie variáveis e que se coloque os valores dos campos de saída nelas. A janela de configuração será exibida. Cada linha do grid pode conter uma variável.
1. Clique duas vezes no step
2. Coloque em Get Fields. O único campo que será mostrado: my_file. O valor padrão da variável é o nome do campo em maiúsculas. O nome ficará MY_FILE. Deixe o nome assim.
3. Clique OK.
Execução 1. Para testar a transformação, clique em Run.
2. A janela de parâmetros será exibida. Você deve usar esse grid para entrar com o parâmetro que poderia ser escrito na linha de comando. Na primeira linha da coluna Value digite list.
3. Clique Launch
4. No log você verá uma mensagem como essa:
Set Variables.0 – Set variable MY_FILE to value [list] 5. Clique em Run novamente mas não digite nenhum parâmetro. Dessa vez você verá a mensagem:
Abort.0 – Row nr 1 causing abort : [] Abort.0 – Aborting after having seen 1 rows. Perto do topo da janela será possível ver a mensagem de erro do Step abortado que indica que um erro ocorreu e que a transformação falhou, como esperado.
Modificando a Transformação Agora é hora de modificar a Transformação Hello para que comparar nomes de arquivos com seus respectivos parâmetros. Se um parâmetro fosse foo, a transformação leria o arquivo foo.csv e criaria um arquivo foo_with_greetings.xml. Isso ajudaria também a descartar as linhas em branco dentro do arquivo.
1. Abra a transformação Hello.ktr.
2. Abra a janela de configuração do Step CSV File Input.
3. Apague o conteúdo da caixa de texto Filename e pressione Ctrl-Spacebar para ver a lista das variáveis existentes. Você deveria ver a variável FILES que foi adicionada no arquivo kettle.properties. Selecione isso e adicione o nome da variável que foi criada na transformação que acabou de ser criada. Digite na caixa de texto:
${FILES}/${MY_FILE}.csv 4. Clique em OK.
5. Abra a janela de configuração do Step XML Output.
6. Substitua o conteúdo da caixa de texto Filename por:
${FILES}/${MY_FILE}_with_greetings.xml 7. Clique OK.
8. Arraste o Step Filter Rows para área de trabalho e arraste-o novamente para em cima de do Hop que saí do CSV Input (quando o Hop se tornar mais largo, solte Step). Isso conecta o novo Step na seqüência de Steps existentes.
9. Selecione name para o campo, e IS NOT NULL como comparador.
10. Deixe a opção Send ‘true’ data to Step e Send ‘false’ data to Step em branco. Isso faz com que apenas as linhas que atende a condição (as que contenham nome) passam para o próximo Step.
11. Clique em OK.
12. Clique em Save As e dê o nome de Hello_with_parameters para a transformação. Executando a transformação Para testar as mudanças feitas você dever ter certeza que a variável MY_FILE existe e que a mesma contenha valor. Como essa transformação é independente da que cria a variável, será necessário criá-la manualmente.
1. No menu Edit, selecione Set Environment Variables. Uma lista de variáveis aparecerá.
2. No final da lista, digite MY_FILE como nome da variável. Como conteúdo, digite o nome do arquivo sem extensão.
3. Clique em OK.
4. Clique em Run.
5. Na lista de variáveis você verá a que foi criada. Clique em Launch para executar a transformação.
6. Por ultimo verifique a existência e conteúdo do arquivo de saída. Criado o Job principal A última tarefa nessa parte do tutorial é a construção do Job principal: Criando o Job:
1. Clique em New e depois em Job.
2. A área de trabalho de Job será exibida.
3. Clique em Job e em Configuration.
4. Digite um nome e uma descrição.
5. Clique em Save. Salve o Job na pasta Tutorial com o nome de Hello.
Crie o esqueleto do Job com componentes e Hops:
A esquerda da área de trabalho existe a paleta de componentes Job Entries. Diferente da paleta de transformação, essa não agrupa os itens em categorias.
1. Arraste um componente Start, dois Transformation e um File Exists na área de trabalho de nomes e conecte-os através de Hops.
2. Arraste dois Abort Jobs para a área de trabalho, dê nome e conecte-os. Nesse ponto os Hops ficaram vermelhos.
Configurando os Steps:
1. Clique duas vezes o componente da primeira transformação.
2. No campo Transformation filename, digite get_file_name.ktr.
3. Por conta das transformações estarem na mesma pasta, você pode usar a variável de caminho do Job:
${Internal.Job.Filename.Directory}/get_file_name.ktr 4. Clique em OK.
Configurando o Segundo componente Transformation. 1. Clique duas vezes no componente.
2. Digite o nome da outras Transformação no campo Transformation Filename e clique em OK:
${Internal.Job.Filename.Directory}/Hello_with_parameter.ktr Configurando o component File Exists
1. Clique duas vezes no componente.
2. No campo Filename , coloque o caminho completo do arquivo que você quer verificar se existe. O nome é o mesmo que você escreveu na transformação Hello após a modificação: ${FILES}/${MY_FILE}.csv Nota: Lembre-se que a variável ${FILES} foi definida no arquivo kettle.properties e a variável ${MY_FILE} foi criada no componente que será executado antes desse.
Configurando o primeiro componente Abort Job Job:
1. Na caixa de texto Message digite: O arquivo não existe Configurando o segundo componente Abort Job Job:
1. Na caixa de texto Message digite: O arquivo ${FILES}/${MY_FILE}.csv não existe
Nota: Durante a execução, a ferramenta substitui o nome da variável por seu conteúdo. Por exemplo: “O arquivo c:/Pentaho/Files/list.csv não existe.
Configurando Hops Um componente Job Entry pode ser executado sem condição mesmo quando o componente anterior é executado sem sucesso. Esse tipo de execução é representado por diferente cores nos Hops: Um Hop preto indica que o próximo componente é sempre executado. Um Hop verde indica que o próximo componente é executado apenas se o anterior for executado com sucesso. E um Hop vermelho indica que o próximo componente será executado se o anterior falhar a sua execução.
Como conseqüência da ordem em que os componentes foram criados e ligados uns aos outros, todos os Hops ficam com a cor preta. O passos serão executados da seguinte forma:
- A primeira transformação vai ser executada sempre. (O Hop que vai do Start até esse componente é preto)
- Se a transformação falhar (Caso não exista um parâmetro) o Hop vermelho encaminha do Job para o componente Abort Job.
- Se a transformação for executada com sucesso, o Job é encaminhado para o Hop verde para a verificação da existência do arquivo. Se essa falhar, será encaminhada para o componente Abort Job através do Hop vermelho, se essa verificação for executada com sucesso, o Job será encaminhado através o Hop verde para a transformação principal.
Na vida real, um Job pode resolver problemas relacionados a seqüência de transformações. Se você precisa que uma transformação aguarde até que outra termine, você deve usar Jobs para isso. Executando o Job Para executar um Job primeiro deve ser informado o parâmetro. O único lugar que usa o parâmetro é na transformação get_file_name, por isso passe os parâmetros da seguinte forma:
1. Clique duas vezes no componente de transformação (get_file_name)
2. Nessa janela aparecerá o grid Fields. Na primeira linha escreva o nome do arquivo criado na pasta Tutorial sem extensão.
3. Clique em OK.
4. Clique em Run.
5. Uma janela será mostrada com informações gerais relacionadas com a execução do Job.
6. Clique em Execute.
7. O painel de log será mostrado.
O arquivo terá sido criado se ao final do log você ver:
Spoon – Job has ended. Se o arquivo de entrada foi o list.csv então o arquivo de saída deveria ser list_with_greetings.xml e deveria estar na mesma pasta. Ache o arquivo e verifique o conteúdo.
Em caso de o parâmetro ser preenchido com o nome de um arquivo inexistente, o Job falhará e você verá:
Abort – The file <parameter> does not exist E se por acaso o parâmetro for esquecido a mensagem deveria ser:
Abort – The file name is missing
Kitchen O Kitchen é a ferramenta usada para executar Jobs a partir de janelas de terminais. O arquivo de script é o kitchen.bat no Windows e kitchen.sh em outras plataformas. Esses arquivos são encontrados na pasta de instalação. Executando o script sem nenhuma opção, o mesmo exibe uma lista das possíveis opções.
Para executar um Job, use o seguinte comando:
kitchen /file <Jobs_path>/Hello.kjb <par> /norep /norep – comando que diz ao Kettle para não conectar em repositório.
/file – deve preceder o nome do arquivo de Job (.kjb).
<Jobs_path> – caminho completo de onde se encontra o arquivo. Por exemplo:
c:/Pentaho/Tutorial (Windows)
ou
/home/PentahoUser/Tutorial
<par> – parâmetro que a transformação esta esperando. Lembre-se que o parâmetro esperado é o nome do arquivo de entrada sem o .csv no final. Depois desse comando o Job será executado da mesma forma que seria no Spoon. Nesse caso o log será escrito no terminal a menos que seja direcionada para um arquivo. Assim como na transformação, o formato da informação mostrada é diferente mas o conteúdo básico é o mesmo.
Tente executar o Job sem parâmetro ou com um parâmetro invalido para ver se está funcionando de acordo com o esperado. Também experimente o uso do Kitchen, tente usar diferente níveis de log e outras opções disponíveis. Fonte: http://www.ademargomes.com/index.php/artigos/56-turialkettle.html?showall=1