Como criar conexão MySql no Spoon ( Pentaho Data Integration PDI )

Será apresentado agora uma das formas de estabelecer uma conexão entre o Spoon (PDI) e uma base de dados MySql. Basicamente será o mesmo procedimento para que você realize conexão com outros servidores de banco de dados.

O que vamos precisar ?

1 - Spoon funcionando.

2 - Servidor MySql instalado, com pelo menos uma base de dados criada.

3 – Biblioteca Java de conexão MySql.

 

Configurando conexão Spoon (PDI) com MySql

Para configurar uma comexão siga os seguintes passos:

1. Abra o Spoon.

2. Crie uma nova transformação, você pode criar uma tranformação através do menu File > Novo > transformação ou através do atalho Ctrl+N

2. telaPrincipa

 

3. Antes de iniciar a configuração da nossa conexão com o banco de dados precisamos baixar a biblioteca Java MySql JDBC. Você pode obter opcionalmente a biblioteca através das opções abaixo:

Download Java MySql JDBC Connector

Opção 1 – MediaFire

Opção 2 – 4Shared

Após realizar o download da biblioteca, a coloque pasta ..\lib que está dentro do diretório de instalação do Spoon (PDI).

4.  Agora vamos iniciar a configuração da nossa conexão. A tela de configuração de conexões pode ser acessada através do menu File > Novo > Database Connection…

1. DatabaseConnection

4.1. Certifique-se de estar selecionado o tipo General (1) no painel localizado no lado esquerdo da janela de configuração de conexões.

4.2. Defina agora um nome para a sua conexão no campo Connection Name (2), pode ser definido o nome de sua preferência. Para nosso exemplo vamos definir o nome como conexaoMYSQL.

4.3. No painel Connection type (3) você deve selecionar o tipo de conexão que deseja configurar. Para nosso exemplo escolheremos a conexão MySql.

4.4. No painel Acess (4) selecionamos o método de acesso que será utilizado pelo Spoon. Para nosso exemplo selecione Native (JDBC), lembre-se que adicionamos a biblioteca Java JDBC a pasta de ..\lib do Spoon (PDI).

4.5. Por fim no painel Settings (5) informamos as propriedade da conexão:

Host Name: localhost (IP de conexão para o seu servidor de banco de dados)

Database Name: spoon_trainer (Nome do banco de dados que deseja conectar)

Port Number: 3306 (Número da porta de comunicação utilizada por seu servidor MySql)

User Name: root (Usuário de acesso ao banco de dados)

Password: **** (Senha de acesso ao banco de dados)

4.6. Após definidas as configurações vamos testar nossa conexão clicando no botão Test (6).3.1. teste_DatabaseConnectionDados

Se for apresentada uma tela com uma mensagem semelhante a esta:

Connection to database [NOME_DA_CONEXAO] is OK.
Hostname       :  IP/MÁQUINA
Port           :  PORTA
Database name  : BASE_DE_DADOS

Parabéns, você configurou uma conexão entre o Spoon (PDI) e uma base de dados MySQL.

5. Após criar e testar a conexão espera-se que você possa visualizar algo parecido com a imagem abaixo, pode-se observar que no quadro 1 na aba view podemos visualizar a conexão cria com o banco de dados e no quadro 2 está o container da transformação criada, onde iremos criar nosso processo de tratamento e transferência dos dados.

4. resultado_thumb[4]

O que é uma transformação ?

Uma transformação é o nome dados os passos necessários para converter o valor obtido do sistema de origem dos dados para o valor esperado no destino.
Abordamos o conceito básico de transformação no arqtigo: O que é ETL (Extract-Transform-Load)?
Para criarmos uma transformação utilizando o Spoon (PDI), basta acessar o menu superior em File > Novo > Transformação.
2. telaPrincipa
Uma transformação contém um ou mais processos de tratamento de dados. Dentro das transformações que vamos tratar nossos dados, é onde definimos quais dados desejamos obter da origem e como desejamos que eles sejam gravados nos destino.

ATENÇÃO IMPORTANTE:
Em um única transformação podemos criar vários processos de tratamento. Porém, uma transformação é executada de forma paralela, ou seja, todos os processos são executados ao mesmo tempo. Assim, em uma mesma transformação não posso realizar o tratamento de dados que possuem algum tipo de dependência física, como tabelas de um banco de dados que possuem FK (chave estrangeria).
pdi-screen3
Fonte: http://community.pentaho.com/projects/data-integration/
Em um exemplo simples apresentado acima é possível observar três tratamentos diferentes em uma mesma transformação.
Quando essa transformação for executada, os três processos iniciados em paralelo, ou seja, o início de um processo de tratamento não dependerá do fim do outro ou vice e versa.





Criando tranformações com Spoon

