Olá meus amigos!

Expandindo o post sobre funções e recursos do Pentaho, hoje quero mostrar dois steps que irão acompanhá-lo quase que diariamente nas suas transformações

  • Split Fields
  • Split Fields to Rows

O nome das funções é auto sugestivo, mas são utilizados para dividir uma única coluna em duas ou mais colunas e ou, linhas.

Normalmente utilizamos quando dentro da coluna existe algum tipo de valor especial como “ | ”, “ / “ etc. Mas é possível simplesmente dividir a cada espaço em branco encontrado, como iremos fazer aqui.

O primeiro que veremos é o split fields, que irá simplesmente dividir uma coluna por cada ocorrência do delimitador que encontra na sua busca.

Como minha coluna não tem delimitador específico, utilizarei o espaço em branco para tal.

O primeiro ponto é extrair os dados da fonte e para isso, utilizei a query:

Para melhorar o exemplo, adicionei o step if field value is null pois algumas linhas não tinham dados.

Como já expliquei neste post, utilizei a configuração por data type, sabendo que o campo que desejo modificar é string.

Configurado este passo, vamos finalmente ao split field.

Como o replace do campo null é uma frase muito grande, para cada split, tivemos de criar um campo diferente para caber na divisão, do contrário, acusaria erro.

As configurações:

  • Field to Split – seleciona a coluna que o step irá dividir;
  • Delimiter – seleciona o tipo de delimitador que há nesta coluna;
  • Enclosure- caso haja alguma aspas ou colchetes. Caso não, deixe em branco.
  • Default – configuração para divisões que não tem registro. Ao invés do null, no meu caso, será “N/A”.
  • Trim Type – tipo de aparamento para os registros(remover espaços em branco). Pode ser Right, Left e Both Trim.

Nesta primeira imagem, o que temos é a coluna filename retornada da query, e que não foi dividida:

E agora, os campos que foram de fato divididos em círculo azul.

Como podemos perceber, cada palavra que está dentro da coluna DocummentSummary foi dividida após o espaço entre elas, respeitando a configuração utilizada no split fields.

Transformando a mesma coluna em linha, o processo é bem simples, bastando apenas atribuir um novo nome para a coluna que irá abrigar os valores divididos.

Como meu ‘delimitador’ é o espaço em branco, basta deixar vazio, como feito no step anterior!

Para visualizar a transformação, adicione o step select values e puxe todas as colunas clicando no get fields.

Assim o split fields to row divide uma única linha em várias, sendo muito utilizado quando temos aquelas planilhas com diversas linhas em um único campo.

Unindo com outros steps, é uma importante ferramenta para limpeza e tratamento de dados, valendo muito dominá-la para seus ETLs.