Permisos de usuario de base de datos

Buenas noches. Estamos configurando Kolla para que apunte a la base de producción, hasta ahora estaba conectada a base copia de producciòn. Necesitamos saber què permisos necesita el usuario de base de datos de Wichi para poder correr la ETL. Quisimos darle solo lectura pero falla porque quiere crea tablas y funciones temporales en el esquema public. Asi que le dimos permiso de escritura solo al esquema public, al parecer se ejecutó todo bien pero tira el siguiente mensaje:


2022/09/23 15:30:44 - INFO - Probando la conexión a la base por jndi. (Si no funciona luego se probará con parámetros de conexión)
2022/09/23 15:30:44 - asignar_y_probar_conexion - Starting entry [base accesible? (jndi)]
2022/09/23 15:30:44 - siu_dw_jndi - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unable to find datasource by JNDI name: DBWichi
2022/09/23 15:30:44 - siu_dw_jndi - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.database.DataSourceNamingException:
2022/09/23 15:30:44 - siu_dw_jndi - javax.naming.NamingException: Invalid data source:'DBWichi'
2022/09/23 15:30:44 - siu_dw_jndi - Invalid data source:'DBWichi'
2022/09/23 15:30:44 - siu_dw_jndi -
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.core.database.util.DatabaseUtil.getNamedDataSource(DatabaseUtil.java:178)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.core.database.util.DatabaseUtil.getNamedDataSource(DatabaseUtil.java:188)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.core.database.Database.normalConnect(Database.java:425)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.core.database.Database.connect(Database.java:364)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.entries.checkdbconnection.JobEntryCheckDbConnections.execute(JobEntryCheckDbConnections.java:249)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.Job.execute(Job.java:723)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.Job.execute(Job.java:864)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.Job.execute(Job.java:864)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.Job.execute(Job.java:864)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.Job.execute(Job.java:864)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.Job.execute(Job.java:608)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.job.entries.job.JobEntryJobRunner.run(JobEntryJobRunner.java:69)
2022/09/23 15:30:44 - siu_dw_jndi -     at java.lang.Thread.run(Thread.java:745)
2022/09/23 15:30:44 - siu_dw_jndi - Caused by: javax.naming.NamingException: Invalid data source:'DBWichi'
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.core.database.util.DatabaseUtil.getDataSourceFromJndi(DatabaseUtil.java:126)
2022/09/23 15:30:44 - siu_dw_jndi -     at org.pentaho.di.core.database.util.DatabaseUtil.getNamedDataSource(DatabaseUtil.java:176)
2022/09/23 15:30:44 - siu_dw_jndi -     ... 12 more
2022/09/23 15:30:44 - base accesible? (jndi) - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Cannot connect to database [DBWichi] (connection [siu_dw_jndi]). Exception : [org.pentaho.di.core.exception.KettleDatabaseException:
2022/09/23 15:30:44 - base accesible? (jndi) - Error occurred while trying to connect to the database
2022/09/23 15:30:44 - base accesible? (jndi) -
2022/09/23 15:30:44 - base accesible? (jndi) - javax.naming.NamingException: Invalid data source:'DBWichi'
2022/09/23 15:30:44 - base accesible? (jndi) - Invalid data source:'DBWichi'
2022/09/23 15:30:44 - base accesible? (jndi) -
2022/09/23 15:30:44 - base accesible? (jndi) - ]

La consulta principal sería: qué permisos debería tener el usuario de base de datos que se conecta a guarani3?
Les agrego algunas preguntas más:
-Cuánto espacio extra de disco se usa para crear estas tablas temporales en guarani3, ya que deberiamos reacondicionar los recursos de Producciòn.
-Alguna configuración de postgres recomendable?
-Tiempo que suele tardar correr la ETL en PROD? Ya que luego de migrar guarani a la 3.20 nos està tardando 2 dìas en correr.

Estamos usando Wichi 6.11 y Guarani 3.20.1.

Gracias

Buen día Agustín, con respecto al error del log no es un error de carga, simplemente se fija se la conexión es por JNDI o por parámetros, cuando corres el etl con kitchen siempre es con parámetros.
Te contesto algunas preguntas, el usuario debe tener permiso de lectura en el esquema negocio y de escritura en el esquema public de la base de guarani.
El espacio en disco depende de la cantidad de datos, eso por ahi te puede ayudar otra Uni.
El tiempo de carga también depende de la cantidad de datos, de la conexion y los recursos que tengas, recorda que una vez que cargaste la base completa, usando el parametro carga_periodo=0, luego las actualizaciones podes realizarlas cargando el periodo actual carga_periodo=2022 para que tarde menos.
Saludos,
Sabrina

Muchas gracias por la respuesta. No sabiamos lo del parámetro carga_periodo. Saludos

Agustín

Buenas tardes!. Vuelvo a abrir el tema por un problema que tenemos con los permisos de los usuarios de la base.

En un ambiente de desarrollo pusimos en marcha un entorno de WICHI que toma datos de una base del fuente guarani3 de desarrollo con un usuario “siu_wichi” que tiene superamdin de postgresql por lo tanto no tiene restriccion en nada. Probamos crear un usuario nuevo “siu_bi” con permisos segmentados en este entorno, quedando de la siguiente manera:

  1. Solo lectura en el schema negocio de la base de datos de guarani3
  2. Full privileges en el schema public, ya que con solo insert/update no funcionaba porque necesita crear tablas y funciones temporales, dado que public solo lo utiliza wichi, procedimos a darle full privileges.

En lo cual en primera instancia al correr la etl con este cambio de usuario nos informó que como ciertas tablas y funciones fueron creadas por el usuario “siu_wichi” y nosotros con el usuario “siu_bi” no teniamos permiso para editarlas, ya que el owner era “siu_wichi”, no podiamos modificarlas por lo tanto la ETL arrojaba error.

Probamos cambiando el owner de estas tablas y funciones, lo cual siguió corriendo, pero a los 2 minutos volvió a tirar el siguiente error:

2022/10/30 03:41:46 - crear tablas temporales 316 - ERROR: duplicate key value violates unique constraint “pg_type_typname_nsp_index”
2022/10/30 03:41:46 - crear tablas temporales 316 - Detail: Key (typname, typnamespace)=(_wichi_ingreso_alumnos, 2200) already exists.

¿Hay manera de limpiar las tablas creadas por una ETL anterior?
¿Conviene securizar a tal nivel el usuario que consume de otros sistemas fuentes?
¿La carga de etl, es invasiva contra los schemas productivos de los sistemas fuentes?

Gracias!

Agustìn

Buen dia Agustin, paso a contestar tus consultas:
¿Hay manera de limpiar las tablas creadas por una ETL anterior?

Te adjunto un sql que borra todas las funciones, tablas e indices creadas en el ETL.
¿Conviene securizar a tal nivel el usuario que consume de otros sistemas fuentes?

Eso lo define cada universidad
¿La carga de etl, es invasiva contra los schemas productivos de los sistemas fuentes?
Consume recursos, por lo que se recomienda realizarlo de noche cuando ya no hay actividad.

Saludos,
Sabrina.


funytab.sql (3.86 KB)

Muchas gracias. Vamos a probar el script.

Agustín

Funcionò perfecto. Muchas gracias.

Agustín