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.