logo-pentaho-n

Interessante como fiquei maravilhado no processo de descoberta do funcionamento da ferramenta Kettle (também chamado de Data Integration), da suíte do Pentaho. O Kettle é uma ferramenta de ETL, e para tal, existem diferentes soluções no mercado, tanto pagas quanto gratuitas ou livres.

ETL é um termo inglês que significa Extract Transform Load, ou seja, Extração Transformação e Carga, indicando que são ferramentas que tem como função extrair dados de bases diferentes, sistemas diferentes, realizar transformações afim de adequa-los a determinadas regras e por fim gerar um Data Mart ou Data Warehouse. Porém nada impede que o ETL seja realizado com outros fins.

No meu ambiente de trabalho, o Kettle já era utilizado por alguns colaboradores, sendo esse um dos motivos de eu ter iniciado meu trabalho/aprendizado com essa ferramenta ao invés de outras. Afinal entre uma caneca de café e outra, dava pra aprender alguns truques e macetes com os colegas que já haviam desbravado esse campo.

O Kettle tem uma interface bem simples, com os elementos drag-n-drop, fáceis de movimentar, configurar e organizar.

tela kettle

O Kettle pode ser utilizado tanto para fins mais robustos e que necessitam de acesso a grandes bases de dados, como pode também ser utilizado para extrair alguns dados simples e exportar em uma planilha do excel, o que define é a necessidade do caso. Porém em todos eles o kettle tem steps que facilitam, tanto a extração, quanto a manipulação dos mesmos.

Alguns dos problemas que tive durante a utilização da ferramenta se referem a impossibilidades operacionais em alguns casos. Arquivos muito grandes, estouro de memória e alguns gargalos durante a execução podem tirar qualquer um do sério.

Mas existem formas de configurar cada step da transformação para utilizar de forma inteligente os recursos da máquina. Temos então a possibilidade de segmentação dos arquivos a serem lidos em disco, permitindo a leitura por porção, é possível utilizar pipeline nos steps para habilitar a sua execução de forma simultânea em diferentes instâncias, mas no mesmo fluxo de dados e também a possibilidade de commit nas operações de inserção e atualização dos dados na base por lote, liberando assim memória alocada para os streams a cada commit.

ETL é um processo segmentado e assim como o desenvolvimento de software, é algo que é construído para um fim geral ou específico. E para tanto é necessário bastante análise crítica para a implementação das soluções.
O termo utilizado para definir um processo ETL com início, meio e fim  no Kettle é chamado de Transformação. Nessa transformação estão os steps de Input (ler arquivos de texto, acessar tabelas em bases de dados, acessar webservices e por aí vai), de Output (exportar em arquivo de texto, planilha, inserir ou atualizar em base de dados) e uma infinidade de possibilidades na parte intermediária, ou seja, transformar os dados.

Share Button