Você está na página 1de 7

Aula 0001

Transcrição

Nessa aula, falaremos mais sobre a Pentaho Data Integration (PDI).

No período de fundação da empresa, seus criadores buscaram no mercado Open Source


projetos ligados às diversas etapas de Business Intelligence, e convidaram seus
desenvolvedores para participar de uma comunidade onde todas estas estariam
interligadas, chamada Pentaho.

Dentre os programas de ETL existentes na época, o mais conhecido era o sistema


chamado Kettle. Baseado neste, construiu-se colaborativamente a ferramenta Pentaho
Data Integration muito ligada aos processos de extração, transformação e carga em
seu início, passa a aprimorar mais a atividade de integração de banco de dados e
recursos dentro das empresas.

Atualmente, esta atuação é muito importante por possuir ferramentas que utilizam
diversas linguagens para os mesmos procedimentos através de um sistema
centralizado, facilitando a adaptação. Desta forma, o PDI passa a ser usado não
somente como um banco de dados para ETL, mas também como integrador.

Este software possui interfaces variadas com dados externos já ativos internamente
como relacionais, arquivos exteriores e NOSQL. Ainda, trabalha com quatro módulos:
Spoon, Pan, Kitchen e Carte.

O primeiro é a interface gráfica onde desenhamos nosso processo de ETL e integração


através de caixas representantes das diversas ações que queremos realizar.

O segundo é um processo de linha de comando que desempenha os trabalhos de


transformação desenhados na interface anterior.

O terceiro possui essa mesma natureza, mas também é capaz de executar jobs, ou
seja, processos que não atuam em deslocamento de dados entre uma fonte e um
destino, os quais são da alçada do Pan. Então, este executa vários processos de ETL
em uma ordem lógica de execução.

O último está relacionado ao ambiente e criação de servidores remotos dentro deste,


bem como à construção de clusters de processamento que possibilitam a divisão do
trabalho computacional durante o ETL e sua manipulação de grandes cargas de
registros.

Todos esses módulos devem ser conectados à um repositório de Metadados; tudo o que
for feito através da ferramenta precisa estar armazenado em um local externo para
ser recuperado. Isso pode ser feito de duas maneiras: dentro de um banco de dados
relacional ou em arquivos externos no disco rígido. Essa escolha é particular de
cada projeto, mas em nosso treinamento daremos ênfase ao segundo método por sua
simplicidade.

Ao longo dos passos a seguir, aprofundaremos os recursos da Pentaho Data


Integration nos processos de ETL.

Aula 0002
Transcrição

Para acessar o módulo Spoon, entre no diretório "treinamento > designer-tools >
data-integration" e clique duas vezes sobre "Spoon.bat". Aguarde o carregamento e a
abertura do programa.

Na janela inicial, vá em "File > Novo > Transformação" ou use o atalho "Ctrl + N"
para abrir uma nova aba com área vazia chamada canvas, onde adicionaremos os
elementos que irão compôr o trabalho.

Em cada grupo na árvore lateral encontramos diversos tipos de componentes. Não será
possível abordar todos eles neste treinamento, então entenderemos o funcionamento
do Spoon com alguns exemplos.

Clique em "Input" para abrir a lista, depois clique e arraste "Generate rows" para
a área de trabalho do programa. Este é capaz de gerar linhas e tabelas de forma
constante.

Vale saber que um componente isolado não é suficiente para o processo de


transformação, sendo necessária pelo menos uma fonte de dados; podemos adicionar a
leitura de arquivos de texto, consultas SQL, entre outras.

Precisa também ter um destino claro, seja direto ou através de etapas que geram
modificações. Para tanto, abra a pasta "flow" e arraste "Dummy (do nothing)" para a
canvas. Este recurso somente recebe os dados e não os transfere.

Para traçar o percurso iniciado no "Generate rows" até o seguinte, existem algumas
formas: pressione a tecla "Shift" e o botão esquerdo do mouse ao mesmo tempo sobre
a origem, e arraste até o próximo componente para gerar uma seta de ligação chamada
hop. Você também pode clicar e arrastar para a área em branco e selecionar os dois
elementos, clicando sobre qualquer um deles com o botão direito para escolher "Novo
hop" e abrindo uma caixa de diálogo onde é possível inserir a rota dos dados.

