[Kettle] - Troca do step "Modified JavaScript Value" por "User Defined Java Expression"
Em resumo ficou assim:
- Troca do componente “Modified JavaScript Value” (Interpretado)...
- Pelo “User Defined Java Expression” (Compilado)...
- Detalhes do step JavaScript:
- Detalhes do Step Java Expression:
Abaixo descrevo melhor as "Java Expressions que criei, em substituição às feitas em Javascript:
Expressão para variável “deMesAno”:
nuMes+"/"+ nuAno
Expressão para variável “semestre”:
nuMes<=6
?"1º Semestre"
:"2º Semestre"
Expressão para variável “deMes”:
nuMes==1
?"Janeiro"
:nuMes==2
?"Fevereiro"
:nuMes==3
?"Março"
:nuMes==4
?"Abril"
:nuMes==5
?"Maio"
:nuMes==6
?"Junho"
:nuMes==7
?"Julho"
:nuMes==8
?"Agosto"
:nuMes==9
?"Setembro"
:nuMes==10
?"Outubro"
:nuMes==11
?"Novembro"
:"Dezembro"
- Previsão do Resultado - Aqui abaixo é demonstrado o resultado que deve ser exibido para as três variáveis em questão:
- Execução da Transformação com o componente JavaScript (utilizando nível de log básico):
Criei a transformação abaixo para realizar o teste de desempenho com o componente javascript. Mais abaixo criei também a transformação para testar o componente Java Expression...
- Execução da Transformação com o componente “User Defined Java Expression” (utilizando nível de log básico):
Aqui uma transformação como a anterior, porém agora utilizando o Java Expression...
Podemos ver abaixo que o tempo para as mesmas 1000000 de linhas foi agora de 3,7 segundos.
Resumindo então o ganho foi este: (Maravilha hein!!!)
Obs.:
O Kettle possui um bug na versão 3.2 quando executado pelo kettle.exe utilizando “User Defined Java Expression”: http://jira.pentaho.com/browse/PDI-2453
Com isso se faz necessário rodar o Kettle através do arquivo "spoon.bat", não mais pelo "kettle.exe", do contrário não poderemos fazer uso do step "User Defined Java Expression".
No Kettle 4.1 existe ainda o step “User Java Defined Class”, que permite escrever código, não somente expressões, sendo assim mais parecido com o "Modified Javascript Value", tendo a vantagem de também ser compilado, assim como o Expression.
Comentários