Fala galera, beleza?!

Pesquisando sobre uma outra situação em uma transformação, vi um post que me chamou a atenção e tratava de algo bem interessante que se chama performance.

Neste post que achei, explicavam como melhorar a performance de algumas transformações dentro do ETL e ao abrir, vi que a dica era bem simples e resolvi trazer e compartilhar com vocês!!!

Para este exemplo, irei utilizar o mesmo do post anterior que tratava sobre unique rows.

O interessante é que habilitamos dentro da stream de dados e podemos utilizar em quase todos os steps, pelo menos, nos mais ‘pesados’.

O que esse pequeno recurso faz quando habilitado é passar para a engine do Pentaho que a partir deste momento, aquele step em específico está funcionando como se fosse uma multithread, ou seja, tem mais de um processador trabalhando ali, naquele step.

Para habilitar basta clicar com o botão direito do mouse e selecionar a opção: change number of copies to start. 

Ao clicar, uma caixa de diálogo irá se abrir perguntando o  número de cópias que deseja executar em paralelo como se fosse multithread.

NOTA: Vale lembrar que irá depender do número de processadores que o seu computador possui. 

Veja abaixo o resultado comparando a execução com o recurso desabilitado e o recurso habilitado. Neste exemplo, habilitei para o sort rows, por ser uma task que consome maior processamento.

Veja que quando habilitado, temos 3 tarefas de ordenamento dividindo a carga de trabalho e cada uma processando menos linhas, no quesito quantidade.

Se somarem os 3 valores, verão que dará o mesmo valor que o step select values. Confiram!!!!

Esse tipo de divisão traz um bom ganho de performance, já que passa a trabalhar com mini blocos de dados.

Claro que não serão todos os steps que permitirão e mais, nem todos mostrarão algum benefício, cabe avaliar cada processo e verificar em quais será possível obter ganhos!

Para desabilitar, basta repetir o procedimento, voltando o número de cópias para 1! se for 0, não processará a tarefa, cuidado!!

CONCLUSÃO

Este foi um post que gostei e achei muito interessante trazer aqui para ajudar vocês!

Além de ser um assunto que eu particularmente gosto de falar sobre, que é a performance.

Repito: avaliem cada cenário quando for habilitar o recurso e vejam se este está mesmo apresentando melhora do desempenho! Sempre vale o teste!

Em uma volumetria de dados maior, será de grande ajuda!

Espero que tenham gostado, saúde!