Remover acentos de strings usando o Pentaho Data Integration

Usando o Pentaho Data Integration, quando a gente precisa substituir caracteres acentuados de uma string por não acentuados, algumas opções podem surgir sobre como fazer isso, mas a gente tem uma preferida e vamos falar sobre isso agora.

Muita gente sugere a utilização de uma função Javascript dentro do step Modified Java Script Value, mas há problemas aí:

  • Para muitos dados, você vai ter uma perda de performance significante;
  • A robustez do seu código vai depender da função que você adotar, que muitas vezes vem de um StackOverflow da vida – nada contra, mas tem que escolher direito.

A solução que prefiro adotar, tem a performance do User Defined Java Expression, que roda código nativo e a robustez do Apache Commons – que já vem no PDI – por trás. Basta você utilizar o seguinte código usando o step User Defined Java Expression:

 

org.apache.commons.lang3.StringUtils.stripAccents(field)

 

http://blog.oncase.com.br/wp-content/uploads/2018/04/Screen-Shot-2018-04-22-at-11.53.36.png

 

Claro, o ideal seria termos um step para isso, ou pelo menos suporte a essa operação dentro do step String Operations. Mas enquanto alguém – inclusive a gente da Oncase – não toma iniciativa de submeter um novo plugin ou pull request, essa segue sendo a opção mais elegante.

Penso que a implementação ideal seria um step que aceitasse Metadata Injection e onde também o usuário pudesse escolher entre campos específicos ou todos os campos String a passar por esse tratamento.

Quem se habilita?

Marcello Pontes
Analytics Architect & Front-ender at Oncase |