Uma terceira maneira é apenas sobrepor o cursor sobre o componente para um balão
com quatro botões de ação aparecer, disponibilizando a última opção que, ao clicar,
permite que a hop seja gerada indicando a direção do fluxo. A última também precisa
que você apenas repouse o cursor sobre o "Generate rows", clicando para baixo com o
scroll do mouse para desenhar a seta.

Para editar esta linha, clique sobre ela com a direta do mouse e selecione a opção
desejada no menu.

Cada componente possui propriedades específicas que podem ser acessadas com double
click sobre este. Ao fazer isso, altere o nome do step para "Geração de 1000
Linhas" e limite de mil na caixa de diálogo. Esta também apresenta a tabela a ser
preenchida com "NumeroLinha" de tipo "INTEGER" com valor 1, que pode ser
visualizada clicando em "Preview" e, caso queira, clique em "Show Log" depois.

De volta ao canvas, podemos executar através do ícone "Executa esta transformação"


na barra de opções, o qual abre uma janela onde podemos selecionar o local. Em
nosso caso, escolhemos "Pentaho local" e mantemos o Log básico em "Nível de log"
para então clicar em "Run". Quando o sistema solicitar, salve o projeto como
"Primeiro_Demo_Spoon" em uma nova pasta "transformações" dentro de "treinamento" e
prossiga.

Finalizada a execução, os resultados são apresentados em um feedback com diversas


abas onde podemos acessar o histórico, velocidade, performance de leitura, gráficos
e outras análises importantes para o processo de ETL.
Agora que temos uma noção básica das funções do Spoon, podemos começar a construir
os processos de atualização do Data Warehouse.

Aula 0003

Transcrição

Antes de iniciarmos as transformações, precisamos configurar as conexões com os


bancos de dados com os quais vamos interagir, conhecidas como Java Name Director
Interface (JNDI).

Muitos consultores configuram dentro do próprio processo de ETL ao utilizar as


ferramentas Pentaho, porém isso pode acarretar algumas complicações. Por isso, o
ideal é criarmos antes de realizarmos esta operação.

Podemos considerar o equivalente ao Data Source Name (DSN) do Windows, onde geramos
um Open Database Connectivity (ODBC) para criar conexões e nomeá-las de forma
externa.

Para lidar com o JNDI, precisamos adicionar algumas propriedades: abra pelo
Notepad++ o arquivo do download chamado "JNDI_Mysql.txt", e podemos observar no
início de cada linha há o nome padrão "dwsucos" seguida do tipo, nome do driver,
string de conexão ligado ao MySQL, usuário e senha, assim:

dwsucos/type=javax.sql.DataSource
dwsucos/driver=com.mysql.jdbc.Driver
dwsucos/url=jdbc:mysql://localhost:3306/dwsucos
dwsucos/user=root
dwsucos/password=root

É preciso tomar bastante atenção para não ter nenhum espaço ou linha em branco na
configuração do JNDI, evitando erros. Para ajudar, há um botão de ação na barra de
ícones neste editor de texto que baixamos chamado "Exibir todos os caracteres" que
apresenta a existência desses espaços.

Para executar, abra o arquivo "jdbc.properties" no Notepad++ que se encontra dentro


do diretório "treinamento > designer-tools > data-integration > simple-jndi", copie
e cole o bloco anterior no final deste novo texto aberto, salve para ter acesso ao
Data Warehouse e feche o editor.

Caso precisemos configurar outros acessos ao longo do processo de ETL, voltaremos à


este arquivo para adicionar mais destes parâmetros específicos associados à
conectividade de bancos de dados externos.

Agora precisamos conseguir visualizar as novas configurações no Spoon. Para isso,


feche-o e abra-o novamente.

Aula 0004
Transcrição

Para facilitar o trabalho, vamos configurar o idioma do Spoon pois a tradução não é
boa. Vá em "Tools > Opções...", abra a aba "Look & Feel" e selecione "English (US)"
em "Preferred Language". Reinicie o programa.

