Buscar en el Blog

Mostrando las entradas con la etiqueta PostgreSQL. Mostrar todas las entradas
Mostrando las entradas con la etiqueta PostgreSQL. Mostrar todas las entradas

lunes, 11 de junio de 2018

Configuración de Pentaho Server 8.x para PostgreSQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentahohibernate, quartz jackrabbit en la base de datos PostgreSQL v9.6

Por defecto, el pentaho-server de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El servidor central pentaho-server viene con los scripts para MySQL, Oracle, SQL Server y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.8, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  PostgreSQL v9.6
  • Haber descargado la aplicación pentaho-server y haberla copiado y descomprimido en el directorio: \pentaho-server-ce-8.x
  • Haber descargado el controlador JDBC para  PostgreSQL
Configuración paso a paso.-

1. Ir al directorio \pentaho-server\data aquí se encuentran los scripts para MySQL, Oracle, SQL Server y PostgreSQL

2. Abrir el directorio postgresql y ejecutar los scripts: create_repository_postgresql.sqlcreate_quartz_postgresql.sql y create_jcr_postgresql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC Tipo 4 de PostgreSQL (postgresql-42.1.4.jar) al directorio \pentaho-server\tomcat\lib.

NOTA: Borrar el driver postgresql-42.1.1.jar existente de tal forma que solo quede el archivo postgresql-42.1.4.jar

4. Editar el archivo context.xml ubicado en el directorio: \pentaho-server\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
 <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
  maxWaitMillis="10000" username="hibuser" password="password"
  driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/hibernate"
  validationQuery="select version();" />
  
 <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
  maxWaitMillis="10000" username="pentaho_user" password="password"
  driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/quartz"
  validationQuery="select version();"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \pentaho-server\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \pentaho-server\tomcat\webapps\pentaho\WEB-INF. Comentar las secciones: [BEGIN HSQLDB DATABASES] y [BEGIN HSQLDB STARTER]

Configuración en Pentaho Server

Todos los archivos de configuración del servidor central de Pentaho Community Edition (pentaho-server) se encuentran en el directorio: \pentaho-server\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/system/hibernate/postgresql.hibernate.cfg.xml como se muestra a continuación:
...
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
...

NOTA: no olvidar de editar el archivo postgresql.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a PostgreSQL como se muestra a continuación:
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

9. En la base de datos quartz crear la siguiente tabla:
CREATE TABLE "qrtz"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);

ALTER TABLE "qrtz" OWNER TO pentaho_user;

10. Editar el archivo repository.xml de Jackrabbit en el directorio \pentaho-server\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en PostgreSQL:
  • Configuración del FileSystem: descomentar de la línea 61 a la 68. Comentar de la línea 79 a la 83
  • Configuración del DataStore: descomentar de la línea 123 a la 134. Comentar de la línea 150 a la 152
  • Configuración del FileSystem: descomentar de la línea 236 a la 243. Comentar de la línea 255 a la 259
  • Configuración del PersistenceManager: descomentar de la línea 293 a la 300. Comentar de la línea 312 a la 317
  • Configuración del FileSystem: descomentar de la línea 368 a la 375. Comentar de la línea 386 a la 390
  • Configuración del PersistenceManager: descomentar de la línea 425 a la 432. Comentar de la línea 443 a la 448
11. Reiniciar el servidor Pentaho Server
12. Borrar el cache del navegador web (Browser) y abrir http://localhost:8080

Consideraciones Importantes

En sistemas operativos Windows, sí se ejecutó pentaho-server antes de realizar ésta configuración usando la base de datos por defecto HSQLDB, es conveniente eliminar el contenido de los siguientes directorios para evitar comportamientos inesperados:
  • \pentaho-server\tomcat\work\Catalina\* 
  • \pentaho-server\tomcat\temp\* 
  • \pentaho-server\pentaho-solutions\system\karaf\caches\* 
  • \pentaho-server\pentaho-solutions\system\jackrabbit\repository
NOTA: de preferencia igual limpiar el cache del navegador web con el que se esté trabajando.

domingo, 14 de enero de 2018

