terça-feira, 25 de novembro de 2014

Data Integration – Kettle – Importando Planilha do Excel para tabela do banco de dados PostgreSQL



A idéia desse post é demonstrar como criar uma rotina de importação de uma tabela de excel para uma tabela do banco de dados postgreSQL, onde essa tabela pode ser uma dimensão do Data Ware House.

1º Criamos uma planilha no Excel, salvamos essa planilha com o nome “cadClientes”, na planilha deve existir as colunas: código,Nome, Idade, Telefone, e também inserir dados nessa planilha, ficando assim:


2º Criamos um banco de dados e depois criamos uma tabela(que pode ser uma dimensão em um projeto DW, por exemplo), para criar a tabela utilize o comando:

CREATE TABLE dime_cadcli
(
  pk_cliente integer NOT NULL,
  clie_nome character varying(50) NOT NULL,
  clie_idade integer NOT NULL,
  clie_telefone character varying(25) NOT NULL,
  CONSTRAINT pk_clientes PRIMARY KEY (pk_cliente)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE dime_cadcli
  OWNER TO postgres;

3º Vamos executar o Spoon:
- Se Windows c:\opt\pentaho\biclient\data-integration\spoon.bat;
- Se Linux /opt/pentaho/biclient/data-integration/spoon.sh;
- Ao executar o Spoon abrirá a janela inicial:

4º Vamos no menu: File => Novo => Transformação;

5º Vamos no menu File => Save, e salvamos a transformação como “Dime_CadClientes”;

6º Vamos na aba “Design” escolhemos Input => Microsoft Excel Input;


7º Dois cliques em cima do “Microsoft Excel Input”, abrirá as configurações, primeiramente vamos definir o nome desse “Step” no campo nome do Spep como “Excel_Dime_CadClientes”, e logo abaixo no quadro “select files” coluna “file/directory” vamos apontar o local que se encontra nossa planilha do excel para importação dos dados, no meu caso é “cadClientes.xls”, assim:

8º na aba Sheets, coluna Sheet name: coloque Plan1, na coluna Start now: 0, na coluna Start column:0;

9º Na coluna Content, marque a opção “Header”, marque a opção “No empty rows”, desmarque a opção “Stop on empty row”, campo Limit: 0, Encoding: Windows-1250, Spread sheet type (engine): Excel 97-2003 XLS (JXL), marque a opção add filenames to result, ficando assim:

10º Aba Error Handling pode deixar como vem padrão do Step;

11º Na Aba Fields, no campo "Name" colocamos o nome da coluna da planilha do excel, e no campo Type definimos o tipo da entrada do dado, então na coluna Name colocamos: Codigo, Nome, Idade, Telefone, na coluna  Type colocamos: Integer, String, Integer, String, conforme imagem abaixo:

12º Depois podemos clicar no botão Ok, fechando o Step;

13º Vamos novamente na Aba “Design” => Transform => e selecionamos o Step “Select Values”;
14º clicamos em cima do Step  Excel_Dime_CadClientes e araste hop até o Step “Select Values”, ficando assim:

15º Dois cliques no Step “Select Values”, na aba “Select & Alter”, na coluna FieldName, inserimos exatamente os nomes das colunas do excel(na mesma sequência: Codigo, Nome, Idade, Telefone, ficando assim:

16º Na Aba "Remove", não informamos nada, pois não precisamos remover nenhuma variável;

17º Na aba “Meta-data”:
- Na coluna Fieldname informamos os nomes dos campos informados no “Select & Alter” que são: Codigo, Nome, Idade, Telefone;
- Na coluna “Rename to” renomeamos cada campo para o nome da variável da tabela do banco de dados, que no exemplo é: pk_cliente, clie_nome, clie_idade, clie_telefone;
- Na coluna Type informamos o tipo de cada variável, que no caso é: Integer, String, Integer, String;
- Depois clicamos no botão “OK”, ficando assim:

18º Voltando a Tela inicial, vamos novamente na aba Design, selecionamos o “Table Output”, depois clicamos no Step “Select values” e arrastamos o “hop” (setinha) até o “Table output”, ficando assim:

19º Dois Cliques em cima do Step “Table Output”, no campo Nome do Step, vamos escrever “Grava Clientes”, Ao lado do campo Conection exite o botão “Edit”, clicamos no botão edite, e aparecerá a tela “Database Conection”:

20º  Na Janela “Database Conection”,
- no campo “Connection Name”: digitamos bancoteste(é apenas o nome da conexão);
-  na opção “Connection Type”: selecionamos a opção PostgreSQL;
-  na opção “Access”: selectionamos Native(JDBC);
-  no campo “Host Name”: o IP do banco de dados, no caso é localhost;
- no campo “Database Name”: o nome do banco de dados, no caso é teste;
- no campo “Port Number”: a portão de conexão com o banco de dados, no caso 5432;
- no campo “User Name”: usuário do banco de dados, no caso postgres;
- no campo “Password”: a senha do usuário no banco de dados, no caso postgres;
- Pode ser usuado o botão “Test” para verificar se está tudo certo com a conexão, depois clicamos no botão “OK” para salvar, a conexão ficará assim:

21º Voltando a Janela do “Table Output”:
- Vamos no campo “Target table” e informamos a tabela do banco de dados a ser inseridas as informações, no caso “dime_cadcli”;
- No campo “Commit size” informamos o número 1000(quantidades de registros para commit);
- Marcamos a opção “Truncate table”, para sempre limpar a tabela e importar tudo do zero novamente;
- Marcamos a opção “Use Batch Update for Inserts”;
- Marcamos a opção “Store the tablename field”;
- Na aba “Database Fields” não é preciso nesse caso informar nenhuma configuração;
A configuração do Step “Table Output” ficou assim:

Clicamos no botão “OK” para sair do Step;

22º Voltando para a Tela principal, agora basta executar a transformação: Action => Rum, se todos os passos foram seguidos dos os Steps apareceram com um “V” na cor verde, simbolizando que a transformação foi bem sucedida:

23º Para conferir se os dados realmente foram importados para a tabela do banco de dados podemos executar uma consulta no banco de dados através do PgAdmin, assim:
select * from dime_cadcli

O Resultado apresentado precisa ser:



segunda-feira, 24 de novembro de 2014

Configurando Senha para publicação do schemas no biserver-ce

Antes de publicar qualquer cubo precisamos configurar a senha para publicação. Para isso vamos no caminho:

- Se Linux /opt/pentaho/biserver-ce/pentaho-solutions/system/;
- Se Windows c:\opt\pentaho\biserver-ce\pentaho-solutions\system;
- Editamos o arquivo publiser_config_xml e na “<publisher-password>” inserimos a senha desejada, conforme imagem abaixo:


 Após as alterações é necessário reiniciar o biserver-ce, para reiniciar:
Se Windows: primeiro c:\opt\pentaho\biserver-ce\stop-pentaho.bat depois c:\opt\pentaho\biserver-ce\start-pentaho.bat;
Se Linux: primeiro ./opt/pentaho/biserver-ce/stop-pentaho.sh depois ./opt/pentaho/biserver-ce/start-pentaho.sh;

Alterar a porta padrão do biserver-ce – Servidor Pentaho

Por padrão o biserver-ce utiliza a porta de conexão 8080, mas podemos alterar essa porta de conexão utilizada por motivos como: segurança ou conflito de portas.
  
Alteração:
1º Acesse a pasta do biserver-ce, /opt/pentaho/biserver-ce/tomcat/conf para Linux ou c:\opt\pentaho\biserver-ce\tomcat\conf\ para Windows, edite o arquivo “server.xml” do tomcat;
2º Localize no XML as referencias a porta 8080, e altere para a porta desejada, como na imagem abaixo, por exemplo alteramos para a porta 8045:

Sem alteração:



Com alteração:



3º Acesse a pasta /opt/pentaho/biserver-ce/tomcat/webapps/pentaho/WEBINF/ para o Linux e c:\opt\pentaho\biserver-ce\tomcat\webapps\pentaho\WEB-INF\ e edite o arquivo web.xml, este arquivo também deverá ser alterado todas as ferências a porta 8080, conforme imagem abaixo alteramos a porta para 8045:

Sem alteração:

Com alteração:

4º Após as alterações é necessário reiniciar o biserver-ce, para reiniciar:
·  Se Windows: primeiro c:\opt\pentaho\biserver-ce\stop-pentaho.bat depois c:\opt\pentaho\biserver-ce\start-pentaho.bat;
· Se Linux: primeiro ./opt/pentaho/biserver-ce/stop-pentaho.sh depois ./opt/pentaho/biserver-ce/start-pentaho.sh;
5º Depois podemos logar no portal e testar a alteração, no exemplo da alteração será http://localhost:8045/pentaho.


domingo, 23 de novembro de 2014

Alterando a Quantidade de Memória Ram utilizada pelo biserver-ce - Pentaho

Dependendo capacidade de memória ram da máquina(servidor) que será utilizada para o biserver-ce ocorre a necessidade de alteração da quantidade minima e máxima a ser utilizada pelo biserver-ce.

Para fazer a alteração da quantidade de memória que o biserver-ce utilizará é necessário:
- Se o Sistema Operacional utilizado for Windows: acessar a pasta c:\opt\pentaho\biserver-ce\ e editar o arquivo start-pentaho.bat, alterar a linha o "set CATALINA_OPTS=-Xms1024m -Xmx2048m" (esses são os dados que vem como padrão), Xms que dizer o minimo a ser utilizada, e Xmx quer dizer o máximo a ser utilizada, no caso da utilização ser de 12GB até 16GB então ficaria assim:
"set CATALINA_OPTS=-Xms12288m -Xmx16384m";

- Se o Sistema Operacional utilizado for Linux: acessar a pasta /opt/pentaho/biserver-ce/ e editar o arquivo start-pentaho.sh, alterar a linha o "CATALINA_OPTS="-Xms1024m -Xmx2048m" (esses são os dados que vem como padrão), Xms que dizer o minimo a ser utilizada, e Xmx quer dizer o máximo a ser utilizada, no caso da utilização ser de 12GB até 16GB então ficaria assim:
"CATALINA_OPTS=-Xms12288m -Xmx16384m";


- Após alterar as quantidades de memória ram é necessário reiniciar o biserver-ce, para reiniciar:
* Se Windows: primeiro c:\opt\pentaho\biserver-ce\stop-pentaho.bat depois c:\opt\pentaho\biserver-ce\start-pentaho.bat;
* Se Linux: primeiro ./opt/pentaho/biserver-ce/stop-pentaho.sh depois ./opt/pentaho/biserver-ce/start-pentaho.sh.


Iniciando biserver-ce 5.2 - Pentaho

Abaixo vamos efetuar a instalação do Server do Pentaho que é o biserver-ce.  

1º Requisito: É fundamental que exista o Java JDK instalado na máquina. Para a instalação do JAva JRE você pode seguir o tutorial disponivel nesse blog: 

3º Extração e copia:
- Extraímos inicialmente o arquivo biserver-ce-5.2.0.0-209.zip;
- Se Sistema Operacional Windows criamos uma pasta com o nome "opt" na raiz do c:\, dentro da pasta "opt" criamos uma subpasta chamada "pentaho", dentro da pasta pentaho copiamos a pasta extraida biserver-ce, ficando assim: c:\op\pentaho\biserver-ce;
- Se Sistema Operacional Linux, criamos uma pasta com o nome "pentaho", no /opt e copiamos o arquivo extraído biserver-ce para dentro da pasta pentaho, ficando assim /opt/pentaho/biserver-ce;

4º Executando o biserver-ce:
- Se Sistema Operacional Windows, vamos até a pasta c:\opt\pentaho\biserver-ce e executamos o arquivo start-pentaho.bat;
- Se Sistema Operacional Linux, abrimos o Terminal digitamos:
# cd /opt/pentaho/biserver-ce
# ./start-pentaho.sh

5º Teste e Login:
Executamos um navegador de preferência "Google Chrome" e digitamos:
- Se local 127.0.0.1:8080;
- Se em rede "IP da máquina que esta rodando o biserver-ce":8080;
- Aparecerá o portal padrão do Pentaho, para demonstração inicial pode ser usado o usuário padrão: Admin e a senha: password;

- Você poderá abrir analises prontas de demonstração e também utilizar o schema de demonstração;




Instalação Java JDK para Windows - Pentaho

1ª Baixe a versão do Java JDK 7u71 apropriada para sua máquina ou x86 ou x64: http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk7-downloads-1880260.html
- Após baixar é só executar o arquivo baixado até o fim da instalação

2º Configuração do das variáveis:
- Vá em: "Painel de Controle\Sistema e Segurança\Sistema" e clique na opção "Configurações Avançadas do Sistema"; - Abrirá a janela: "Propriedades do Sistema", clique na aba "Avançado", depois no botão variáveis de ambiente;


- No quadro "variáveis do sistema" clicamos no botão "Novo", e adicionamos no campo nome da variável adicionamos "JAVA_HOME" e no campo Valor da variável o caminho da instalação do Java, que pode ser "C:\Program Files\Java\jdk1.7.0_71", depois clicamos no botão "OK";

- Novamente no quadro " Variáveis do sistema" clicamos no botão "Novo", e adicionamos no campo nome da variável adicionamos "CLASSPATH" e no campo Valor da variável o caminho da instalação do Java, que pode ser ";%JAVA_HOME", depois clicamos no botão "OK";

- Mais uma vez no quadro " variáveis do sistema" localizamos na coluna variável "Path" clicamos nesta variável, depois no botão editar, no campo valor da variavel ao final após o último ponto e virgula adicionamos "%JAVA_HOME%/bin", depois clicamos no botão "OK": 

Para testar se o Java JDK esta funcionando executamos o Prompt= Executar => CMD, e digitamos javac -version, terá que mostrar a versão do Java JDK instalado, se apresentar erro algum processo não foi realizado como descrito anteriormente.

Configurações CentOS 6.5 - Business Intelligence Pentaho

1º Instalação: Instalação do sistemas operacional CentOS 6.5, em uma máquina física ou virtual;

2º Atualização SO: Rodar Yum Update para atualização de todos os pacotes que estão faltando;

3º Instalar Unzip:
wget http://yum.pgrpms.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm
-depois:
yum instal unzip;
 - para extrair um arquivo:
 unzip arquivo –r destino;

4º Instalar Java JDK:
 • Baixar Java JDK no site da oracle: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html, escolher a versão conforme o sistema operacional(versão e bits do SO), após baixar roda o instalador, até concluir a instalação com sucesso;
• Para testar pode-se abrir o terminal e digitar java –version, e também javac –version, os 2 devem estar funcionando;

5º Instalação do Postgres: devemos optar por uma versão e utilizar o JDBC de conexão para os aplicativos, no exemplo vamos utilizar os links para a versão 9.1, mas nada impede de utilizarmos outros links para outras versões.

Instalar Postgres 9.4:
 # yum install wget
 # cd /tmp
# wget https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-2.noarch.rpm
# rpm -Uvh pgdg-centos94-9.4-2.noarch.rpm
# yum install postgresql94-server
# yum install postgresql94-contrib

Para ativar:
service postgresql-9.4 initdb
chkconfig postgresql-9.4 on
service postgresql-9.4 start

 Precisamos utilizar o nano para editar o arquivo de configuração(pg_hba.conf):
yum install nano
nano /var/lib/pgsql/9.4/data/pg_hba.conf

PostgreSQL.conf

#standard_conforming_strings = off
Obs. Comentar

#lc_messages = 'C'
#lc_monetary = 'C
#lc_numeric = 'C'
#lc_time = 'C'
Obs. Comentar os lc

 Vai estar assim o Final: 
TYPE DATABASE USER ADDRESS METHOD
 # "local" is for Unix domain socket connections only local all all peer
# IPv4 local connections: host all all 127.0.0.1/32 ident
# IPv6 local connections: host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident

 Terá que ficar assim:
# TYPE DATABASE USER ADDRESS METHOD
 # "local" is for Unix domain socket connections only local all all trust
# IPv4 local connections: host all all 127.0.0.1/32 trust host all all 0.0.0.0 0.0.0.0 trust
# IPv6 local connections: host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident

 Obs. mudado o peer para trust, acrescentada a linha "host all all 0.0.0.0 0.0.0.0 trust" no ipv4, e no ipv4 também foi alterado de ident para trust a primeira linha.

 - Após efetuar as devidas alteração precisamos reiniciar os serviços, para reiniciar os serviços utilizamos o comando:
service postgresql-9.1 restart


6º Instalação do PgAdmin:
Para instalar o PgAdmin:
# yum install pgAdmin3_91

Abrir o Pg_Admin e executar o comando para criar a função pg_prewarm no PostgreSQL 9.4:
CREATE EXTENSION pg_prewarm;

SELECT pg_prewarm(‘nome_da_tabela’);

7º Para instalação Team Viewer: 
- Baixar o Team Viewer: http://www.teamviewer.com/pt/download/linux.aspx
- Instalar via instalador

8º Configuração para subir a placa de rede automaticamente e também para iniciar automaticamente o portal do BI:
No rc.local(/etc) coloca o comando para:
-Iniciar a placa de rede automaticamente= ifconfig eth0 up
-Iniciar o portal do BI automaticamente= ./opt/pentaho/biserver-ce/start-pentaho.sh

9º Configurar servidor para Login Automatico:
No custom.conf(/etc/gdm) colocamos para fazer login automaticamente ao reiniciar: abaixo do [daemon] deve ser incluidos os paramentros:
AutomaticLoginEnable=True
AutomaticLogin=Usuario
AutomaticLoginPassword=senha

10º Alterar a codificação do Centos para banco de dados Postgres:
 - Cd /etc/
- nano environment
- adiciona duas linhas:
LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"
Salva o arquivo e dá um reboot

11º Instalação do navegador Chromium:
cd /etc/yum.repos.d
 wget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo
yum install chromium

12º Para recuperar a barra de tarefas(se necesário): 
pkill gnome-panel

13º Liberar acesso total para o ip e porta : 8080 e 8099
service iptables save
service iptables stop
 chkconfig iptables off
***************************************
service ip6tables save
service ip6tables stop
chkconfig ip6tables off

Função para limpar todas as tabelas do Banco de dados PostgreSQL

Para criar a função:
CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS void AS $$ DECLARE
statements CURSOR FOR
SELECT tablename FROM pg_tables
WHERE tableowner = username AND schemaname = 'public';
BEGIN
FOR stmt IN statements LOOP
EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;';
END LOOP;
END;
$$ LANGUAGE plpgsql;
Para chamar a função:
select truncate_tables('postgres');
ATENÇÃO: Tome muito cuidado ao utilizar essa função!!!!!

Erro ao criar permissão para acesso da analise Saiku: "Acess to /pentaho-solutions/demo/analises/Vda Unidade.saiku for operation 32 was denied."

O Erro "Acess to /pentaho-solutions/demo/analises/Vda Unidade.saiku for operation 32 was denied." é apresentado ao criar a permissão de acesso a determinado usuário ou grupo a um arquivo de analise saiku que foi gravado.
Para corrigir este problema: Precisamos configurar a permissão para o arquivo do tipo ".saiku" no arquivo "pentaho.xml" que fica no caminho: "/opt/pentaho/biserver-ce/pentaho-solutions/system/pentaho.xml", ao editar o arquivo localizamos a tag "acl-files" após a ultima palavra dentro da tag adicionamos ",saiku", assim:
Após executar a alteração salvar o arquivo é necessário reiniciar o biserver-ce.

Blogs e sites relacionados com a Plataforma Pentaho que são recomendados:

http://blog.professorcoruja.com

http://kettlebeginners.blogspot.com.br/

http://blog.pentaho.com/

http://planetapentaho.com.br/

http://blogs.ambientelivre.com.br/marcio/pentaho-community-gathering-%E2%80%93-curitiba-2014/

http://pentaho-bi-suite.blogspot.com.br/

http://blog.pentaho.com/author/rdaleypentaho/

http://forums.pentaho.com/forumdisplay.php?145-Pentaho-Blogs

http://softwarelivre.org/pentaho/

http://www.ambientelivre.com.br/tutoriais-pentaho-bi/link-s-interessantes-sobre-pentaho-bi.html

http://www.it4biz.com.br/novosite/treinamentos/treinamentos/curso-gratuito-online-desmistificando-bi-business-intelligence-open-source-pentaho-e-tecnologias-livres/

http://www.openconsulting.com.br/pentaho/

http://www.pentaho.com/

http://community.pentaho.com/

Ctools - Como ocultar os arquivos CDA - Para não aparecer no portal do Pentaho - Pentaho 4.8

   Para o usuário final não é necessário apresentar os arquivos CDA dos dashbords pois para abrir o dashbord utilizamos o arquivo CDE, sem o arquivo CDA fica mais fácil para o usuário final apenas visualizar os arquivos que realmente irá utilizar "CDE".

   Para ocultar os arquivos CDA editamos o arquivo "plugin.xml" que fica no caminho:
             "/opt/pentaho/biserver-ce/pentaho-solutions/system/cda/plugin.xml"
   Ao editar o arquivo comentamos a tag:" <content-type></content-type>", para comentar utilizamos "!--", ficando assim "<!-- content-type-->" e "<!--/content-type-->", assim:













Após editar o arquivo salvamos e depois reiniciarmos o biserver-ce, onde ao logar novamente no portal os arquivos CDE estarão ocultos.