Você está na página 1de 78

1

Jarley Nbrega jpn@cin.ufpe.br

Pentaho Data Integration

Dezembro de 2009

Agenda

O PDI e o Pentaho BI Suite


Instalando o PDI

Trabalhando com arquivos

Pentaho BI Suite
Coleo de Aplicaes de Software
Criao e deployment de solues para

tomada de deciso
Open source
Enterprise /Community Editions
http://www.pentaho.com

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho BI Suite
Anlise
multidimensional

Integrao
de dados

Reporting
Funcionalidades

Dashboards

IN1177 - Banco de Dados para Suporte Deciso

Minerao
de dados

Janeiro de 2010

Pentaho BI Suite

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquitetura do Pentaho BI

Camadas da arquitetura do Pentaho BI Suite (Bouman and Dongen, 2009)


IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho BI Suite
Pentaho BI Platform demo
Instalao pr-configurada da plataforma Pentaho
Demonstrao do uso de relatrios, cubos e

dashboards
Base de dados Steel Wheels

Download
http://sourceforge.net/projects/pentaho/files/
Pasta Business Intelligence Server: arquivo
biserver-ce-3.6.0.stable.zip (~170MB)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho BI Suite
Um pequeno roteiro para rodar o BI Server
Baixar e descompactar o arquivo
Certifique-se que existe uma JVM instalada
Verifique a varivel de ambiente JAVA_HOME
Se estiver no Linux, d acesso de gravao e leitura
para a pasta do tomcat.
sudo chmod 755 ./tomcat/*

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho BI Suite
Um pequeno roteiro para rodar o BI Server
Inicie o BI Server
Windows: <pasta>\bi-server-ce\start-pentaho.bat

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho BI Suite
Um pequeno roteiro para rodar o BI Server
Inicie o BI Server
Linux: <pasta>/bi-server-ce/sh

IN1177 - Banco de Dados para Suporte Deciso

./start-pentaho.sh

Janeiro de 2010

Pentaho BI Suite
Um pequeno roteiro para rodar o BI Server
Acesse a url

http://localhost:8080/pentaho

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho BI Suite
Um pequeno roteiro para rodar o BI Server
Entre com o usurio joe e navegue na aplicao

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration


Uma das ferramentas de
BI da plataforma Pentaho

Projeto open source


encampado pelo
Pentaho em 2006
Desenvolvido por Matt
Casters
Anteriormente
conhecido como Kettle
KDE Extraction,

Transportation,
Transformation and
Loading Environment
IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration


Timeline do PDI

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration


Principais funcionalidades
do PDI

Integrao
de Dados

Processo
de ETL

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration


Carregando dados em um DW ou datamart
Extrao
Processo de
ETL

Transformao

Carregamento

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration

Extrao

de dados de diferentes
fontes e formatos

Validao e descarte
de dados de acordo
com regras e padres

Transformao

dos dados de acordo


com requisitos
tcnicos e de negcio

Converso dos tipos


de dados, filtragem de
dados, sumarizao

Carregamento

dos dados
transformados em
uma base de dados

Reescrita dos dados e


adio de novas
informaes

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration

Carregamento

Extrao

IN1177 - Banco de Dados para Suporte Deciso

Transformao

Janeiro de 2010

Pentaho Data Integration


Atividades de Extrao
Captura dos dados
Leitura a partir de diversas fontes
Identificao de mudanas desde a ltima extrao.
Staging
Armazenamento temporrio dos dados.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration


Fontes de entrada de
dados

IN1177 - Banco de Dados para Suporte Deciso

Sistemas de
gerenciamento de
banco de dados

Janeiro de 2010

Pentaho Data Integration


Fontes de entrada de
dados

IN1177 - Banco de Dados para Suporte Deciso

Planilhas

Janeiro de 2010

Pentaho Data Integration


Fontes de entrada de
dados

IN1177 - Banco de Dados para Suporte Deciso

Arquivos texto ou XML

Janeiro de 2010

Pentaho Data Integration


Atividades de Transformao
Validao dos dados
Verificao se os dados esto corretos e precisos.
Filtragem de dados invlidos.
Limpeza dos dados
Correo de dados invlidos.
Decodificao
Converso de atributos (numricos, categricos) para
adequao a um padro ou regra.
Agregao

Gerao e gerenciamento de chaves


Dimenses identificadas por chaves substitutas (surrogates).
IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Pentaho Data Integration


Atividades de Carregamento
Carregamento das tabelas de fatos
Adio de linhas tabela de fatos.
Atualizao de atributos de status.
Carregamento e manuteno das tabelas de

dimenses
Adio e atualizao de linhas das tabelas de
dimenses.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Instalando o PDI
Pr-requisito
JRE (ou JDK) 5.x ou superior.

Download
http://sourceforge.net/projects/pentaho/files/

Pasta Data Integration


Obter a ltima verso estvel

4.0.1 95.2 MB
3.2.0 77.2 MB

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Instalando o PDI
Aps descompactar o arquivo
Executar spoon.bat ou Kettle.exe (ou spoon.sh no

Linux)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Instalando o PDI
Clique no boto No repository
A interface grfica do PDI (Spoon) ser carregada,

mostrando uma pgina de boas vindas.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Instalando o PDI
Dicas de configurao da rea de trabalho do Spoon

(Menu Editar -> Opes)

Aba General
Show tips at startup?
Show welcome page at startup?
...
Aba Look-and-feel
Preferred language
...

As mudanas estaro visveis aps reiniciar o Spoon

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Principais Componentes do PDI


O PDI trabalha com dois tipos bsicos de

componentes:

Transformaes
Jobs

Caractersticas de transformaes e jobs


Definem o fluxo do processo de ETL
Contm os metadados do processo de ETL
Descrio dos dados;
Fontes de entrada e sada;
Scheduling;
Scripting.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Principais Componentes do PDI


Como as transformaes
e jobs so executados?

IN1177 - Banco de Dados para Suporte Deciso

Uma transformao ou
job consiste de uma
coleo de itens
interconectados

Janeiro de 2010

Principais Componentes do PDI


Conexes entre os itens
das transformaes e jobs

Hops
Pipeline do fluxo de

registros

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Principais Componentes do PDI


Steps, hops e o fluxo de registros

(Bouman and Dongen, 2009)


IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Principais Componetes do PDI


Transformaes

Jobs

Consiste de uma coleo de

Consiste de uma coleo de

steps de transformao
Cada step denota uma
operao do processo de ETL
A sada de um step produz um
conjunto de registros
Fluxo dos steps da
transformao ocorre de
forma simultnea e
assncrona
Arquivo .ktr
IN1177 - Banco de Dados para Suporte Deciso

transformaes ou de steps
de jobs
Cada entrada do job denota
uma tarefa do processo de
ETL
A sada de cada entrada do
job produz um status de
execuo
Fluxo dos steps do job ocorre
de forma sequencial
Arquivo .kjb
Janeiro de 2010

Metamodelo dos componentes do PDI

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Principais Componentes do PDI


Outros componentes do PDI:
Repositrios
Os metadados das transformaes e jobs podem ser
persistidos em um banco de dados (repositrio)
Ferramentas:
Spoon: IDE para desenvolvimento visual.
Pan: execuo de transformaes em linha de comando.
Kitchen: execuo de jobs em linha de comando.
Carte: servidor de para execuo remota de
transformaes e jobs.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquitetura do PDI

(Bouman and Dongen, 2009)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccios 1 e 2
Criando as primeiras transformaes no PDI
Transformao simples
Processo de ETL
Extrao de dados de uma fonte (arquivo texto)
Transformao dos dados
Carregamento dos dados transformados (arquivo
texto)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 3
Criando uma conexo com um banco de

dados

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Extraindo dados no PDI


Vrios steps para extrair dados
Banco de dados;
Informaes do sistema;
Arquivos texto;
...

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Extraindo dados no PDI


Principais propriedades dos steps de extrao
Nome do step
Obrigatrio e nico para cada step
Nome e localizao do arquivo
Descrio do contedo
Separador, codificao, cabealho, etc.
Depende do tipo do step
Campos
Filtros
Ex.: pular linhas em branco, ler as primeiras n linhas, etc.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Extraindo dados de arquivos


Modo primitivo de armazenar dados
Comma-separated values (CSV);
Planilhas;
Arquivos flat;
XML.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Extraindo dados de arquivos


Nome do Step

Fonte dos dados

CSV File Input

Campos de um arquivo .CSV

Excel Input

Clulas de uma planilha .XLS

Fixed file input

Texto de tamanho fixo

Text file input

Idem ao CSV + tratamento de erros +


filtros

Get data from XML

Ns e atributos de tags no formato


XML

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 4
Extraindo dados de um arquivo texto,

realizando uma transformao e carregando o


resultado em um arquivo texto.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Lendo vrios arquivos


At agora extramos dados de um nico

arquivo texto
Extrao de dados de vrios arquivos:
Lista de arquivos
Expresses regulares

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccios 5 e 6
Adicionando uma lista de arquivos de

entrada.
Usando expresses regulares

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Expresses regulares
Em vrios steps do PDI podemos usar

expresses regulares
Exemplos
Expresso regular

Combina com...

Exemplos

.*\.txt

Qualquer arquivo .txt

Arquivo.txt

test(19|20)\d\d-(0[19]|1[012])\.txt

Qualquer arquivo
comeando com test,
seguido por uma data
usando o formato yyyymm

test2009-12.txt
test2009-01.txt

(?i)test.+\.txt

Qualquer arquivo .txt


comeando com test
escrito em maisculo ou
minsculo

TeSTcaseinsensitive.tXt

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Expresses regulares
Para saber mais sobre expresses regulares
Regular Expression Quick Start:

http://www.regularexpressions.info/quickstart.html
The Java Regular Expression Tutorial:
http://java.sun.com/docs/books/tutorial/essential/r
egex/
Java Regular Expression Pattern Syntax:
http://java.sun.com/javase/6/docs/api/java/util/reg
ex/Pattern.html

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Enviando dados para arquivos


Vrios steps para enviar dados para arquivos
Nome do Step

Destino dos dados

Excel output

Clulas de uma planilha no formato .xls

SQL file output

Comandos SQL em arquivo texto

Text file output

Linhas em um arquivo texto (txt ou


CSV)

XML output

Ns e atributos de tags no formato


XML

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Enviando dados para arquivos


Principais propriedades
Nome do step
Obrigatrio e nico para cada step
Nome e localizao do arquivo
Opo Append
Descrio do contedo
Separador, codificao, cabealho, etc.
Depende do tipo do step
Campos

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Definies de dados do PDI


Dois conceitos importantes de
dados para o PDI

Rowset
Streams

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Definies de dados do PDI


Rowset

Streams

Dados representados de

Dados enviados de um step

forma tabular (datasets)


Cada coluna representa um
campo
Nome (obrigatrio)
Tipo: Number (float),

String, Date, Boolean,


Integer e Big Number

Cada linha corresponde a

um membro do dataset

para outro
Os hops apenas repassam o

fluxo de dados

Cada step pode ter um

rowset de entrada e outro


de sada
Boto direito -> Mostra
campos de entrada/sada

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Definies de dados do PDI

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Transformaes no dataset de arquivos


A forma mais simples de fazer

transformaes no rowset de um arquivo


Step Select Values

Operaes bsicas
Selecionar e Alterar Campos

Remover Campos
Alterar metadados dos campos

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 7
Alterando os campos do Exerccio 6
Gerando a sada para uma planilha Excel

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Extraindo informaes do Ambiente


O que vimos at agora?
Extrao dos dados de arquivos
Realizando transformaes bsicas
Carregando dados em arquivos

Como obter dados sem conhecer previamente

o nome dos arquivos?


Lendo informaes do ambiente
Step Get System Info

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Extraindo informaes do Ambiente


Variveis do S.O.
Datas
Sistema de arquivos
Rede

Variveis de ambiente
do PDI

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 8
Extraindo informaes do sistema

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tipos de Dados
Todo campo de um dataset possui um tipo de

dado
Tipos suportados pelo PDI
Number (float)
String
Date
Boolean
Integer
Big Number
IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tipos de Dados
Date (padro API Java)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tipos de Dados
Date - Exemplos

Formato padro: yyyy/MM/dd


IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tipos de Dados
Campos numricos (padro API Java)
O PDI tenta interpretar dados numricos

Campos mais elaborados precisam de um formato


Formatos mais usados
Smbolo

Significado

Dgito zero no mostrado (pode arredondar)

Se o dgito no estiver presente, o zero mostrado no


lugar

Separador decimal

Sinal de menos

Campo deve ser multiplicado por 100 e exibido como


percentual

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tipos de Dados
Campos numricos (padro API Java)
Exemplos - campo com valor 99.55
Formato

Resultado

100 (arredondamento)

100 (arredondamento)

#.#

99.6

#.##

99.55

#.000

99.550

000.000

099.550

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tipos de Dados
Campos numricos (padro API Java)
Algumas consideraes:
Se no especificar o formato -> informar tamanho e
preciso
Por padro, o PDI tenta interpretar o nmero e
repassa pelo hop sem aplicar nenhum formato.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 9
Aplicando formatos para datas e nmeros do

Exerccio 8

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquivos XML
Arquivos (ou documentos) XML so utilizados

para:
Armazenar dados
Troca de dados entre sistemas heterogneos

Entrada de dados XML


Step Get data from XML

Sada de dados XML


Step XML output
IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquivos XML
Como o PDI trata arquivos XML?
<?xml version="1.0" encoding="UTF-8"?>
<world>
...
<country>
<name>Argentina</name>
<capital>Buenos Aires</capital>
<language isofficial="T">
<name>Spanish</name>
<percentage>96.8</percentage>
</language>
<language isofficial="F">
<name>Italian</name>
<percentage>1.7</percentage>
</language>
<language isofficial="F">
<name>Indian Languages</name>
<percentage>0.3</percentage>
</language>
</country>
...
</world>

IN1177 - Banco de Dados para Suporte Deciso

elemento
atributo

Janeiro de 2010

Arquivos XML
Como o PDI trata arquivos XML?
Step Get data from XML
Notao Xpath: Conjunto de regras para recuperar
informao de um documento XML
Documento XML tratado como uma rvore formada
por ns.
Tipos de ns:
Elementos;
Atributos;
Texto

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquivos XML
Como o PDI trata arquivos XML?
Relacionamento entre os ns
Um n tem um pai
Um n tem zero ou mais filhos, irmos, ancestrais
ou descendentes

Arquivo de exemplo: country o pai dos elementos name,


capital e language. Os trs elementos so filhos de country.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquivos XML
Como o PDI trata arquivos XML?
Para acessar um n
Usar uma expresso no formato XPath relativa ao n
corrente.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Arquivos XML
Exemplos XPath
Expresso

Descrio

node_name

Seleciona todos os ns filhos do n node_name.

Seleciona o n corrente

..

Seleciona o pai do n corrente

Seleciona um atributo

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 10
Extraindo uma lista com dados de pases em

XML
Salvando o resultado em uma planilha

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Resumo da Semana 1

Arquitetura do Pentaho BI server


Instalao do PDI
Arquitetura do PDI
Extrao de dados em arquivos texto (plain e
XML)
Carregamento de dados em arquivos texto e
planilhas
Extrao de informao a partir de informaes
do ambiente
Tipos de dados suportados pelo PDI
Operaes bsicas de transformaes
IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Bibliografia

Site do PDI: http://kettle.pentaho.com/


IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Você também pode gostar