Configuración de Pentaho Server 7.x para PostgreSQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentahohibernate, quartz jackrabbit en la base de datos PostgreSQL v9.6

Por defecto, el pentaho-server de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El servidor central pentaho-server viene con los scripts para MySQL, Oracle, SQL Server y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.8, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  PostgreSQL v9.6
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \pentaho-server-ce-7.x
  • Haber descargado el controlador JDBC para  PostgreSQL
Configuración paso a paso.-

1. Ir al directorio \pentaho-server\data aquí se encuentran los scripts para MySQL, Oracle, SQL Server y PostgreSQL

2. Abrir el directorio postgresql y ejecutar los scripts: create_repository_postgresql.sqlcreate_quartz_postgresql.sql y create_jcr_postgresql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC Tipo 4 de PostgreSQL (postgresql-42.1.4.jar) al directorio \pentaho-server\tomcat\lib.

NOTA: Borrar el driver postgresql-9.3-x.jdbc4.jar existente de tal forma que solo quede el archivo postgresql-42.1.4.jar

4. Editar el archivo context.xml ubicado en el directorio: \pentaho-server\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
 <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
  maxWaitMillis="10000" username="hibuser" password="password"
  driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/hibernate"
  validationQuery="select version();" />
  
 <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
  maxWaitMillis="10000" username="pentaho_user" password="password"
  driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/quartz"
  validationQuery="select version();"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \pentaho-server\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \pentaho-server\tomcat\webapps\pentaho\WEB-INF. Comentar las secciones: [BEGIN HSQLDB DATABASES] y [BEGIN HSQLDB STARTER]

Configuración en BI Server

Todos los archivos de configuración del servidor central de Pentaho Community Edition (pentaho-server) se encuentran en el directorio: \pentaho-server\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/system/hibernate/postgresql.hibernate.cfg.xml como se muestra a continuación:
...
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
...

NOTA: no olvidar de editar el archivo postgresql.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a PostgreSQL como se muestra a continuación:
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

9. En la base de datos quartz crear la siguiente tabla:
CREATE TABLE "qrtz"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);

ALTER TABLE "qrtz" OWNER TO pentaho_user;

10. Editar el archivo repository.xml de Jackrabbit en el directorio \pentaho-server\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en PostgreSQL:
  • Configuración del FileSystem: descomentar de la línea 61 a la 68. Comentar de la línea 79 a la 83
  • Configuración del DataStore: descomentar de la línea 123 a la 134. Comentar de la línea 150 a la 152
  • Configuración del FileSystem: descomentar de la línea 236 a la 243. Comentar de la línea 255 a la 259
  • Configuración del PersistenceManager: descomentar de la línea 293 a la 300. Comentar de la línea 312 a la 317
  • Configuración del FileSystem: descomentar de la línea 368 a la 375. Comentar de la línea 386 a la 390
  • Configuración del PersistenceManager: descomentar de la línea 425 a la 432. Comentar de la línea 443 a la 448
11. Reiniciar el servidor de Pentaho

Consideraciones Importantes

En sistemas operativos Windows, sí se ejecutó pentaho-server antes de realizar ésta configuración usando la base de datos por defecto HSQLDB, es conveniente eliminar el contenido de los siguientes directorios para evitar comportamientos inesperados:
  • \pentaho-server\tomcat\work\Catalina\* 
  • \pentaho-server\tomcat\temp\* 
  • \pentaho-server\pentaho-solutions\system\karaf\caches\* 
  • \pentaho-server\pentaho-solutions\system\jackrabbit\repository
NOTA: de preferencia igual limpiar el cache del navegador web con el que se esté trabajando.

viernes, 21 de julio de 2017

Cómo sacar un backup vía comandos en PostgreSQL v9.6 instalado sobre Windows

En la siguiente publicación explico el procedimiento para sacar un respaldo (backup) de base de datos en PostgreSQL v9.6 instalado sobre el sistema operativo Windows usando la línea de comandos.

Suponiendo que se tiene la base de datos BDD, para sacar el respaldo (backup) se tiene que hacer lo siguiente:

1) Abrir una consola de comandos (cmd) e ir a:
C:\Program Files\PostgreSQL\9.6\bin
2) Ejecutar el siguiente comando:
pg_dump.exe --file "C:\Temp\BDD.backup" --host "localhost" --port "5432" --username "postgres" --verbose --role "postgres" --format=c --blobs --encoding "UTF8" "BDD"

jueves, 27 de abril de 2017

Configuración de Pentaho BI Server 6.x para PostgreSQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentahohibernate, quartz jackrabbit en la base de datos PostgreSQL v9.6

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El servidor central biserver viene con los scripts para MySQL, Oracle, SQL Server y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.8, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  PostgreSQL v9.6
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-6.x
  • Haber descargado el controlador JDBC para  PostgreSQL
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-6.x\data aquí se encuentran los scripts para MySQL, Oracle, SQL Server y PostgreSQL

2. Abrir el directorio postgresql y ejecutar los scripts: create_repository_postgresql.sqlcreate_quartz_postgresql.sql y create_jcr_postgresql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC Tipo 4 de PostgreSQL (postgresql-42.0.0.jre7.jar) al directorio \biserver-ce-6.x\tomcat\lib.

NOTA: Borrar el driver postgresql-9.3-x.jdbc4.jar existente de tal forma que solo quede el archivo postgresql-42.0.0.jre7.jar

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-6.x\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
 <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
  maxWaitMillis="10000" username="hibuser" password="password"
  driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/hibernate"
  validationQuery="select version();" />
  
 <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
  maxWaitMillis="10000" username="pentaho_user" password="password"
  driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/quartz"
  validationQuery="select version();"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \biserver-ce-6.x\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \biserver-ce-6.x\tomcat\webapps\pentaho\WEB-INF. Comentar las secciones: [BEGIN HSQLDB DATABASES] y [BEGIN HSQLDB STARTER]

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-6.x\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/system/hibernate/postgresql.hibernate.cfg.xml como se muestra a continuación:
...
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
...

NOTA: no olvidar de editar el archivo postgresql.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a PostgreSQL como se muestra a continuación:
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

9. En la base de datos quartz crear la siguiente tabla:
CREATE TABLE "QRTZ"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);

ALTER TABLE "QRTZ" OWNER TO pentaho_user;

10. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-5.2\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en PostgreSQL:
  • Configuración del FileSystem: descomentar de la línea 61 a la 68. Comentar de la línea 69 a la 83
  • Configuración del DataStore: descomentar de la línea 123 a la 134. Comentar de la línea 135 a la 155
  • Configuración del FileSystem: descomentar de la línea 236 a la 243. Comentar de la línea 244 a la 259
  • Configuración del PersistenceManager: descomentar de la linea 293 a la 300. Comentar de la linea 301 a la 317
  • Configuración del FileSystem: descomentar de la linea 386 a la 393. Comentar de la linea 394 a la 408
  • Configuración del PersistenceManager: descomentar de la linea 443 a la 450. Comentar de la linea 451 a la 466
11. Reiniciar el servidor de BI de Pentaho

Consideraciones Importantes

En sistemas operativos Windows, sí se ejecutó biserver antes de realizar ésta configuración usando la base de datos por defecto HSQLDB, es conveniente eliminar el contenido de los siguientes directorios para evitar comportamientos inesperados:
  • \biserver-ce-6.x\tomcat\work\Catalina\* 
  • \biserver-ce-6.x\tomcat\temp\* 
  • \biserver-ce-6.x\pentaho-solutions\system\karaf\caches\* 
  • \biserver-ce-6.x\pentaho-solutions\system\jackrabbit\repository
NOTA: de preferencia igual limpiar el cache del navegador web con el que se esté trabajando.

martes, 28 de marzo de 2017

Cómo restaurar un backup vía comandos en PostgreSQL v9.6 instalado sobre Windows

En la siguiente publicación explico el procedimiento para subir un respaldo de base de datos en PostgreSQL v9.6 instalado sobre el sistema operativo Windows usando la línea de comandos.