Será apresentado a seguir a criação de uma tranformação simples, utilizando duas base de dados em servidore diferentes.
A tranformação que iremos criar possui um modelo simples, porém muito utilizado em processos de alimentação de Data Warehouses, vale lembrar que o Spoon (PDI) é uma ferramenta de BI voltada para lipeza e transformação de dados. Mas, isso não é impedimento para utiliza-la em outros projetos.
O que precisamos ?
Para não deixar este artigo muito extenso não vamos abordar o processo de configuração de conexão com o banco de dados.
Caso tenha duvidas você pode aprender a configurar uma conexão com banco de dados no artigo: Como criar conexão MySql no Spoon ( Pentaho Data Integration PDI )
Por onde começar?
1. Crie uma nova trasnfromação através do menu  File > Novo > transformação
2. Crie uma nova conexão através do menu File >Novo > Database Connection…
3. DatabaseConnectionDados

3. Após criar e testar a conexão espera-se que você possa visualizar algo parecido com a imagem abaixo, pode-se observar que no quadro 1 na aba view podemos visualizar a conexão cria com o banco de dados e no quadro 2 está o container da transformação criada, onde iremos criar nosso processo de tratamento e transferência dos dados.
4. resultado

4. Agora vamos iniciar o tratamento dos dados que serão trabalhados dentro da nossa transformação. Para isso selecione a aba Design. Inicialmente vamos utilizar os Steps de Input (Entrada) e Output (Saída), caso tenha dúvida sobre o significado do termo Step para o PDI leia o Artigo: EM BREVE

Para o exemplo utilizaremos:
  • o Step Table input que pode ser encontrado entre os Steps da pasta Input (Quadro 1 no painel Design)
  • o Step Table output que pode ser encontrado entre os Steps da pasta Output (Quadro 2 no painel Design)
estepes

Para que este artigo não fique muito extenso daremos sequência em outra postagem.



Configurando Variáveis de Ambiente JAVA

Java é uma plataforma utilizada para desenvolvimento de diversas aplicações ao redor do mundo. Para utilizar algumas dessas aplicações é necessário definir algumas configurações em nosso sistema operacional.

Após realizar a instalação do JDK na versão escolhida recomenda-se que sejam configuradas as variaveis de ambiente.

Será mostrado agora como realizar a configuração de variáveis de ambiente que auxiliam na compatibilidade entre o SO e aplicações JAVA

Vamos configurar as variaveis de ambiente em três passos:

PASSO 1

- Clique com o botão direito em cima do ícone “Meu Computador”;

- Vá em “Propriedades”;

- Selecione a aba “Avançado” (Windows XP) ou “Configurações avançadas do sistema”, depois na aba “Avançado” (Windows 7);

- Clique no botão “Variáveis de ambiente”;

- Clique no botão “Novo” em “Variáveis do sistema”;

- Nome da variável: JAVA_HOME

- Valor da variável: coloque aqui o endereço de instalação do seu JDK  (no meu caso é  “C:\Program Files\Java\jdk1.6.0_26”)

Veja abaixo o resultado:

 

instalando-jdk-13.png.pagespe-min

 

Em seguida clique no botão “OK” para registrar a variável JAVA_HOME.

Não feche a janela de Variaveis de Ambiente ainda.

PASSO 2

Agora vamos configurar nossa segunda variável de ambiente.

- Clique no botão “Novo” em “Variáveis do sistema”;

- Nome da variável: CLASSPATH

- Valor da variável: .;%JAVA__HOME%

instalando-jdk-14-min

Em seguida clique no botão “OK” para registrar a variável CLASSPATH.

Não feche a janela de Variaveis de Ambiente ainda.

PASSO 3

Desta vez não vamos criar uma nova variável.

- Procure pela variável Path, que certamente já deve existir.

- Selecione a variável e clique no botão “Editar”.

- Adicione o texto ;%JAVA_HOME%\bin ao valor da variável, não apague o valor que já estiver lá, trata-se de configurações de outras aplicações do seu computador.

instalando-jdk-16-min

Realizada as configurações apresentadas, certamente seus problemas com compatibilidade de aplicações java serão minimizados.

 

Obrigado por nos visitar!

Iniciando com Spoon ( Pentaho Data Intregation )

A ampla gama de informações recolhidas por uma empresa raramente é armazenado em um único banco de dados ou formato. No entanto, o software de análise é acusado de fornecer uma visão holística das operações de uma empresa com base nesses dados diversificados. A integração de dados é o processo pelo qual as informações de várias bases de dados são consolidadas para uso em uma única aplicação. Resumidamente, a integração de dados combina partes que normalmente não se encaixam.

Softwares de análise de negócios dependem da integração de dados para construir painéis, visualizações e relatórios que refletem informações precisas, consistentes. A falta de limpeza de dados resultaria em consultas que retornam as comparações inúteis. Os desafios de volume e diversidade criada por dados grandes tornam a integração ainda mais importante.