Retornando ao treinamento, vale lembrar que todo processo utilizando a Pentaho Data
Integration precisa estar associado à um metadados, que pode ser tanto bancos de
dados quanto arquivos da máquina. Aqui, vamos criar a partir destes últimos.

No Spoon, feche a aba do exemplo dado anteriormente. Note que há um botão chamado
"Connect" que permite a seleção e configuração do metadados. Clique para abrir uma
caixa de diálogo, depois em "Other Repositories" para escolher a opção "File
Repository" e avançar pelo botão "Get Started". Nomeie como "reposucos" e escolha
como local uma nova pasta criada de nome "repositorio" dentro de "treinamento".

Vale relembrar que os diretórios nunca devem ser nomeados com acentos ou caracteres
especiais estranhos à língua inglesa, somente assim podem ser acessados pelos
softwares.

Na sequência, existem duas propriedades que podem ou não ser selecionadas: a


primeira, "Don't modify items in this location", só usamos quando estamos
utilizando repositórios em produção e não queremos fazer modificações. A segunda,
"Show hidden folders", permite visualizar os arquivos escondidos. Em nosso caso,
deixaremos ambas em branco.

Preencha a descrição com "Repositorio do DW Sucos" novamente sem utilizar acento,


pois o PDI salva um arquivo .xml internamente que não poderá ser lido se houver
acentuação. Marque a última opção de "Launch connection on startup" para ativar a
conexão quando executarmos o Spoon e finalize.

Quando terminar, clique em "Manage Connections" para visualizar, deletar ou


adicionar conexões. Apenas feche e retorne ao Spoon.

Podemos ver agora que, ao clicar em "Connect", escolhemos a nossa opção "reposucos"
para nos conectarmos à esta. Se o repositório estivesse salvo com acentuação, este
não apareceria.

Aula 0005

Transcrição

Quando abordamos as propriedades de conexão JNDI e a inclusão destas em


jdbc.properties, vimos a importância de usarmos também as dos bancos que estarão
participando do processo de ETL, pois quando as transportamos para produção temos
outros arquivos jdbc.properties, com outros tipos de conexão e apelidos de
referências específicas para serem devidamente acessados.

Essa técnica é valiosa de ser utilizada com variáveis internas e arquivos externos
para aumentar a produtividade. Por exemplo, um caminho de diretório dos arquivos
fontes, nome da fonte definida, etc.

Definimos as variáveis no mesmo diretório que temos o .xml dos repositórios de


metadados chamado "kettle.properties", localizado na ".kettle" dentro da pasta do
usuário conectado em "Disco Local (C:)". Vamos abri-lo com Notepad++.
Neste, inclua o seguinte bloco, salvando logo após:

diretorio=c:\\treinamento\\arquivos\\
banco=dwsucos

É importante ter em vista alguns detalhes: deve-se manter "\" para a variável ser
devidamente lida e acessada pelo Java, lembrando sempre de encerrar a sentença com
a barra dupla, além de evitar acentuação e espaços.

Quando carregamos o Spoon temos duas variáveis: diretorio e banco. Como o primeiro
já será utilizado no processo de ETL, vamos criá-lo em uma nova pasta "arquivos"
dentro de "treinamento", que ficará vazia por enquanto.

De volta ao Spoon, feche-o e abra-o para atualizar o conteúdo.

A maneira de inicializarmos as variáveis de forma externa é interessante para


realizar o transporte para a produção e modificá-las. Esta última ação também pode
ser realizada dentro do ambiente Spoon. Vá em "Edit > Edit the kettle.properties
file" para abrir uma janela com diversas variáveis que jã são trabalhadas
normalmente, e ao final podemos localizar as duas que incluímos anteriormente.

Você também pode clicar na numeração da linha com o botão direito do mouse e
selecionar diversas opções como adicionar, mover, copiar etc., possibilitando
alterações diretamente no ambiente que será lido pelos demais arquivos e softwares.

Atente ao fato de que o importante diretório ".kettle" está salvo em "Usuários", o