Suponiendo que se tiene el siguiente archivo de backup para la base de datos BDD:
C:\Temp\BDD.backup

Para restaurarlo se tiene que hacer lo siguiente:

1) Crear la base de datos BDD, para éste ejemplo con el propietario postgres

2) Abrir una consola de comandos (cmd) e ir a:
C:\Program Files\PostgreSQL\9.6\bin
3) Ejecutar el siguiente comando:
pg_restore.exe --host "localhost" --port "5432" --username "postgres" --role "postgres" --dbname "BDD" --verbose "C:\Temp\BDD.backup"

lunes, 20 de julio de 2015

Cómo configurar una conexión JNDI en Pentaho Data Integration

En ésta publicación explico el procedimiento para configurar una conexión JNDI a PostgreSQL en Pentaho Data Integration (PDI)

1. Ir al directorio data-integration/simple-jndi

2. Dentro del directorio editar el archivo de nombre jdbc.properties

3.
Agregar las conexiones a la base de datos STAGE y DWH:

#Conexión a PostgreSQL
dwh/type=javax.sql.DataSource
dwh/driver=org.postgresql.Driver
dwh/url=jdbc:postgresql://127.0.0.1:5432/dwh
dwh/user=postgres
dwh/password=postgres

#Conexión a PostgreSQL
stage/type=javax.sql.DataSource
stage/driver=org.postgresql.Driver
stage/url=jdbc:postgresql://127.0.0.1:5432/stage
stage/user=postgres
stage/password=postgres

#Conexión a Oracle
stage_oracle/type=javax.sql.DataSource
stage_oracle/driver=oracle.jdbc.driver.OracleDriver
stage_oracle/url=jdbc:oracle:thin:@127.0.0.1:1521:orcl_instance
stage_oracle/user=usuario
stage_oracle/password=password
4. Guardar el archivo y ejecutar Spoon. Cuando se cree la conexión, hacer referencia al JNDI Name: stage o dwh

martes, 2 de junio de 2015

Cómo exportar los resultados de una consulta SQL a un archivo CSV en PostgreSQL

En la siguiente publicación comparto cómo exportar los resultados de una consulta SQL realizada en PostgreSQL a un archivo CSV.
Usando la aplicación psql se envian los argumentos nombre_bdd con el nombre de la base de datos dónde se desea ejecutar la consulta, usuario corresponde al nombre de usuario de la base de datos.

El argumento -p permite definir el puerto en dónde está levantado el servidor de PostgreSQL. Por defecto es el puerto 5432.

En la sección de COPY () se coloca la consulta SQL que se desea ejecutar para que luego sus resultados sean exportados a un archivo CSV que se define en el último argumento como nombre_archivo.csv

miércoles, 18 de febrero de 2015

Cómo configurar una conexión JNDI en Pentaho Report Designer

En ésta publicación explico el procedimiento para configurar una conexión JNDI a PostgreSQL en Pentaho Report Designer (PRD)

1. Ir al directorio home del usuario.

En Mac OS X: /Users/nombre_usuario/.pentaho

En Windows: C:\Users\nombre_usuario\.pentaho 

2. Crear el directorio simple-jndi

3. Dentro del directorio crear un archivo de nombre default.properties

4. Suponiendo que la conexión JNDI en BI Server se la configuró como jdbc/dwh colocar en el archivo lo siguiente:
dwh/type=javax.sql.DataSource
dwh/driver=org.postgresql.Driver
dwh/url=jdbc:postgresql://127.0.0.1:5432/dwh
dwh/user=postgres
dwh/password=postgres
5. Guardar el archivo y ejecutar report-designer. Cuando se cree la conexión, hacer referencia al JNDI Name: dwh

Cómo configurar una conexión JNDI en Pentaho Metadata Editor

En ésta publicación explico el procedimiento para configurar una conexión JNDI a PostgreSQL en Pentaho Metadata Editor (PME)

1. Ir al directorio /simple-jndi y editar el archivo jdbc.properties

2. Suponiendo que la conexión JNDI en BI Server se la configuró como jdbc/dwh_bus colocar al final del archivo lo siguiente:
dwh_bus/type=javax.sql.DataSource
dwh_bus/driver=org.postgresql.Driver
dwh_bus/url=jdbc:postgresql://127.0.0.1:5432/dwh_bus
dwh_bus/user=postgres
dwh_bus/password=postgres
3. Guardar el archivo y ejecutar metadata-editor. Cuando se cree la conexión, hacer referencia al JNDI Name: dwh_bus

martes, 17 de febrero de 2015

Configuración de Conexión JNDI en Pentaho Server para PostgreSQL

En ésta publicación explico el procedimiento para configurar una conexión JNDI (Java Naming and Directory Interface) en Pentaho Server v5.x a v8.x hacia un servidor de base de datos PostgreSQL.

1. Ir al directorio tomcat/conf y editar el archivo context.xml

2. Dentro de la etiqueta <Context> colocar lo siguiente:
<Resource name="jdbc/dwh_bus"
    auth="Container" type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    maxActive="20"
    maxIdle="5"
    maxWait="10000"
    username="postgres"
    password="postgres"
    driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://127.0.0.1:5432/dwh_bus"/>
NOTA: el nombre jdbc/dwh_bus es muy importante y es sensible a mayúsculas y minúsculas. Es importante recordarlo para configurarlo en las herramientas de BI de Pentaho que se usen. El atributo driverClassName hace referencia al driver JDBC de PostgreSQL y el atributo url a la cadena de conexión hacia el Data Warehouse.

3. Ir al directorio /tomcat/webapps/pentaho/WEB-INF y editar el archivo web.xml

4. Ubicar el comentario <!-- insert additional resource-refs --> y colocar la referencia al recurso JNDI creado en el paso 2.
  <!-- insert additional resource-refs -->
  <resource-ref>
    <description>Conexion al DWH_BUS</description>
    <res-ref-name>jdbc/dwh_bus</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
5. Iniciar Pentaho Server y acceder a PUC como Administrador

6. Ir a la perspectiva Home > Manage Data Sources > New Connection en JNDI Name colocar dwh_bus como se muestra a continuación:



miércoles, 21 de enero de 2015

Cómo saber las 10 tablas más grandes de una base de datos de PostgreSQL

En ésta publicación comparto una consulta SQL para conocer las 10 tablas (Top 10) más grandes de una base de datos PostgreSQL.

SELECT nspname || '.' || relname AS "tabla",
      pg_size_pretty(pg_total_relation_size(c.oid)) AS "tamanio"
FROM  pg_class c
LEFT JOIN pg_namespace n ON (n.oid = c.relnamespace)
WHERE  n.nspname NOT IN ('pg_catalog', 'information_schema') AND
      c.relkind <> 'i' AND
      n.nspname !~ '^pg_toast'
ORDER BY  pg_total_relation_size(c.oid) DESC
LIMIT 10;

viernes, 17 de octubre de 2014

Configuración de Pentaho BI Server 5.x para PostgreSQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentahohibernate, quartz jackrabbit en la base de datos PostgreSQL v9.3

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El biserver viene con los scripts para MS SQL Server, MySQL, Oracle y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.7, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  PostgreSQL v9.3
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-5.x
  • Haber descargado el controlador JDBC para  PostgreSQL
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-5.x\data aquí se encuentran los scripts para MS SQL Server, MySQL, Oracle y PostgreSQL

2. Abrir el directorio postgresql y ejecutar los scripts: create_repository_postgresql.sqlcreate_quartz_postgresql.sql y create_jcr_postgresql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC Tipo 4 de PostgreSQL (postgresql-9.3-x.jdbc4.jar) al directorio \biserver-ce-5.x\tomcat\lib.

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-5.x\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
 <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.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/hibernate"
  validationQuery="select version();" />
  
 <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.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/quartz"
  validationQuery="select version();"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \biserver-ce-5.x\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \biserver-ce-5.x\tomcat\webapps\pentaho\WEB-INF. En la línea 76 colocar lo siguiente para que únicamente se inicie la base de datos de ejemplo de HSQLDB:
