Buscar en el Blog

jueves, 7 de febrero de 2013

Cómo resolver problemas de rendimiento de Pentaho Schema Workbench sobre Oracle

Al intentar ejecutar Pentaho Schema Workbench (PSW) y crear una conexión a una base de datos Oracle, sucede que aparentemente el aplicativo se queda congelado. Lo que sucede es que se está trayendo todo el diccionario de los esquemas a los que tiene acceso la conexión.

Para solucionar esto sobre el esquema que queremos conectarnos es útil correr el siguiente script SQL:
CREATE OR REPLACE VIEW ALL_TABLES AS SELECT USER AS OWNER, A.* FROM SYS.USER_TABLES A;
CREATE OR REPLACE VIEW ALL_VIEWS AS SELECT USER AS OWNER, A.* FROM SYS.USER_VIEWS A
WHERE VIEW_NAME NOT IN ('ALL_CONSTRAINTS','ALL_CONS_COLUMNS','ALL_INDEXES','ALL_IND_COLUMNS',
'ALL_OBJECTS','ALL_SYNONYMS','ALL_TABLES','ALL_USERS','ALL_VIEWS','DBA_CONSTRAINTS','DBA_CONS_COLUMNS',
'DBA_INDEXES','DBA_IND_COLUMNS','DBA_OBJECTS','DBA_SYNONYMS','DBA_TABLES','DBA_USERS','DBA_VIEWS');
CREATE OR REPLACE VIEW ALL_CONSTRAINTS AS SELECT A.* FROM SYS.USER_CONSTRAINTS A WHERE CONSTRAINT_TYPE IN ('R','P','U');
CREATE OR REPLACE VIEW ALL_CONS_COLUMNS AS SELECT A.* FROM SYS.USER_CONS_COLUMNS A;
CREATE OR REPLACE VIEW ALL_INDEXES AS SELECT USER AS OWNER, A.* FROM SYS.USER_INDEXES A;
CREATE OR REPLACE VIEW ALL_IND_COLUMNS AS SELECT USER AS INDEX_OWNER, USER AS TABLE_OWNER, A.* FROM SYS.USER_IND_COLUMNS A;
CREATE OR REPLACE VIEW ALL_SYNONYMS AS SELECT USER AS OWNER, A.* FROM USER_SYNONYMS A;
CREATE OR REPLACE VIEW ALL_OBJECTS AS SELECT USER AS OWNER, A.* FROM USER_OBJECTS A;
CREATE OR REPLACE VIEW ALL_USERS AS SELECT * FROM SYS.ALL_USERS A WHERE USERNAME=USER;
CREATE OR REPLACE VIEW DBA_TABLES AS SELECT USER AS OWNER, A.* FROM SYS.USER_TABLES A;
CREATE OR REPLACE VIEW DBA_VIEWS AS SELECT USER AS OWNER, A.* FROM SYS.USER_VIEWS A
WHERE VIEW_NAME NOT IN ('ALL_CONSTRAINTS','ALL_CONS_COLUMNS','ALL_INDEXES','ALL_IND_COLUMNS',
'ALL_OBJECTS','ALL_SYNONYMS','ALL_TABLES','ALL_USERS','ALL_VIEWS','DBA_CONSTRAINTS','DBA_CONS_COLUMNS',
'DBA_INDEXES','DBA_IND_COLUMNS','DBA_OBJECTS','DBA_SYNONYMS','DBA_TABLES','DBA_USERS','DBA_VIEWS');
CREATE OR REPLACE VIEW DBA_CONSTRAINTS AS SELECT A.* FROM SYS.USER_CONSTRAINTS A WHERE CONSTRAINT_TYPE IN ('R','P','U');
CREATE OR REPLACE VIEW DBA_CONS_COLUMNS AS SELECT A.* FROM SYS.USER_CONS_COLUMNS A;
CREATE OR REPLACE VIEW DBA_INDEXES AS SELECT USER AS OWNER, A.* FROM SYS.USER_INDEXES A;
CREATE OR REPLACE VIEW DBA_IND_COLUMNS AS SELECT USER AS INDEX_OWNER, USER AS TABLE_OWNER, A.* FROM SYS.USER_IND_COLUMNS A;
CREATE OR REPLACE VIEW DBA_SYNONYMS AS SELECT USER AS OWNER, A.* FROM USER_SYNONYMS A;
CREATE OR REPLACE VIEW DBA_OBJECTS AS SELECT USER AS OWNER, A.* FROM USER_OBJECTS A;
CREATE OR REPLACE VIEW DBA_USERS AS SELECT * FROM SYS.ALL_USERS A WHERE USERNAME=USER;
CREATE OR REPLACE VIEW ALL_TAB_COLUMNS AS SELECT USER AS OWNER, A.* FROM SYS.USER_TAB_COLUMNS A;


martes, 29 de enero de 2013

Cómo forzar a las herramientas de Pentaho Data Integration para que usen la configuración regional Inglés/Estados Unidos

Para forzar la configuración regional Inglés/Estados Unidos a las herramientas Spoon y Kitchen de Pentaho Data Integration (PDI) se tiene que realizar lo siguiente:

Para Spoon.-

1. Editar el archivo Spoon.bat para Windows
2. Ubicar la línea en dónde se encuentra

set PENTAHO_DI_JAVA_OPTIONS=

3. Agregar lo siguiente a continuación:

"-Duser.language=en" "-Duser.country=US"

El archivo debe quedar como se muestra a continuación:



Para Kitchen.-

Realizar el mismo procedimiento editando el archivo Kitchen.bat

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

martes, 15 de enero de 2013

Cómo acceder como SYSDBA a una base de datos Oracle desde SQuirreL

En ésta publicación explico el procedimiento para acceder desde SQuirreL SQL Client a una base de datos Oracle usando los privilegios SYSDBA

1. Ir a las propiedades de la conexión (Properties)


2. Ir a las propiedades del controlador (Driver Properties), marcar la opción Use driver properties y asignar el valor SYSDBA a la variable internal_logon como se muestra a continuación:

martes, 4 de diciembre de 2012

Fragmentos de código para construir tableros con CDF

En ésta publicación comparto algunos fragmentos de código para construir tableros usando Community Dashboard Framework (CDF).

Archivo .xcdf

<?xml version="1.0" encoding="UTF-8"?>
<cdf>
 <title>Tablero de Mando</title>
 <author>Mauricio Murillo</author>
 <description>Mi primer tablero de mando usando CDF</description>
 <icon></icon>
 <template>tablero.html</template>
 <style>mantle</style>
</cdf>

Archivo .html

<h1>Tablero de Mando</h1>
<table align="center" style="border:0px">
 <tr>
  <td><div id="x"/></td>
  <td><div id="y"/></td>
 </tr>
 <tr>
  <td><div id="z"></td>
  <td><div id="w"></td>
 </tr>
</table>

<script language="javascript" type="text/javascript">
 // Obtener el nombre de la solución y el PATH
 var solution = Dashboards.getQueryParameter("solution");
 var path = Dashboards.getQueryParameter("path");
 // Paramétros Globales del Tablero
 Dashboards.globalcontext = false; 
 //Definición de los componentes
 var components = [];
 // Inicialización del tablero
 Dashboards.init(components); 
</script>