Aplicações desenvolvidas internamente podem ser utilizadas para traduzir dados de diversas fontes para um formato comum. No entanto, como o aumento de informação, as exigências de gestão de dados sobre uma aplicação podem tornar-se excessivas, sendo necessário uma codificação complexa e investimentos cada vez maiores podem ser necessários para manter tudo funcionando.

Um ETL (extração, transformação e carga) recebe e limpa os dados de uma base de dados origem, em seguida, envia a informação para o data warehouse (base de dados destino). Programas que acessam o data warehouse encontraram as informações prontas para análise.

Há vantagens e desvantagens para a integração de dados, a solução mais eficaz dependerá dos recursos e necessidades da sua empresa ou equipe de trabalho.

SPOON

Com uma interface gráfica arraste e solte intuitiva, ambiente de design e escalável, arquitetura baseada em padrões, o Spoon é uma ferramenta ETL, ótima para criação de um data warehouse ou para migração de dados entre diferentes bases de dados.

Preparação de ambiente (Instalação)

Por ser uma aplicação desenvolvida em Java, o Spoon não necessita de instalação. Porém é necessário realizar algumas configurações em seu computador para garantir que a ferramenta funcione corretamente.

Vamos mostrar como realizar a configuração da ferramenta em um ambiente Windows.

 

Onde baixar o Spoon ?

Para utilizar o Spoon você pode optar entre a versão paga e a versão gratuita (comunitária), vale ressaltar que com a versão gratuita você conseguira trabalhar com grande volume de informações sem problemas, independentemente do tamanho do seu projeto.

Para baixar a versão gratuita acesse: Download Spoon

Após realizar o download do Spoon você deve se atentar a algumas configurações que devem ser realizadas em seu sistema operacional.

Requisitos Windows:

  1. - JDK  instalado- recomendável 7 ou superior ( por questão de dependências de alguns pacotes, recomenda-se sempre possuir o JDK instalado).
  2. - Configurar variaveis de ambiente.
  3. - Bibliotecas  de conexão JDBC.

Configurando variáveis de ambiente para o Spoon

As configurações a seguir visam assegurar o funcionamento do Spoom.

 

Configurando Variáveis de Ambiente

Para configurar as variáveis de ambiente java acesse o link: Configurando Variáveis de Ambiente Java

Após configurar as variáveis Java, você deve configurar uma variável java pouco utilizada, mas de grande importância para o Spoon.

Na tela de configuração de variáveis de ambiente crie uma nova variável:

Variável: _JAVA_OPTIONS

Valor da Váriavel: –Xmx1g

Após criar a variável acima, vá até a pasta de instalação do Spoon e execute o arquivo “Spoon.bat”

Após  executar o arquivo BAT primeiro irá aparece uma tela do prompt de comando.

Após poucos segundos será a presentada a tela de Splash  do Pentaho Data Integration.

splash

Após mais alguns segundos a tela inicial do Spoon é apresentada.

Geralmente demora um pouquinho para que ele seja iniciado, então não se preocupe.

2. telaPrincipa

 

Bibliotecas JDBC

Para conseguir conectar-se a alguns bancos de dados é necessário baixar algumas bibliotecas e coloca-las na pasta \lib que há no diretório de instalação do Spoon.

Por exemplo, para realizarmos uma conexão MySql precisamos baixar a biblioteca JDBC.

O que é ETL (Extract-Transform-Load) ?

