2. Pentaho Data Integration
● Ótima alternativa open-source para criação de ETL’s.
● ETL?
○ E => Extract
■ Extrair dados brutos de diversas fontes
○ T => Transform
■ Realiza as transformações/tratamentos necessários nos dados.
○ L => Load
■ Realiza a entrega/disponibilização dos dados em diversas fontes
4. Principais Pastas
● ..data-integration
○ Pasta raiz do pentaho, possui os arquivos spoon.bat/spoon.sh,
pan.bat/pan.sh e kitchen.bat/kitchen.sh (windows e linux) respectivamente.
● ..data-integrationlib
○ Contém os drivers utilizados nas conexões com bancos de dados
○ *A cada novo driver adicionado, o spoon deve ser reiniciado se estiver
sendo executado
● ..data-integrationsimple-jndi
○ Contém o arquivo de configuração “JNDI” das conexões das bases de
dados.
● ..data-integrationlogs
○ Logs úteis para identificar problemas na execução de ETL’s
5. Pan e Kitchen
● As ferramentas Pan e Kitchen são utilizadas para execução de transformações e
jobs, respectivamente, gerados no Spoon, estas são executadas através de linha
de comando.
● Geralmente são utilizadas para agendar a execução de tarefas, seja no
Scheduler do Windows ou Cron dos sistemas Unix.
Exemplo:
cd C:pentahodata-integration
Kitchen.bat -file=C:pentahoetlmeu_job.kjb "-param:periodoDe=201801" "-param:periodoAte=201808" -
log=C:pentahologslog_carga_201801_201808_05072018.txt -level=Basic
6. CONEXÕES
● No spoon ao criar uma nova conexão são disponibilizadas opções de conexão,
ex.: Native (JDBC), ODBC, OCI, JNDI.
● Ao configurar uma conexão JDBC ou ODBC a mesma será utilizada apenas na
transformação onde foi configurada (criptografado). O JNDI por outro lado é
configurado e um arquivo texto (sem criptografia), por este motivo é recomendado
utilizar apenas no lado do servidor.
● JNDI é configurado no arquivo ..data-integrationsimple-jndijdbc.properties
Ex.:
root/type=javax.sql.DataSource
root/driver=oracle.jdbc.OracleDriver
root/url=jdbc:oracle:thin:@192.168.0.1:1521:dbSchemaName
root/user=root
root/password=root
● Onde o nome antes da “/” é utilizado para identificar qual configuração será
utilizada na conexão.
7. Spoon
● Ferramenta para desenvolvimento dos
ETL’s
● Abstrai a codificação (Utilização drag-
and-drop)
● Permite a criação de Transformações e
Jobs
● Gera um arquivo .ktr da transformação ou
.kjb do job, a estrutura de ambos é xml.
● Na lateral esquerda possui 2 guias:
○ View: com a estrutura da
transformação/job que está sendo
desenvolvida
○ Design: com os steps (ferramentas)
que podem ser utilizados para
realização das tarefas.
● No centro se encontra a área de trabalho
onde será desenvolvido o ETL.
8. Spoon - Layout
1. Lista os Steps disponíveis
separados por categorias.
Novos Steps podem ser
adicionados através da
instalação de plugins
2. Rops que determinam o fluxo
de dados. Neste caso os
dados são distribuídos entre
os steps de destino
3. Rops que copiam os dados
para os steps de destino,
desta forma ambos steps
recem os mesmos dados. O
rop cinza claro está
desabilitado e não haverá
fluxo de dados no mesmo.
9. Spoon - Atalhos
● A conexão entre steps é realizada ao manter pressionada a tecla SHIFT e clicar no step
de origem e na sequência clicar no step de destino, soltar a tecla SHIFT apenas ao final
da operação, este procedimento determina o sentido do fluxo de dados.
● Atalhos como CTRL+C CTRL+V funcionam normalmente para copiar os steps seja na
mesma transformação/job ou entre transformações/jobs distintos.
● Ao realizar uma seleção é possível alinhar os steps clicando com botão direito e
utilizando a opção alinha/distribui ou utilizando a tecla CTRL+SETA (setas direcionais
do teclado)
● CTRL+S -> Salva o trabalho
● F9 -> executa, F10 -> Preview, SHIFT+F10 -> DEBUG
10. Spoon - Boas Práticas
● CRISP-DM
(Cross Industry Standard Process
for Data Mining)
11. Spoon - Boas Práticas
● Repositório de Arquivos centralizado e bem organizado.
● Nomes claros e consistentes para jobs, transformações, conexões e steps.
● Utilizar notas para informar o objetivo da transformação/job, bem como a
identificar pessoa que desenvolveu o mesmo.
● “One Step at a Time”: teste cada step incluído para saber se o resultado
esperado foi atingido, se adicionar vários steps e testar apenas no final será mais
difícil encontrar possíveis erros.
12. Marketplace
● Para utilização de features como: Python/R; desenvolvimento mobile; integração
com google sheets; etc. basta utilizar os plugins disponíveis no Marketplace.
Pode ser localizado no menu Tools conforme a imagem:
13. Spoon - Teste Prático
● Objetivo: Ler 1 arquivo csv e escrever um hello world em txt com conteúdo do
csv.
● Estrutura do CSV:
last_name,name
Araujo,Esli
Maria,Ana
Silva,João
● Resultado esperado:
14. Spoon - Desafio
● Com base no teste anterior, enviar o resultado por e-mail utilizando um job no
PDI.
● Resultado esperado:
15. Materiais de Apoio
● http://www.layer-9.com/wp-content/uploads/2017/06/Best-Practices-PDI-Design-
Guidelines.pdf
● https://help.pentaho.com/Documentation/8.0