Business Intelligence - Pentaho 3.5 com PostgreSQL

Uma plataforma completa da inteligência de negócio que inclui o relatório, análise (OLAP), dashboards, mineração dos dados e integração dos dados (ETL).

[ Hits: 57.769 ]

Por: Flavio Torres em 11/01/2010


Configurando o administration console com suporte ao PostgreSQL



Esta foi uma parte que não encontrei em lugar algum, tive que fazer engenharia reversa do sistema e adaptá-lo. Existe uma contribuição minha na wiki do Pentaho.

Será necessário a modificação de 2 arquivos.
  • administration-console/resource/config/login.conf
  • administration-console/resource/config/console.properties

Fazer o download do driver atual do PostgreSQL, note que há uma diferença entre usar a JDK 1.5 e 1.6, leia no site, entenda e baixe a correta. Copiar o driver responsável pela conexão ao postgresql para o diretório do administration-console:

# cd /pentaho
# wget
http://jdbc.postgresql.org/download/postgresql-8.3-605.jdbc4.jar
# rm -f /pentaho/biserver-ce/tomcat/common/lib/postgresql-8.2-504.jdbc3.jar
# cp postgresql-8.3-605.jdbc4.jar /pentaho/biserver-ce/tomcat/common/lib/
# cp biserver-ce/tomcat/common/lib/postgresql-8.3-605.jdbc4.jar administration-console/jdbc/


Configurar autenticação no PostgreSQL:

login.conf - JDBCLoginModule

O módulo JDBCLoginModule armazena as configurações de usuário e senha e regras de acesso na base de dados, que por sua vez é acessado via driver JDBC. As configurações personalizadas de usuário, senha, tabelas e drivers são armazenadas no arquivo login.conf.

# cd /biserver/pentaho/administration-console/resource/config
# vi login.conf


JDBCLoginModule {
org.mortbay.jetty.plus.jaas.spi.JDBCLoginModule required
debug="true"
dbUrl="jdbc:postgresql://localhost:5432/hibernate"
dbUserName="pentaho_user"
dbPassword="password"
dbDriver="org.postgresql.Driver"
userTable="admconsole_users"
userField="username"
credentialField="credential"
userRoleTable="admconsole_roles"
userRoleUserField="userrole"
userRoleRoleField="role";
};

Você terá que adicionar todas as linhas no arquivo, isto é, remover as antigas e adicionar estas.

As opções de configuração desse arquivo são:
  • dbUrl: Endereço url para o driver acessar a base de dados, jdbc:postgresql://<endereco ip>:<porta>/<banco>
  • dbUserName: Nome do usuário para acessar a base especificada
  • dbPassword: Senha do usuário especificado
  • dbDriver: O driver da classe de conexão com o banco, org.postgresql.Driver
  • userTable: Nome da tabela de usuários
  • userField: Nome do campo do usuário
  • credentialField: Nome do campo de credenciais, senha.
  • UserRoleTable: Nome da tabela de regras
  • userRoleUserField: Nome do campo e regras do usuário
  • userRoleRoleField: Nome do campo de regras administrativas

A regra do banco deve satisfazer o seguinte retorno de consulta:

select credential from admconsole_users where username = ?;
select role from admconsole_roles where userrole = ?;

Abaixo segue o esquema de criação das tabelas e campos, uma vez conectado ao banco hibernate com usuário com poderes administrativos, fazer:

create table admconsole_users (
username character varying(60),
credential character varying(60)
);

create table admconsole_roles (
userrole character varying (60),
role character varying (60)
);

grant select on admconsole_users to pentaho_user;
grant select on admconsole_roles to pentaho_user;


insert into admconsole_users values ('admin', 'admin');
insert into admconsole_roles values ('admin', 'server-administrator');

A consulta retornará os seguintes resultados:

# select credential from admconsole_users where username = 'admin';
credential
------------
admin
(1 row)

hibernate=# select role from admconsole_roles where userrole = 'admin';
role
----------------------
server-administrator
(1 row)

console.properties

Esse arquivo é responsável por habilitar as configurações a serem utilizadas pelo JDBC para conexão do console-administration com o banco.

console.security.enabled=true
console.security.roles.allowed=Admin,server-administrator,content-administrator
console.security.roles.delimiter=,
console.security.realm.name=Pentaho
console.security.login.module.name=JDBCLoginModule
console.security.auth.config.path=resource/config/login.conf
console.security.callback.handler=org.mortbay.jetty.plus.jaas.callback.DefaultCallbackHandler

Aqui acaba a configuração, se você desejar SSL, o que não é nada mal para trafegar dados importantes sobre seu negócio, parta para a próxima etapa.

Página anterior     Próxima página

Páginas do artigo
   1. Business Intelligence - Pentaho 3.5 com PostgreSQL
   2. Configurando o banco de dados PostgreSQL
   3. Configurando a suíte Pentaho (CE) 3.5
   4. Configurando o pentaho-solutions
   5. Configurando o Tomcat
   6. Configurando o administration console com suporte ao PostgreSQL
   7. Configurando SSL para Pentaho/Tomcat
Outros artigos deste autor

Trabalhando com init no Debian

Node.js para administradores de sistema

Leitura recomendada

Instalação do Redmine no CentOS 6

FIND - Encontrar informações no Linux

Ocomon - Instalação e configuração

Integração Contínua com Jenkins - Instalação (Parte 1)

tzwatch - Navegando pelo horário mundial no Debian

  
Comentários
[1] Comentário enviado por rai3mb em 23/02/2011 - 00:55h

ops, beleza já vou usar o seu tutorial pra montar um ambiente de BI com o pentaho na minha máquina, pois na minha empresa teremos que aprender sobre a plataforma do pentaho e usá-lo, a diferença no caso é que na empresa usarei o ambiente ruindows, mas sem problemas a perspectiva é que no futuro tenhamos gnu/linux também nessa empresa.

[2] Comentário enviado por rai3mb em 23/02/2011 - 01:24h

O passo

postgres=# create DATABASE sampledata WITH ENCODING 'SQL_ASCII' owner pentaho_user;
CREATE DATABASE

não deu certo, por causa da codificação atual da minha instalação, postgres8.4, tive que colocar 'UTF8'mesmo.

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts