Olá pessoal, como estão!?

No post passado, criamos a dimensão de cliente e agora, vamos criar a dimensão que é responsável pela empresa ganhar dinheiro que é a dimensão produto.

Será um post bem breve por ter apenas extraído da tabela os produtos produzidos pela empresa de materiais esportivos!

Lembrando que as transformações de fato ocorrerão em breve.

Query utilizada para consulta na tabela. Utilizei left join par não excluir produtos, o que poderia levar a inconsistências

A transformação foi bem simples, com o diferencial que agora adicionei a coleta de metadados da dimensão.

Como podem ver, uma transformação bem básica, apenas para extrair os produtos. Esse tipo de processo que temos feito também pode ser chamado de ELT, uma vez que estamos apenas extraindo e carregando com a transformação vindo após a carga.

Uma situação que percebi e quero chamar atenção para que tomem cuidado é a seguinte, reparem no data type e configuração que irei atribuir para a coluna weight no step select values.

Perceba que o data type está numeric com um tamanho e precisão de 5,2.

Indo para o step de table output e como minha tabela já estava criada, ele pediu para alterar o data type, o que não deveria acontecer, já que minha tabela está configurada como decimal(12,2).

Quando clico em execute sql o próprio Pentaho acusa erro de conversão.

Executei um drop na tabela e recriei como numeric(5,2), veja que desta vez, foi criada com sucesso:

Agora, vamos tentar realizar a carga na dimensão.

Como podemos ver, acusou erro e falhou na carga da dimensão produto. Assim, irei consultar minha tabela de log de erros para verificar o erro que o Pentaho retornou.

Como podemos perceber, deu erro de overflow quando o Pentaho tentou converter de float para numeric.

Aumentando somente o tamanho e mantendo o valor de precisão em 2, veja que muda o resultado.

Se formos na tabela e der um clique em SQL, veremos que ele pedirá para modificar o data type para decimal(12,2) .

Reexecute sua transformação, e verá que o Pentaho executou a carga com sucesso.

Veja também, no próprio log de transformação, que ele não escreveu nada na tabela de log de erro.

Executando um select na tabela de produtos.

Temos as 504 linhas, que é o exato valor extraído da fonte.

CONCLUSÃO

Este post falou mais sobre um comportamento diferente do Pentaho do que a dimensão!

Quis mostrar neste post o cuidado que se deve tomar quando for escolher o data type no step de select value. Ao que indica, ele considera um tipo quando é uma configuração e outro se for maior.

Achei essa descoberta bem interessante por ter sido de uma forma bem sem querer e inusitada, não esperava esse tipo de situação.

Irei investigar mais sobre essa situação para entender melhor o que ocorre com o Pentaho!

Além do mais, reforça a importância do log de erro armazenado em tabela! Só consegui descobrir porque tinha a descrição armazenada no banco de dados!! Criem o log de erros!

Se inscreva para receber as novidades: