ETL – De uma API Rest para o MySQL utilizando Pentaho – Parte 1

O primeiro conteúdo do Blog será dedicado a uma ótima ferramenta utilizada para trabalhos de ETL, o Pentaho! Esta primeira parte será dedicada a uma explicação da ferramenta que vamos utilizar, o Pentaho Community, assim como algumas configurações básicas. Na Parte 2 irei mostrar como extrair os dados de uma API, em uma Transformação simples. A Parte 3 mostrará como persistir os dados extraídos em uma base de dados relacional e, por fim, na Parte 4 será realizada uma integração entre Transformações e um Job, compartilhando resultados entre elas. Vamos lá! 

Pentaho Community 7.1

Atualmente na versão 7.1 o Pentaho Community é um software capaz de realizar diversas tarefas de integração de dados entre diferentes formatos. Com uma interface simples e intuitiva permite criar complexas integrações de dados sem nenhuma linha de código. Além disso é um software gratuito e pode ser utilizado livremente.

Será utilizado, a princípio, o módulo Data Integration, a suite possuí outros módulos, como: criação de relatórios, dashboards, etc. Não é necessário instalar os pacote baixado, apenas descompactar após o download. É compatível com Windows e Linux, abaixo informações para o download:

URL: https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip/download
Tamanho: 903.9 MB

Iniciando

Estarei utilizando o Linux (que recomendo fortemente que o utilizem também) durante os tutorias, porém os passos são bem semelhantes no Windows. Após o download, o arquivo foi descompactado  no caminho abaixo:

/opt/pentaho-data-integration

Porém esta é uma preferência minha, você pode utilizar qualquer outra pasta, fique atento com a questão de permissões na pasta escolhida. Vamos abrir o Pentaho a partir do arquivo spoon (.sh no Ubuntu e .bat no Windows).

$ ./spoon.sh

Pronto, inciamos o Pentaho!

Iniciando o Pentaho Data Integration
Iniciando o Pentaho Data Integration

Job x Transformações

Vamos começar a conhecer o PDI (Pentaho Data Integration), primeiramente as diferenças entre Transformações e Job. Em ambos é possível criar passos para automatizar tarefas, porém, no primeiro criamos alguma tarefa mais detalhada, pois oferece maiores recursos para o tratamento dos dados. Enquanto no segundo podemos utilizar para integrar várias transformações, criando assim um projeto com várias etapas de tratamento, ainda é possível adicionar regras  de validação e controle de fluxo. É interessante conseguirmos dividir um projeto em Transformações que fazem pequenas tarefas, assim podemos reaproveitá-las.

Tela Inicial do PDI
Tela Inicial do PDI

Imagine um caso onde é preciso ler um arquivo de texto e executar uma determinada ação nele. Não é necessário criar uma Transformação para cada arquivo, ao invés disso, pode se criar apenas uma, que recebe o nome do arquivo através de uma variável, e executa as ações. Desta forma esta transformação poderia ser reutilizada em vários projetos.

O Job é responsável controlar um conjunto de Transformações, com ele podemos criar um fluxo que utilize as Transformações para um determinado projeto. Com a sua utilização é possível “copiar” informações entre transformações. Através do Job também é possível executar outros Jobs, criando rotinas mais complexas.

Steps

Os Steps são cada parte de uma determinada tarefa que podemos adicionar ao nosso Job ou Transformação. Eles são interligados com a direção que queremos que sejam executados, um Step passa o seu resultado para o próximo e assim por diante até que seja realizado toda a tarefa desejada. Abaixo um simples exemplo de uma entrada de dados a partir de uma planilha para armazenamento passando por um Step de calculo de informações e finalizando com a persistência em uma base de dados.

Exemplo de Steps
Exemplo de Steps

Cada Step possuí configurações próprias, basta clicar duas vezes sobre eles que uma janela é aberta com as configurações. Por exemplo no “Microsoft Excel Input” é possível alterar o caminho do arquivo de entrada, as colunas que serão utilizadas, e muitas outras configurações. O PDI já vem com Steps para várias funções, porém, é possível adquirir outros a partir do Market Place do Pentaho (Tools > Marketplace). Desenvolvedores podem se aventurar e criar sua própria funcionalidade, é uma forma de automatizar tarefas complexas e específicas.

Nos Jobs também existem Steps porém diferentes, são controles de fluxo e validações, além de execução de outras Transformações. Abaixo um exemplo onde após iniciar a rotina é realizada uma checagem da conexão com a base de dados, caso exista uma Transformação é executada. Após é realizada uma contagem do número de linhas de uma tabela, caso atenda o esperado o Job é finalizado com sucesso, caso contrário o Job é abortado.

Steps em um Job
Steps em um Job

Hop

A ligação entre os Steps é chamada de Hop, que pode ser realizada de acordo com alguma condição. Para criar um Hop entre Steps basta segurar a tecla Shift e em seguida clicar no Step de origem e arrastar o curso até o Step de destino. No exemplo abaixo a transformação foi alterada adicionando um Step de validação de dados, caso algum erro ocorra será exibido um log de erro e a Transformação será abortada, caso contrário será efetuado um calculo e a persistência das informações em uma base de dados.

Steps com validações
Steps com validações

Configurando MySQL

Para as próximas partes do tutorial será necessário utilizar uma conexão com o MySQl, portanto é necessário adicionar o seu driver ao PDI. Isso pode ser feito através da Marketplace, que está disponível no menu Tools. Ao abrir a página no campo de busca insira “MySQL”, será exibido o ítem “PDI MySQL Plugin”, clique nele. Na nova janela que se abriu basta clicar no botão “Install”, como na tela abaixo. Pronto, agora é só reiniciar o PDI e já será possível criar uma conexão com o MySQL.

Instalando plugin do MySQL
Instalando plugin do MySQL
<strong>Dica:</strong> Não existe um plugin para o Oracle, por exemplo, então como utilizá-lo? É bem simples, baixe o arquivo .jar com o driver no <a href="http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html">site oficial da Oracle</a>. Depois copie este arquivo dentro da pasta "lib" que fica na instalação do Pentaho, reinici-o e pronto, já é possível criar uma conexão com o Oracle!

Conclusão

Esta foi uma breve apresentação do PDI, recomendo que você seja bastante curioso e explore os Steps para conhecer suas preferências e assim consiga ver o quando o Pentaho é abrangente. A documentação disponível é bem rica e existe um vasto conteúdo na internet sobre o assunto.

Imagine como quebrar a sua rotina atual em pequenas partes, futuramente serão transformadas em Transformações. Faça um planejamento das reutilização das partes e das dependências entre cada tarefa. Essas informações irão ser úteis para o levantamento do que tem de ser feito em cada etapa.

Na segunda parte será apresentado um exemplo prático de como extrair os dados de uma API Rest utilizando uma Transformação simples.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *