Background
Os passos abaixo visam configurar o Pentaho 5.4 para utilizar o Postgres como banco de dados dos metadados.
Existem algumas diferençãs entre a configuração do Pentaho 4.x para a versão 5.x.
Umas das principais mudanças é que o repositório dos arquivos e configurações do Pentaho 5.x agora ficam armazenado em um repositório de conteúdo chamado Jackrabbit, e não mais no filesystem.
Logo, adicionalmente ao que era feito para configurar o Pentaho 4.8, agora será criado também um database para armazenar os dados/metadados do Jackrabbit no PostgreSQL.
Referências
Pentaho Use Manual BA Server Installation
Pentaho BI Server 5.0.1CE MySQL installation guide
How To: Install and configure Pentaho BI Suite 5 CE | Ubuntu 12.04 | PostgreSQL 9.2
Configurações
1. Criar os banco de dados hibernate / quartz / jackrabbit
Execute os script de criação que se encontram na pasta biserver-ce\data\postgresql
2. Workaround para Bug
Crie a tabela abaixo para contornar o bug JIRA BISERVER-11028.
OBS. Deve se garantir que após a criação o nome da tabela esteja em letras MAIÚSCULAS.
CREATE TABLE "QRTZ_DUMMY" ( id bigint ); ALTER TABLE "QRTZ_DUMMY" OWNER TO pentaho_user;3. tomcat/webapps/pentaho/META-INF/context.xml
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="hibuser" password="password" driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/hibernate" validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES" />
para
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="hibuser" password=" <IP>:<PORT> password" driverClassName="org.postgresql.Driver" url="jdbc:postgresql:// /hibernate" validationQuery="select 1" />
e
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user" password="password" driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/quartz" validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES"/>
para
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user" password=" password<IP>:<PORT> " driverClassName="org.postgresql.Driver" url="jdbc:postgresql:// /quartz" validationQuery="select 1"/>
4. pentaho-solutions/system/applicationContext-spring-security-hibernate.properties
jdbc.driver=org.hsqldb.jdbcDriver jdbc.url=jdbc:hsqldb:hsql://localhost:9001/hibernate jdbc.username=hibuser jdbc.password=password hibernate.dialect=org.hibernate.dialect.HSQLDialect
para
jdbc.driver=org.postgresql.Driver jdbc.url=jdbc:postgresql://<IP>:<PORT>/hibernate jdbc.username=hibuser jdbc.password=password hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
5. pentaho-solutions/system/hibernate/hibernate-settings.xml
<config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file>
para
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
6. pentaho-solutions/system/hibernate/postgresql.hibernate.cfg.xml
(...) <property name="connection.url">jdbc:postgresql://localhost:5432/hibernate</property> (...) <property name="connection.username">hibuser</property> <property name="connection.password">password</property>
para
(...) <property name="connection.url">jdbc:postgresql://<IP>:<PORT>/hibernate5</property> (...) <property name="connection.username">hibuser</property> <property name="connection.password">password</property>
7. tomcat/conf/server.xml
Em alguns casos temos problemas que ocorrem devido ao tamanho máximo do HTTP Header. Para isso, iremos aumentar o seu tamanho.
<Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />para
<Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" />8. pentaho-solutions/system/pentaho.xml
Caso deseje desabilitar a lista de sample users da tela de login.
(...) <login-show-users-list>true</login-show-users-list> (...) <login-show-sample-users-hint>true</login-show-sample-users-hint> (...)para
(...) <login-show-users-list>false</login-show-users-list> (...) <login-show-sample-users-hint>false</login-show-sample-users-hint> (...)
9. tomcat/conf/Catalina/localhost/pentaho.xml
Caso já tenha iniciado o pentaho alguma vez com a configuração original, apague o respectivo arquivo.
Nota: Este é um arquivo de cache do tomcat que não é recriado se o META-INF/context.xml for alterado. Deletar força o arquivo ser recriado novamente com a nova configuração.
10. pentaho-solutions/system/jackrabbit/repository
Apagar todo conteúdo da respectiva pasta.
11. pentaho-solutions/system/jackrabbit/repository.xml
É necessário configurar o JCR para usar o Postgres ao invés do H2.
Edite o respectivo arquivo e busque por configurações relacionado ao
Postgres. Você pode fazer um 'Search' por 'org.postgresql.Driver'.
Descomente o respectivo bloco de configuração e faça os ajustes de
conexões necessários. Não esqueça de comentar a configuração equivalente
que estava ativa por padrão.
Para referência pode se utilizar os respectivos documentos:
Use Manual BA Server Installation
Use PostgreSQL as Your Repository Database
12 . Segurança dos usuários
- Altere a senha do usuário admin.
- Remova ou altere as senhas de todos usuários default.
13. Configuração de Localização PT_BR
Edite os arquivos start-pentaho.sh(.bat), e na opção 'export CATALINA_OPTS' inclua no final da linha:
-Dfile.encoding=utf-8 -Duser.country=BR -Duser.language=pt
14. Configurando tomcat/webapps/pentaho/WEB-INF/web.xml (opcional)
Para remover a mensagem de WARNING abaixo durante a inicialização:
WARNING: Security role name PENTAHO_ADMIN used in an <auth-constraint> without being defined in a <security-role>Incluir no arquivo, antes da tag <security-constraint> a configuração:
<security-role> <description>security role assignment</description> <role-name>PENTAHO_ADMIN</role-name> </security-role>15. Desativar Hypersonic - tomcat/webapps/pentaho/WEB-INF/web.xml (opcional)
Para desativar o startup automático do Hypersonic, edite o arquivo e comente ou delete as seguintes configurações:
<!-- [BEGIN HSQLDB DATABASES] --> <context-param> <param-name>hsqldb-databases</param-name> <param-value>sampledata@../../data/hsqldb/sampledata,hibernate@../../data/hsqldb/hibernate,quartz@../../data/hsqldb/quartz</param-value> </context-param> <!-- [END HSQLDB DATABASES] -->
<!-- [BEGIN HSQLDB STARTER] --> <listener> <listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class> </listener> <!-- [END HSQLDB STARTER] -->16. Desativar SGBD H2 - pentaho-solutions/system/pentaho-spring-beans.xml
Como já é sabido, a partir da versão 5.0 a Pentaho optou por utilizar um gerenciador de conteúdos para armazenar o repositório das soluções, contrário às versões anteriores que utilizavam diretamente o sistema de arquivos.
Este gerenciador de conteúdos é o Apache Jackrrabit, que por padrão vem pré configurado na versão CE, utilizando o SGBD H2.
Então uma vez que o JCR seja migrado para o Postgres podemos desatirar o SGBD H2, da mesma forma que fizemos para o hibernate e o quartz que utilizam o SGBD HSQLDB.
Para desativá-lo remova ou comente a linha abaixo do respectivo arquivo:
<import resource="GettingStartedDB-spring.xml" /> <!-- Remove this line to unhook the Getting Started DB -->
5 comentários:
Ficou ótimo o tutorial Kleyson!
Obrigado por compartilhar.
Valeu !!!
Ótimo post, apliquei na versão 6.0.1 e deu certo de primeira.
Parabéns pelo compartilhamento.
Abraços.
Willian Batista
Oi Kleyson, Muito bom!
Você tem algum link sobre migrar os usuários e pastas do jackrabbit pré-cadastrados para um repositório em banco de dados?
Postar um comentário