O Pentaho Data Integration (PDI), também conhecido como Kettle, é uma ferramenta de código aberto, desenvolvida em Java, para Extração, Transformação e Carga (ETL) de dados, ferramenta esta integrante da suíte Pentaho de Business Inteligence (BI).
Todos os processos são criados com uma ferramenta gráfica, que pode ser usada independentemente ou integrada à outras ferramentas do Pentaho.
Dentre as diversas funções, o Pentaho Data Integration, como ferramenta de ETL, pode ser usado principalmente para:
-
Extração: coletar dados de diversas fontes. Podem ser arquivos de diferentes formatos ou das mais distintas bases de dados;
-
Transformação: mover e modificar dados, limpando, denormalizando, agregando e enriquecendo esses dados durante o processo;
-
Carga: armazenar os dados em seu destino final. Também podem ser arquivos de diversos formatos ou um outro banco de dados. Normalmente são armazenados em um Data Warehouse.
A ferramenta de ETL que hoje faz parte da suíte do Pentaho, conhecida como Kettle, foi desenvolvida em 2002 por Matt Casters e hoje, integrada ao Pentaho, recebe a contribuição de um número cada vez maior de pessoas, inclusive de seu próprio criador. A sigla K.E.T.T.L.E, significa “Kettle Extraction, Transport, Transformation and Loading Environment”, ou seja, Ambiente Kettle de Extração, Transporte, Transformação e Carga.
O Pentaho Data Integration é constituído de várias aplicações distintas, a saber:
-
Spoon: ferramenta gráfica responsável por modelar o fluxo de dados desde sua entrada até sua saída. Nela é possível criar jobs e transformations;
-
Pan: ferramenta de linha de comando que executa as transformações modeladas no ”Spoon” ;
-
Kitchen: ferramenta de linha de comando que executa os jobs modelados no ”Spoon”;
-
Carte: é um servidor web que permite executar transformations e jobs remotamente.
As chamadas Transformations são responsáveis pelo tráfego dos dados propriamente dito, dados estes que podem ser extraídos de diversas fontes (tabelas de um BD, planilhas, documentos de texto, arquivos csv, arquivos xml, etc), tratados com um número vasto de componentes e inseridos/exportados para a mesma variedade de saídas (as mesmas das fontes de entrada).
Os Jobs podem ser responsáveis por executar um conjunto de transformations e outros jobs internos, assim como manipular e transferir arquivos, enviar e receber emails e executar uma série de validações.
Cada componente de uma transformation ou job, é chamado de Step e é conectado ao próximo componente através de uma linha, chamada Hop. Os componentes (steps) de uma transformation, por exemplo, podem ter um Hop que liga-o a outro step, que continuará o fluxo de dados, ou a um outro step, que fará o tratamento dos dados caso estes apresentem algum erro ou inconsistência no step anterior. Desta forma, a ferramenta ainda permite que o fluxo não seja interrompido caso haja dados inconsistentes, permitindo fácil identificação e continuidade nas rotinas desenvolvidas.
Caso um usuário deseje ajudar no desenvolvimento da ferramenta, assim como no desenvolvimento ou melhoria de novos componentes, basta que o mesmo baixe o código fonte da aplicação, disponível no site do Pentaho, e faça as alterações desejadas.
Um grande número de componentes/plugins customizados estão inclusive disponíveis para download.