ETL é a abreviação em inglês para os termos Extrair, Transformar, Carga. ETL abrange um processo que trata os dados de uma base de informações (banco de dados, arquivos de texto, planilhas, entre outros) para alimentar um Data Warehouse.
ETL de forma resumida, é um conjunto de funções combinadas em uma ferramenta para extrair dados de um banco de dados e colocá-lo em outro banco de dados.
Extrair é o processo de leitura de dados a partir de um banco de dados.
Transformação é o processo de converter os dados extraídos a partir da sua forma anterior em uma forma a ser colocada em outro banco de dados. A transformação é realizada fazendo uso de regras ou tabelas de pesquisa ou combinação de dados.
Carga é o processo de escrever no banco de dados de destino.
ETL é usado para migrar dados de uma base de dados para outra, para formar data marts e data warehouses e também para converter bancos de dados de um formato ou tipo para outro.
O ETL engloba um processo de limpeza das informações, como um passo separado. A sequência seria então Extract-Clean-Transform-Load (Extrair, Limpar, Transformar, Carga). Vamos descrever brevemente as etapa do processo de ETL.
Processo
Extrair
O passo Extract (Extrair) abrange a extração de dados do sistema de origem, tornando esses dados acessíveis para o próximo passo. O objetivo principal da etapa de extração é recuperar todos os dados necessários do sistema de origem utilizando o mínimo de recursos.
O passo de extração deve ser projetado de uma maneira que ela não venha a afetar negativamente o sistema de origem dos dados em termos de desempenho, tempo de resposta ou qualquer tipo de bloqueio.
Existem várias maneiras de realizar a extração:
Atualização por notificação - se o sistema de origem dos dados é capaz de fornecer uma notificação de que um registro foi alterado e descrever a mudança, esta é a maneira mais fácil de obter os dados. Assim, é possível coletar apenas os dados atualizados e inserir ou atualizar somente o necessário.
Extração Incremental - alguns sistemas podem não ser capazes de fornecer notificação de que uma atualização ocorreu, mas eles são capazes de identificar quais registros foram modificados e fornecer extração de tais registros.
Extração integral - alguns sistemas não são capazes de identificar quais dados foram alterados, então extração completa é a única forma de obter os dados do sistema.
Limpar
O passo de limpeza é um dos mais importantes, uma vez que garante a qualidade dos dados no destino. A limpeza deve executar regras de unificação de dados básicos, tais como:
  • Fazendo identificadores únicos, como por exemplo as categorias (Sexo Masculino / Feminino / M / F / null, homem / mulher / Não Disponível) são convertidos para (Masculino / Mulher / Desconhecido).
  • Converter valores nulos em padronizado valor Não disponível / Não Fornecidos.
  • Converter números de telefone e códigos postais para uma forma padronizada.
Transformar
A etapa de transformar aplica um conjunto de regras para transformar os dados a partir da origem para o destino. Isto inclui a conversão de todos os dados para a mesma dimensão de modo que possam mais tarde ser unidos. A etapa de transformação também requer juntar dados de diversas fontes, gerando agregados, gerando chaves substitutas, derivando novos valores calculados, e aplicando a regras de validação avançadas.
Carga
Durante o passo de carga, é necessário assegurar que a carga é executada corretamente e com um mínimo possível de recursos. O alvo do processo de carga é muitas vezes um banco de dados. A fim de tornar o processo de carga eficiente, é útil desativar todas as restrições e índices antes da carga e ativa-los de volta apenas após a carga completa. A integridade referencial precisa ser mantida pela ferramenta de ETL para garantir a consistência.
Gerenciamento de Processo de ETL
O processo de ETL parece bastante simples. Tal como acontece com todas as aplicações, existe a possibilidade do processo de ETL falhar. Isto pode ser causado por falta de dados em um dos sistemas (origem ou destino), ou até mesmo uma interrupção de energia. Portanto, é necessário projetar a manutenção dos processo de ETL, para em caso de falha haver uma recuperação em mente.
Implementação de uma Ferramenta ETL
Quando você está prestes a usar uma ferramenta de ETL, existe uma decisão fundamental a ser feita: a empresa irá construir sua própria ferramenta de transformação de dados ou vai usar uma ferramenta existente?
Construir sua própria ferramenta de transformação de dados (geralmente um conjunto de scripts shell) é a abordagem preferida para um pequeno número de fontes de dados que residem no armazenamento do mesmo tipo. A razão para isso é que o esforço para implementar a transformação necessária é pequena devido à estrutura de dados. Além disso, esta abordagem reduz os custos de licenciamento e não há necessidade de treinar o pessoal em uma nova ferramenta. Esta abordagem, no entanto, é perigoso se as transformações se tornam mais sofisticadas ou durante o tempo que é necessário para integrar outros sistemas, a complexidade de um tal sistema de ETL aumenta, mas a capacidade de gestão cai significativamente. Da mesma forma, a implementação de sua própria ferramenta, muitas vezes se assemelha a reinventar a roda.
Existem muitas ferramentas de ETL no mercado. O principal benefício da utilização de ferramentas ETL é o fato de que eles são otimizados para o processo de ETL, fornecendo conectores para fontes de dados comuns, como bancos de dados, arquivos simples, sistemas de mainframe, XML, etc. Eles fornecem um meio para implementar transformações facilmente e de forma consistente em várias fontes de dados. Isso inclui a filtragem, a reformatação, classificação, fusão, agregação e outras operações prontas para usar. As ferramentas também suportam programação de transformação, controle de versão, acompanhamento e gerenciamento unificado de metadados. Algumas das ferramentas de ETL são integradas com ferramentas de BI.
Algumas das ferramentas de ETL bem conhecidos
As ferramentas comerciais pagas mais conhecidos são  IBM InfoSphere DataStage , Informatica ,Oracle Data Integrator e SAP Data Integrator .
Existem várias ferramentas de ETL de código aberto, entre outros Apatar , CloverETL , Pentaho e Talend .
Destacamos o Pentaho por que iremos utiliza-los em alguns tutoriais ETL.