que significa que somente quem se conectar podexá observar os processos. Então é
preciso pensar no momento da produção a partir de um servidor com diversos
usuários, ou até mesmo um serviço gerenciador externo para o trabalho.

Para otimizar essa questão, crie uma nova aba em Notepad++ e insira kettle_home,
uma variável de sistema dentro do sistema operacional, da mesma forma que fizemos
com "pentaho" durante a instalação do produto, indicando um caminho para onde
deverá seguir o arquivo ".kettle". Assim, o Spoon lerá o arquivo neste novo local,
tornando-o mais acessível sem restrição de usuário específico.

Assim, realizamos mais uma configuração de ambiente da ferramenta.

MAOS NA MASSA

Chegou a hora de você pôr em prática o que foi visto na aula. Para isso, execute os
passos listados abaixo.

1) No diretório C:\treinamento\designer-tools\data-integration, execute o


Spoon.bat.

2) No menu superior, selecione File --> Novo --> Transformação.

3) Na aba Design, expanda a árvore Input, e arraste o componente Generate Rows para
a área da transformação.

4) Novamente na aba Design, expanda a árvore Flow, e arraste o componente Dummy (do
nothing) para a área da transformação.
5) Crie um hop entre o Generate Rows e o Dummy.

6) Dê um duplo clique sobre o Generate Rows e inclua as seguintes propriedades:

Nome do Step: Geração de mil linhas


Limit: 1000
Fields: crie uma coluna com o nome NumeroLinha, tipo Integer e valor 1

7) Na barra de ferramentas da tranformação, clique em Executa esta transformação e


depois em Run. Salve a transformação antes de executar.

8) Abra o arquivo JNDI_MySQL.txt, que você pode baixar aqui. Ele deve ter este
conteúdo:

dwsucos/type=javax.sql.DataSource
dwsucos/driver=com.mysql.jdbc.Driver
dwsucos/url=jdbc:mysql://localhost:3306/dwsucos
dwsucos/user=root
dwsucos/password=root

9) Abra o arquivo jdbc.properties, que está em C:\treinamento\designer-tools\data-


integration\simple-jndi e, no final do arquivo, cole as cinco linhas apresentadas
acima.

10) Modifique o idioma do Spoon para inglês, indo em Tools --> Opções. Na aba Look
& Feel, em Preferred Language, escolha English (US). Em seguida, feche o Spoon e
abra-o de novo.

11) Feche todas as transformações abertas e, no canto superior direito da tela,


clique em Connect.

12) Em seguida, clique em Other Repositories.

13) Escolha a opção File Repository e clique em Get Started.

14) Digite:

Display Name: reposucos


Location: C:\treinamento\repositorio (Não criem, nem configurem um repositório
com acento no nome)
Description: Escreva aqui a descrição, evitando acentos.
Marque a opção Launch connection on startup

15) Clique em Finish.

16) No canto superior direito, onde havia somente o botão Connect, agora há a lista
de repositórios disponíveis:

17) No diretório do seu usuário (C:\usuários), acesse a pasta .kettle. Dentro desta
pasta, abra o arquivo kettle.properties. Inclua as seguintes linhas nele:

diretorio=c\:\\treinamento\\arquivos\\
banco=dwsucos

18) Salve este arquivo.

19) Crie o diretório C:\treinamento\arquivos. Em seguida, feche o Spoon e abra-o de


novo.
CONCLUSAO

Transcrição

Neste treinamento que se encerra vimos todos os softwares da Pentaho e auxiliares,


falamos sobre a empresa, configuramos algumas propriedades e descobrimos questões
importantes para a criação do Data Warehouse e o funcionamento do projeto geral.

Tudo isso só será completo com o curso a seguir, utilizando os recursos que
aprendemos até agora.

Leremos sobre várias fontes externas e, usando o Pentaho Data Integration, iremos
popular os bancos do Data Warehouse e do Data Mart. também aprenderemos a achar
soluções para problemas, como transformar uma tabela de tipo parent-children em
modelo estrela e estabelecer o critério de rateio, entre outros.

Então, nos vemos lá!

Você também pode gostar