Olá pessoal!

Mais um post no blog sobre o  portfólio e seu processo de criação! Mas este devo dizer que é um pouco diferente.

No post de hoje quero mostrar um recurso de “auditoria” para as execuções tanto dos jobs quanto das transformações, independente de qual seja.

Para quem não sabe, o Pentaho permite a criação de um controle na sua seção de logging que fica na janela de parâmetros do software  e esse recurso informa alguns processos que ocorrem como:

  • Quantidade de linhas processadas;
  • Quantidade de linhas rejeitadas;
  • ID da execução;
  • Nome das transformações entre outras.

Então, decidi trazer e mostrar para vocês o recurso, visto que estou utilizando nas principais transformações e jobs. 

CRIANDO O LOG DE AUDITORIA

O primeiro passo que eu gostaria de recomendar caso não tenha, é criar um schema no seu banco chamado Audit ou Auditoria, ficando ao critério.

Uma vez criado, vamos para o nosso job para configurar e capturar essas informações.

NOTA: alterei a ordem de execução dos jobs pois pensei melhor e achei que  as variáveis devem vir primeiro na execução, independente de qual seja. Assim, garantimos que toda transformação após, tenha acesso a variável. 

Irei criar o log para a transformação que carrega a dimensão cliente, no momento, não se prendam neste detalhe, ela virará um post em breve.

Abram o job como se fossem criar ou alterar uma transformação. Dentro do job, cliquem duas vezes em qualquer espaço em branco, longe de qualquer transformação para abrir esta tela.

Esta é a tela de propriedade do job, é nela que iremos criar a conexão com o banco para armazenar o log de execução para possíveis auditorias.

Antes, vá apenas na aba Settings e marque a caixa de diálogo “Pass bactch id”.

Marcado a caixa, vamos na aba de log criar as conexões.

  • Em vermelho: criamos as conexões
  • Em Rosa: escolhemos o que iremos registrar
  • Em marrom: as duas “tabelas” que iremos criar para armazenar o log.

Criem a conexão com seus bancos de forma correta e após, clique em SQL, o próprio PDI irá criar a tabela.

As duas tabelas de log criadas. No meu caso, customizei as configurações deixando desse jeito. Ao final do post, disponibilizarei o arquivo txt para criarem igual, caso queiram. 

Cientes de que este foi o para o job, agora iremos criar para a transformação.

Façam o mesmo processo dentro de uma transformação ou todas as transformações que queiram “auditar”. Para este exemplo, criarei para  a dimensão cliente.

O procedimento é basicamente o mesmo, sendo que aqui, teremos mais opções, utilizando:

  • Transformation
  • Step
  • Performance
  • Metrics

O interessante de criar esse recurso para a transformação é que ele permite escolher quais steps dentro da transformação queremos monitorar melhor, veja:

Esse recurso só é habilitado para ‘transformation’ os outros não possuem essa opção.

Configurado, basta clicar em SQL para criar as tabelas no banco.

Na imagem foi cortado, mas o PDI cria dois indexes na tabela. A criação fica ao critério, não há nenhum problema em não criar.

E por fim, há outro tipo de log que podemos registrar tanto de job quanto de transformação que se encontra na sua configuração inicial, veja a imagem abaixo:

Percebam que atribui um job de transformação para ser executado e configurei na aba Logging um diretório para o arquivo de log de tudo que essa transformação irá processar.

Todos os steps serão gravados neste log, por isso, é bom não detalhar muito para não comprometer a execução do ETL.

Como é um ambiente de exemplo, não há problema aqui.

Como podemos perceber,  o processo foi executado com sucesso. Agora vamos ver registros gerados nas tabelas e nos arquivos.

Este é um exemplo do csv do arquivo de log gerado pelo job EXEC_DIM_CLIENTE. 

Abrindo o arquivo de vocês e dependendo do nível de detalhe, perceberão tudo o que ele registra quando está sendo executado. 

As tabelas do schema Audit foram devidamente criadas, como podemos observar na imagem abaixo:

Na imagem abaixo, os registros armazenados na tabela StepAudit, que processa e armazena cada ação dos steps dentro das transformações.

O exemplo de como o PerformanceAudit age, registrando os steps. 

Estes são os melhores exemplos para mostrar o uso. Como podem ver, o Pentaho consegue capturar boas métricas de processamento para uma análise mais depurada.

Uma outra opção que podemos realizar e acho que seria até melhor, é criar um banco à parte para registrar somente essas tabelas. Desse modo, não “poluímos” o DW com essas tabelas de métricas.

CONCLUSÃO

Este foi mais um post da parte administrativa do portfólio onde quis mostrar maneiras de armazenar logs de execução das duas formas que o Pentaho permite.

Lembrem-se que quanto mais detalhado for e quanto mais transformações logarmos para ‘auditoria’ mais lento se torna o processo.

Os logs de execução são uma importante ferramenta até para acompanhamento e melhorias das métricas e das execuções do ETL. Vale a pena implementar em suas transformações.

Espero que tenham gostado do post! Deus os abençoe!

Link para as transformações, aqui.