sábado, 20 de agosto de 2011

Kettle ou Pentaho Data Integration?

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.

4 comentários:

  1. Encontrei seu blog por acaso enquanto pesquisava sobre a criação de tabelas fato no Spoon, você poderia fazer um post sobre isso, explicando como fazer para povoar os campos da tabela fato, principalmente em relação à tabela tempo que só existe no modelo dimensional e ainda como fazer para povoar o campo das métricas?

    ResponderExcluir
  2. Estou preparando um post para explicar sobre sua dúvida.
    Apenas adiantando, a tabela de tempo terá um ID único para cada linha, sendo que podemos ter uma coluna para o ano, uma para o dia, uma para o mês, uma para hora e assim por diante.
    Dessa forma, o ID 59 (por exemplo) cadastrado na tabela fato, quer dizer que o evento aconteceu às 17:54 de 12/09/2011, pois na coluna dia da dimensão tempo havia o numero 12, na coluna mês o numero 09, na hora o número 17 e assim por diante. Como podemos ter milhares de combinações de datas, teremos milhares de linhas, uma para cada combinação.
    Em relação às métricas, podemos obtê-las calculando na própria query (com os operadores da linguagem que utilizarmos), ou utilizando os componentes do Kettle, que normalmente é mais aconselhável se o ETL exigir performance.

    ResponderExcluir
  3. De fato, estou criando as transformações no Spoon Kettle.

    ResponderExcluir
  4. Tem alguma apostila de Spoon?

    ResponderExcluir