<!-- [BEGIN HSQLDB DATABASES] -->
  <context-param>
    <param-name>hsqldb-databases</param-name>
    <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
  </context-param>
  <!-- [END HSQLDB DATABASES] -->

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-5.x\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/system/hibernate/postgresql.hibernate.cfg.xml como se muestra a continuación:
...
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
...

NOTA: no olvidar de editar el archivo postgresql.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a PostgreSQL como se muestra a continuación:
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://127.0.0.1:5432/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

9. En la base de datos quartz crear la siguiente tabla:
CREATE TABLE "QRTZ"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);

ALTER TABLE "QRTZ" OWNER TO pentaho_user;

10. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-5.x\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en PostgreSQL:

  • Configuración del FileSystem: descomentar de la línea 61 a la 68. Comentar de la línea 71 a la 73
  • Configuración del DataStore: descomentar de la línea 114 a la 125. Comentar la línea 129
  • Configuración del Workspace: descomentar de la línea 214 a la 221. Comentar de la línea 225 a la 227. Descomentar de la línea 262 a la 269. Comentar de la línea 273 a la 276
  • Configuración del Versionamiento: descomentar de la línea 344 a la 351. Comentar de la línea 354 a la 356. Descomentar de la línea 392 a la 399. Comentar de la línea 402 a la 405

11. Reiniciar el servidor de BI de Pentaho

Consideraciones Importantes

En sistemas operativos Windows, sí se ejecutó biserver antes de realizar ésta configuración usando la base de datos por defecto HSQLDB, es conveniente eliminar el contenido de los siguientes directorios para evitar comportamientos inesperados:

  • \biserver-ce-5.x\tomcat\work\Catalina\*
  • \biserver-ce-5.x\tomcat\temp\*
  • \biserver-ce-5.x\pentaho-solutions\system\osgi\cache\*
  • \biserver-ce-5.x\pentaho-solutions\system\jackrabbit\repository

NOTA: de preferencia igual limpiar el cache del navegador web con el que se esté trabajando.


martes, 29 de enero de 2013

Cómo configurar un repositorio de base de datos en PostgreSQL para Pentaho Data Integration

En ésta publicación explico el procedimiento para crear un repositorio de base de datos en PostgreSQL para la herramienta Spoon de Pentaho Data Integration (PDI)

Requisitos.-

1. Crear en PostgreSQL la base de datos PDI_REPO colocando como propietario al usuario postgres

Procedimiento.- 

1. Ir al directorio de PDI. Por ejemplo: c:\pentaho\pdi-ce-4.3.0\data-integration
2. Ejecutar Spoon.bat para Windows o Spoon.sh para Unix
3. Hacer clic en el botón de agregar un nuevo repositorio



4. Seleccionar Kettle Database Repository



5. Hacer clic en el botón New para crear una conexión a la base de datos PDI_REPO




6. Definir el mismo nombre para los campos ID y Name



7. Hacer clic en el botón Create or Upgrade para crear la estructura de base de datos con la que trabaja Spoon en la base de datos PDI_REPO

8. Finalmente, hacer clic en el botón OK

miércoles, 22 de agosto de 2012

Configuración de Pentaho Administration Console (PAC) para PostgreSQL

En ésta publicación explico el procedimiento para configurar la consola de administración de Pentaho (PAC)

1. Copiar el controlador JDBC Tipo 3 de PostgreSQL (postgresql-X.X-XXX.jdbc3.jar) al directorio c:\pentaho\biserver-ce-X.X.X\administration-console\jdbc

2. Ir al directorio c:\pentaho\biserver-ce-X.X.X\administration-console\resource\config

3. Editar el archivo console.xml y colocar la siguiente configuración:

<?xml version="1.0" encoding="UTF-8"?>
<console> 
  <solution-path>../biserver-ce/pentaho-solutions</solution-path>
  <war-path>../biserver-ce/tomcat/webapps/pentaho</war-path>
  <platform-username>joe</platform-username>  
  <biserver-status-check-period-millis>30000</biserver-status-check-period-millis>  
  <homepage-url>http://www.pentaho.com/console_home</homepage-url>  
  <homepage-timeout-millis>15000</homepage-timeout-millis>  
  <!-- comma separated list of roles (no spaces) -->  
  <default-roles>Authenticated</default-roles>
  <default-server-dir>biserver-ce</default-server-dir>
