TUTORIAL - PDI PENTAHO DATA INTEGRATION 4.2.0 Visão Geral RESPONSÁVEL DATA VERSÃO Bruce Willan 28/11/2012 1.0 Criação do documento Ronaldo Terto 29/11/2012 1.1 Revisão do documento Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 MODIFICAÇÃO 1 1. INTRODUÇÃO ................................................................................................................................................ 3 2. PENTAHO....................................................................................................................................................... 3 2.1 INSTALAÇÃO ...................................................................................................................................................... 4 2.1.1 Pré-Requisitos ........................................................................................................................................ 4 2.1.2 Instalação do Pentaho Data Integration ............................................................................................... 4 3. PROCESSO DE ETL NO PENTAHO .................................................................................................................... 6 3.1 CRIANDO UMA TRANSFORMAÇÃO ......................................................................................................................... 6 3.2 CRIANDO UM INPUT ........................................................................................................................................... 7 3.3 CRIANDO UMA TRANSFORMAÇÃO ....................................................................................................................... 10 3.4 CRIANDO UM OUTPUT ...................................................................................................................................... 12 3.4.1 Configurando uma Conexão com o Banco de Dados (Postgres 9.2) ................................................... 14 3.5 EXECUTANDO UMA TRANSFORMAÇÃO .................................................................................................................. 17 3.6 VERIFICANDO DADOS NA BASE ............................................................................................................................ 18 3.7 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................................................................ 19 Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 2 1. Introdução O Pentaho é uma ferramenta para criação de soluções BI (Bussiness Intelligence), ferramentas BI possibilitam às organizações realizarem uma série de análises e projeções, de forma à agilizar os processos relacionados às tomadas de decisão. Essa ferramenta possui uma série de módulos, os principais são: Pentaho BI Plataform Pentaho Data Integration - PDI (Kettle); Analysis View (Mondrian); Pentaho Reporting (Reporting) ; Weka (Data Mining). Este documento tem o objetivo de demonstrar de maneira geral a ferramenta Pentaho, especificamente como usar a ferramenta de ETL Pentaho Data Integration PDI, que permite realizar a extração de dados, a partir de diferentes formatos de entrada. Transformações desses dados, modificando valores, a partir de regras definidas para atender as necessidades do negócio. Carga desses dados também em diferentes saídas, como bancos de dados, ou diversos formatos de arquivos. 2. Pentaho Com a crescente demanda do mercado por ferramentas BI, o Petaho vem se popularizando rapidamente, que se dá ao fato, de que possui uma gama de ferramentas disponíveis para vários serviços disponíveis, para o auxilio dentro do processo de BI, como o Weka (Data Mining) e Analyses View (Mondrian). Além disso essa ferramenta inteiramente Open Source, sendo desenvolvida com o apoio de uma comunidade, ela é desenvolvida em JAVA, uma linguagem de programação de alto nível multi plataforma que possui alta compatibilidade com diversos recursos e ferramentas, como sistemas gerenciadores de bancos de dados, e diversos formatos de arquivos, é bastante conhecida no mercado e amplamente utilizada. Imagem localizada em: http://blogs.ambientelivre.com.br/marcio/pentaho-community-gatheringbrazil-2012-recife/ A plataforma Pentaho BI é distribuída através da Licença Pública da Pentaho (PPL - Pentaho Public License) de código aberto. Maiores informações sobre podem ser encontradas em http://www.pentaho.com/license/. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 3 Existem duas formas disponíveis para adquirir a ferramenta. A versão Community pode ser baixada gratuitamente em http://sourceforge.net/projects/pentaho/files/. Só nesse ano foram lançadas ou sofreram atualização de código pelo menos quatro versões, o que mostra o grande desenvolvimento da comunidade livre do Pentaho. Além dessa, existe a versão Enterprise. O download de uma versão trial pode ser efetuado no próprio site do Pentaho ( http://www.pentaho.com/) para testes durante 30 dias. A grande diferença entre as duas versões, além do preço, é que a versão Enterprise possui uma suíte de ferramentas já previamente integradas e algumas mais desenvolvidas que a versão livre. 2.1 Instalação 2.1.1 Pré-Requisitos Ter o ambiente Java instalado e configurado. Definir as variáveis de ambiente JAVA_HOME ou JRE_HOME. 2.1.2 Instalação do Pentaho Data Integration 1- Efetue o download do arquivo (Windows) em pdi-ce-4.2.0-stable.zip ou (Linux, Mac, etc). em pdi-ce-4.2.0-stable.tar.gz 2- Descompacte o arquivo em uma pasta de sua preferência. 3- Para iniciar o Pentaho execute o arquivo chamado Spoon.bat (Windows) ou spoon.sh (Linux) na pasta "data-integration/" e aguarde a inicialização. O pentaho é executado e o seu programa e inicializado sem a necessidade de sua instalação. Tela de inicialização do Pentaho Data Integration. 4- Ao inicializar o programa vai abrir uma tela interativa, no qual possui menus aonde poderão ser feitos os processos de ETL. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 4 Tela inicial do Pentaho Data Integration. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 5 3. Processo de ETL no Pentaho Consiste em pré-definir determinada base de dados, e o PDI se encarregara de realizar a carga, dependendo da origem dos dados é necessária uma configuração, para obter os campos desejados. Após o carregamento dos dados, existe opção de fazer alguma transformação, se necessário de acordo com a necessidade do negócio. Por ultimo indicar uma base de dados, ou arquivo onde os dados serão escritos, exemplo: Planilhas do Microsoft Excel, arquivos de Texto nos mais variados formatos ou inserções em um Banco de Dados. 3.1 Criando uma Transformação A primeira coisa a ser feita, é criar uma transformação, sendo uma tarefa básica e simples. Basta ir em ‘FILE’ no campo superior esquerdo, depois ir em ‘NOVO’ e por fim ‘TRANSFORMAÇÃO’. Criação de uma transformação Será exibida uma nova página, e varias funcionalidades e ferramentas vão surgir no lado esquerdo. Tela do PDI com novo painel de ferramentas destacado Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 6 3.2 Criando um Input Para inserir uma base de dados, clique em ‘INPUT’ que se localiza nesse novo painel de ferramentas que foi adicionada no lado esquerdo, após a criação de uma nova transformação de dados. Tela do Pentaho com input selecionado Após selecionar o ‘INPUT’ é preciso selecionar o tipo de entrada de dados que o PDI deve tratar, nesse exemplo uma tabela ‘Microsoft Excel’. Basta clicar em cima do tipo de entrada desejada ‘Microsoft Excel Input’ e em seguida arrasta-lo para dentro da área de trabalho. Com um clique duplo no novo ícone Microsoft Excel Input da área de trabalho, uma janela de configurações será aberta. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 7 Janela de configurações do Input Na janela de configurações, clique no botão Navegar, que se localiza no canto superior direito, esse botão vai redirecionar a uma janela de navegação pelo seu sistema operacional (Windows/Linux) para escolher o arquivo que contem os dados que serão usados como base. Após selecionar o arquivo, clique no botão Add, que se localiza ao lado esquerdo do botão navegar. A ação que o botão Add executa é linkar o arquivo ao PDI adicionando o seu conteúdo, podendo agora acessar e manipular os dados que residem dentro do arquivo selecionado. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 8 Quando o arquivo for selecionado, o path (caminho completo do arquivo) vai ser inserido dentro da janela de arquivos selecionados. Note que na parte superior da janela existem várias abas, selecione aba ‘Sheets’, clique no botão abaixo do campo, botão chamado ‘Get Sheetname(s)’, o arquivo exemplificado é divido em varias abas, essa aba ‘Sheets’ é justamente para especificar quais abas ou planilhas do Microsoft Excel serão selecionadas. Selecione as abas que lhe convém, é prudente selecionar apenas as abas necessárias para a transformação. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 9 Após selecionar as abas, está na hora de importar os campos que contem dentro delas, selecione a aba ‘Fields’ na janela do PDI e clique no botão ‘Get Fields from header row.’, essa ação vai listas todos os campos (colunas), de acordo com cabeçalho da planilha, desde que contenha algo na primeira linha da tabela (cabeçalho), contidas nas abas selecionadas, quando não houver abas, no arquivo Excel, todos os campos do arquivo serão extraídos. Clique em ‘Ok’ e finalize o processo de recuperação de campos. 3.3 Criando uma Transformação Com o arquivo de entrada configurado, vamos demonstrar como fazer uma transformação, ou seja, uma modificação nesses dados carregados no passo anterior Inputs. Para isso o PDI nos permite usar códigos Java script. No menu design onde foi selecionado anteriormente a opção ‘Input’ vamos selecionar ‘Scripting’ e no nível inferior ‘Modified Java Script Value’. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 10 Clique e arraste o Step ‘Modified Java Script Value’ para a área de trabalho do PDI, a área de trabalho ficará conforme a figura abaixo: Para relacionar o ‘Microsoft Excel Input’ ao ‘Modified Java Script Value’, basta passar o mouse em cima em cima do ‘Microsoft Excel Input’ e um menu será exibido. Clique no quarto ícone, que contém uma seta apontando para o lado direito, e arraste até o ‘Modified Java Script Value’. Após fazer essa ligação, a saída dos dados de ‘Microsoft Excel Input’, agora se tornara entrada dos dados de ‘Modified Java Script Value’. Com um clique duplo em ‘Modified Java Script Value’, será exibida uma janela de configuração desse Step, onde são listadas as variáveis originadas na Step Anterior, e uma área ‘Script’ onde deve ser inserido os códigos na linguagem Java Script, de acordo com a necessidade. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 11 Ao clicar sobre um campo, o mesmo surge na janela de edição, é sugerida a criação de funções para minimizar o trabalho, é possível declarar novas variáveis reutilizáveis nos Steps seguintes do processo de transformação. 3.4 Criando um Output Agora que temos a entrada e a transformação, temos que carregar esses dados manipulados ou não em algum dispositivo de saída, a ferramenta utilizada foi o PostgresSql 9.2. A Primeira coisa deve ser feita é ir ao menu Design, aonde selecionamos anteriormente ‘Input’ e ‘Scripting’ e selecionar ‘Output’, em seguida serão exibidas, algumas opções: Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 12 Basta selecione a opção ‘Table Output’, arrasta-la para a área de trabalho e realizar o relacionamento entre os Steps como feito anteriormente, entre ‘Microsoft Excel Input’ e ‘Modified Java Script Value’, agora com ‘Modified Java Script Value’ e ‘Table Output’. Ao realizar a ligação será apresentado esse menu que vemos a cima do Step ‘Table Output’, clique na opção ‘Main Output of step’. Com o a adesão de dispositivo de saída, que no caso será uma tabela de banco de dados, poderemos adicionar os dados do extraídos no Step Input, fazer a sua alteração usando Java Script e fazer o seu carregamento, assim temos um ciclo de processo ETL completo, com o extract, o transform e o Load. Ressaltando que com a opção ‘Table Output’ não é possível inserir dados mais de uma tabela no mesmo Step. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 13 Com um clique duplo em ‘Table Output’, será exibida uma janela contendo configurações para a inserção dos dados na tabela. 3.4.1 Configurando uma Conexão com o Banco de Dados (Postgres 9.2) Para inserir os dados em uma tabela dentro de um banco de dados, precisamos estabelecer uma conexão com o banco. No campo superior direito clique em ‘New’. Esse botão, ira abrir uma janela que contem os parâmetros que o PDI necessita para estabelecer a conexão com o banco, contendo: SGBD Banco de dados - Selecione PostgresSQL. O tipo de acesso, que fica logo em baixo (Driver) - Deixe opção default ‘Native JDBC’. Host name - localhost Nome do banco de dados – ‘String que contém o nome do banco de dados’ Numero da porta - 5432 Nome do usuário do SGBD Senha do usuário do banco de dados SGBD . Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 14 Para testar a conexão basta clicar em no botão ‘Test’, se a mensagem por positiva bastar clicar em ‘OK’, o PDI agora consegue acessar o Banco de acordo com as regras definidas no banco de dados. Após estabelecer a conexão, é necessário de definir qual tabela será selecionada para a inserção dos dados. Clique em ‘navegar’, ao lado de ‘Target Table’, é exibida uma janela que vai contém as tabelas do banco, escolha a que lhe convém. Após estabelecer a conexão e selecionar a tabela, está na hora de mapear as variáveis vindas do step anterior ‘Modified Java Script Value’ com as colunas ou campo da tabela. Primeiro vamos recuperar os campos que existem dentro da tabela escolhida, Em baixo você ver duas abas e um quadro em baixo delas, vá até a aba ‘Database Fields’ e clique no botão ‘Enter Field Mapping’. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 15 Será exibida uma janela, onde existem três campos, do lado esquerdo você ver os números das colunas das tabelas e das variáveis vindos do Java Script, no meio o nome dos campos vindo da tabela selecionada e na direita um campo em branco. Selecione um campo (variável) na tabela esquerda (Source fields) e um campo na tabela do meio (Target fields). O campo selecionado na coluna Source fields que é nome da variável vai servir com entrada para Target fields, que representa uma coluna de uma tabela do banco de dados, em seguida clique em ‘Add’ para que seja estabelecida uma relação, ou selecione campos mapeados ‘Mappings’ e clique em ‘Delete’ para apagar um mapeamento. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 16 Após mapear todos os campos que lhe são interessantes, clique no botão ‘Ok’. Na janela de alteração do ‘Table Output’ faça uma checagem no radio Button ‘Specify database fields’, e clique em ‘Ok’ para finalizar alteração. Após concluir a transformação ETL, é hora colocar o processo inicializar. 3.5 Executando uma Transformação No menu principal na parte superior, a primeira opção é uma seta para a direita, na cor verde, clique nela e inicie a transformação. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 17 Durante a execução do processo é possível observar o andamento do mesmo, o pentaho, exibe algumas informações para cada step: nome, número de linhas lidas, linhas escritas, linhas atualizadas, erros, o tempo de execução do processo, e velocidade de e/s. 3.6 Verificando dados na base Concluído o processo, está na hora de verificar se a inserção dos dados foi realmente realizada, de um SELECT simples na tabela especificada do banco Postgres e veja o resultado. Dados inseridos, operação foi um sucesso. Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 18 3.7 Referências Bibliográficas http://www.oficinadanet.com.br/artigo/2131/uma_introducao_simplista_aos_conceitos_de_business_intelligence__parte_1 Acessado em 27/11/2012 http://pedrofsi.blogspot.com.br/ Acessado em 27/11/2012 Pentaho de Business Intelligence – Manual de utilização, Universidade federal da Bahia, Departamento de Ciência da Computação Disponível em: http://wiki.softwarelivre.org/pub/PentahoBrasil/Documentos/Pentaho_3_5.pdf Universidade Católica de Brasília - UCB QS 07 Lote 01 - Bl. E - Sala 008 - EPCT - Águas Claras Taguatinga/DF - CEP 72.030-170 Fone: (61) 3356.9652 19