O alquimista de dados!
O Pentaho Data Integration (PDI), tem por objetivo servir de ETL (Extraction, Transformation and Load), afim de pegar (Extraction) dados provenientes de diversas fontes (BD, CSV, etc...), preparar e organizar (Transformation) para que eles possam ser carregados (Load) em um novo repositório, geralmente bancos OLAP utilizados para realização de análises.
A partir deste ponto vamos trabalhar com um único cenário, passando pelo PDI até um modelo simples de dashboard no Pentaho Server.
Considere que nosso banco OLTP possui as seguintes informações:
E a estrutura desse banco será esta:
Depois dessas considerações, vamos começar!
Iniciando o PDI:
Para iniciarmos qualquer um dos programas da suite Pentaho é super simples. Primeiro abra o prompt de comandos do seu sistema operacional, e através dele, vá até a pasta que você criou e acesse a pasta "data-integration".
- #FICADICA: Caso utilize o Linux, você pode acessar a pasta "data-integration" normalmente, clicar com o botão direito em algum espaço dentro da pasta e clicar na opção "Abrir no terminal". Caso utilize o Windows, clique no icone da pasta "data-integration" e selecione a opção "Abrir Janela de Comando Aqui". Isso serve para qualquer pasta!
Após ter acessado a pasta de interesse, execute:
- No Linux:
./ spoon.sh
- No Windows
Spoon.bat
Após digitar o comando, pressione "Enter" e aguarde o carregamento.
Se aparecer uma tela similar a da imagem abaixo, é sinal que deu tudo certo! Agora vamos colocar a mão na massa.
Montando o step-by-step da transformação:
Configurando o Table Input:
Dentro do PDI temos uma forma bem interativa de conseguir montar um banco de dados utilizando varias fontes, como já havia dito antes, e aqui vamos criar um banco OLAP baseado no banco OLTP que já foi apresentado anteriormente. Pra isso vamos seguir os seguintes passos:
#FICADICA: OLAP?!? OLTP?!? Não conseguiu entender essas siglas? Relaaaaxa... Dá um pulinho no nosso glossário!
- Dentro do PDI, já aberto, vá em Arquivo > Novo > Transformação
- Do lado esquerdo temos duas abas, uma chamada View e a outra chamada Design. Clica na aba Design.
- Agora logo abaixo temos um campo para pesquisa. Digite ali por table input e logo abaixo irá aparecer o primeiro item que vamos precisa. Clique segure e araste esse item para a tela ao lado. Veja a imagem abaixo:
O Table input é a porta de entrada dos dados que vamos pegar do banco já existente. Ao clicar duas vezes no ícone que acabou de arrastar você deve ver a seguinte tela:
No campo Nome do Step, você pode colocar o nome que achar melhor. Uma recomendação é colocar o que quiser antes do nome do item por exemplo, "BancoOLTP - Table input". Isso facilita na identificação do item e do que ele faz.
No campo Connection, você irá ter que criar a conexão com o banco OLTP pra conseguir pegar os dados que precisa. Então siga as seguintes instruções:
Clique no botão ao lado chamado "New..."
Um tela, similar a imagem abaixo, deve aparecer:
Nela, você irá dar um nome a essa conexão e selecionar o SGBD referente ao banco OLTP.
Logo depois, do lado direito em Settings é só adicionar as informações para que o PDI possa se comunicar com o BD.
- OBS: Os campos dentro de Settings podem mudar de acordo com o SGBD selecionado.
Assim que preencher todos os campos necessário, clique no botão Test e verifique se vai aparecer uma mensagem similar a esta:
- OBS: Caso aparece algo diferente, verifique as informações em Settings, pois pode ser que tenha digitado algo de errado.
Agora é só clicar em OK e, assim, voltar para a tela de configuração do Table Input.
Você agora pode selecionar, dentro do campo connection, a conexão que acabou de criar.
Nosso próximo passo é passar as instruções do que queremos que o PDI pegue. No campo SQL você pode montar a query para acessar no banco OLTP os dados que necessita para criar o seu banco OLAP. Assim que fizer, clique em Preview _para ter uma noção do que sua _query está retornando e se é o que você realmente quer. Logo após, é só fechar a tela de visualização e clicar em OK.
Veja como ficou no nosso exemplo:
Table input configurado! Agora vamos para os nosso próximo passo.
#FICADICA: Perceba que com uma query estamos pegando todos os dados que precisamos de uma unica vez! Você até pode montar uma transformação por tabela, porém isso é bem custoso já que irá ter que montar, ao invés de uma, várias transformações.
- Como estamos pegando todas as informações como se fosse uma grande tabela, agora vamos começar a separar as informações ao mesmo tempo que montamos a estrutura do nosso banco OLAP.