</console>

domingo, 19 de agosto de 2012

Configuración de Pentaho BI Server para PostgreSQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentaho: hibernate y quartz en la base de datos PostgreSQL

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El biserver viene con los scripts para MySQL, Oracle y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.6 o superior, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  PostgreSQL v8.4 o superior
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: C:\pentaho\biserver-ce-X.X.X
  • Haber descargado el controlador JDBC Tipo 3 para  PostgreSQL
Configuración paso a paso.-

1. Ir al directorio C:\pentaho\biserver-ce-X.X.X\biserver-ce\data aquí se encuentran los scripts para MySQL, Oracle y PostgreSQL

2. Abrir el directorio postgresql y copiar los scripts: create_repository_postgresql.sql, create_quartz_postgresql.sql y create_sample_datasource_postgresql.sql al directorio C:\Program Files\PostgreSQL\8.4\scripts

3. Ejecutar el programa runpsql.bat y acceder con el usuario postgres



4. Ejecutar la siguiente secuencia de comandos

\i create_repository_postgresql.sql
password
\i create_sample_datasource_postgresql.sql
\connect postgres postgres
sa
\i create_quartz_postgresql.sql
password

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate y pentaho_user del repositorio quartz, sa es la contraseña del usuario postgres.

Configuración de Tomcat

5. Copiar el driver JDBC Tipo 3 de PostgreSQL (postgresql-X.X-XXX.jdbc3.jar) al directorio C:\pentaho\biserver-ce-X.X.X\biserver-ce\tomcat\lib.

6. Editar el archivo context.xml ubicado en el directorio: C:\pentaho\biserver-ce-X.X.X\biserver-ce\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
 <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.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/hibernate"
  validationQuery="select version();" />
  
 <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.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/quartz"
  validationQuery="select version();"/>
</Context>

Configuración del BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: C:\pentaho\biserver-ce-X.X.X\biserver-ce\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/postgresql.hibernate.cfg.xml como se muestra a continuación:

<?xml version='1.0' encoding='utf-8'?>
<settings>  
    <!--config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file-->
 <config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
    <managed>false</managed>
</settings>

8. Editar el archivo applicationContext-spring-security-jdbc.xml y cambiar la configuración de conexión del Bean dataSource a PostgreSQL como se muestra a continuación:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springsource.org/dtd/spring-beans.dtd">
<beans> 
 <!--...-->
 <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="org.postgresql.Driver" />
  <property name="url"
   value="jdbc:postgresql://127.0.0.1:5432/hibernate" />
  <property name="username" value="hibuser" />
  <property name="password" value="password" />
 </bean>
 <!--...-->
</beans>

9. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a PostgreSQL como se muestra a continuación:

jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://127.0.0.1:5432/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

10. Reiniciar el servidor de BI de Pentaho (biserver-ce)


viernes, 20 de julio de 2012

Cómo reinstalar PostgreSQL en Windows 7


Puede suceder que nos olvidemos la contraseña de instalación de PostgreSQL, en ésta publicación
explico el procedimiento para reinstalar  PostgreSQL en Windows 7 de forma adecuada.

  1. Desinstalar  PostgreSQL a través del Panel de Control > Programas de Windows 7
  2. Una vez desinstalado con el asistente, ir al directorio c:\Archivos de Programa y eliminar el subdirectorio PostgreSQL
  3. Ir al Panel de Control > Herramientas Administrativas > Administración de equipos y ubicar la sección de Usuarios y Grupos Locales > Usuarios y eliminar el usuario postgres
  4. Ejecutar nuevamente el instalador de  PostgreSQL  para Windows y seguir los pasos del asistente   

lunes, 28 de mayo de 2012

Instalación y Configuración de SQL Power Architect

SQL Power Architect Community Edition, es una herramienta que permite hacer modelamiento y caracterización de datos, entre sus mayores funcionalidades están:

1. Entorno gráfico para construir modelos de datos Entidad-Relación (Modelo Lógico de Datos)

2. Genera el lenguaje DDL para construir el modelo sobre cualquier base de datos que soporte JDBC (Modelo Físico de Datos)

3. Soporta los siguientes DBMS: Oracle, Microsoft SQL Server, PostgreSQL, MySQL, DB2, H2 Database

4. Permite hacer Ingeniería Reversa para obtener el modelo lógico a través del modelo físico de datos

5. Permite hacer Caracterización de Datos (Data Profiling) para conocer la naturaleza de los datos: sí existen duplicados, número total de registros, número de registros vacíos, etc.

Instalación

Para instalar SQL Power Architect realizar los siguientes pasos:

1. Descargar SQL Power Architect del siguiente link: http://www.sqlpower.ca/page/architect_download_os

2. Seguir los pasos de instalación. Por defecto el programa se instala en el directorio C:\Program Files\SQL Power Architect

Configuración

En el directorio C:\Program Files\SQL Power Architect\jdbc copiar los controladores JDBC de los DBMS que se va a trabajar. NOTA: mantener una sola versión del controlador JDBC por Base de Datos.



lunes, 21 de mayo de 2012

Instalación y Configuración de SQuirreL SQL Client en Windows

SQuirreL SQL Client es un cliente universal de bases de datos que permite conectarse a cualquier base de datos siempre y cuando ésta tenga un controlador JDBC, entre las más populares están: Oracle, MySQL, PostgreSQL, DB2, HSQLDB, Sybase, Informix

Con SQuirreL se pueden realizar consultas SQL tanto de definición de datos (DDL) así como también de control de datos (DCL)

Instalación

Para instalar SQuirreL tenemos que realizar los siguientes pasos:

1. Descargar SQuirreL del siguiente link: http://squirrel-sql.sourceforge.net/#installation

NOTA: previo a la instalación asegurarse tener instalado y configurado correctamente el JDK. En la publicación Instalación y Configuración del JDK se explica el procedimiento.

2. Se descargará un archivo de nombre squirrel-sql-x.x.x-standard.jar, en dónde x.x.x representa la última versión de la herramienta. Guardar el archivo en un directorio. Por ejemplo: c:\downloads\squirrel-sql-x.x.x-standard.jar

3. Abrir una consola de comandos (Inicio > Ejecutar > cmd)

4. Ir al directorio donde se descargó SQuirreL en el punto 2, en mi caso c:\downloads\

5. Ejecutar el siguiente comando: java -jar squirrel-sql-x.x.x-standard.jar

6. Seguir los pasos de la instalación y en la opción de selección de paquetes a instalar, seleccionar los siguientes:
Optional Plugin: PostgreSQL
Optional Plugin: Session Scripts
Optional Plugin: Smart Tools
Optional Plugin: SQL Parametrisation
Optional Plugin: SQL Replace
Optional Plugin: SQL Validator
7. Hacer clic en Next hasta finalizar con la instalación. La instalación por defecto se realizará en el siguiente directorio: C:\Program Files\squirrel-sql-x.x.x\

Configuración

En éste paso menciono el procedimiento para preparar a SQuirreL para que se conecte a cualquier base de datos usando un controlador JDBC.

1. Descargar los controladores JDBC para las bases de datos que se desea conectar.

2. Por ejemplo, para PostgreSQL descargar del siguiente link: http://jdbc.postgresql.org/download.html

NOTA: de preferencia descargar el controlador JDBC Tipo 4

3. El controlador descargado (postgresql-x.x-xxx.jdbc4.jar) copiar al directorio lib del directorio de instalación de SQuirreL, en mi caso: C:\Program Files\squirrel-sql-x.x.x\lib

4. Realizar el mismo procedimiento para todas las bases de datos que se desee conectar: Oracle, MySQL, PostgreSQL, etc.

5. Iniciar SQuirreL desde el Menú de Inicio, haciendo clic en el ícono del escritorio, o ejecutando el archivo C:\Program Files\squirrel-sql-x.x.x\squirrel-sql.bat