Conectar un data warehouse de Postgres
Esta guía le acompaña al conectar una base de datos PostgreSQL a Saiku Cloud, de principio a fin. Cinco minutos si su data warehouse ya es público; diez si necesita configurar un rol de solo lectura.
Impacto en niveles: todos los niveles de Saiku Cloud (Starter, Team, Business) admiten BYOC con Postgres.
Lo que necesitará
- Una instancia PostgreSQL 12+ accesible desde una dirección IPv4 pública. Los clientes de Saiku Cloud alojado en la nube en Starter/Team/Business necesitan esto — los clientes Enterprise que tienen una configuración de VPC peering privada (consulte PrivateLink al Postgres del cliente) obtienen accesibilidad de red privada en su lugar.
- Acceso de administrador a su data warehouse para poder crear un rol de solo lectura (o las credenciales de un rol de solo lectura existente).
- Cinco minutos.
Paso 1 — Permitir nuestra IP de egreso
Todas las consultas de Saiku Cloud a su data warehouse provienen de una única IP estática:
87.99.153.244Añada esta al firewall / grupo de seguridad / lista de permitidos de red de su data warehouse antes de probar la conexión. El asistente de conexión mostrará la misma IP en el momento de la prueba, para que pueda copiarla de nuevo desde ahí — pero hacerlo con antelación evita el error HOST_UNREACHABLE que vería de otro modo en la primera prueba.
Lugares comunes para la lista de permitidos:
- AWS RDS: Regla entrante del grupo de seguridad de la VPC → puerto 5432 → origen
87.99.153.244/32. - Google Cloud SQL: Connectivity → Authorized networks → añada
87.99.153.244/32. - Azure Postgres: Networking → Firewall rules → añada una regla que permita de
87.99.153.244a87.99.153.244. - Autoalojado: entrada de host en
pg_hba.conf, más el firewall que tenga delante (UFW, iptables, el edge de su proveedor de cloud).
La IP es estable — sobrevive a reinicios y reconstrucciones de imagen. Nos comprometemos a al menos 30 días de aviso antes de cualquier rotación. Política completa: consulte nuestro compromiso de estabilidad de IP de egreso.
Paso 2 — Cree un rol de solo lectura en Postgres
Saiku Cloud solo lee de su data warehouse — nunca escribe, nunca altera schemas, nunca crea objetos. La forma de mínimo privilegio es un rol de solo lectura dedicado:
-- As a Postgres superuser (or anyone with CREATEROLE):CREATE ROLE saiku_read LOGIN PASSWORD 'pick-something-strong-here';
-- Grant access to the schemas + tables you want Saiku to see.-- Adjust 'public' to whichever schema(s) your data lives in.GRANT USAGE ON SCHEMA public TO saiku_read;GRANT SELECT ON ALL TABLES IN SCHEMA public TO saiku_read;GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO saiku_read;
-- Future tables created in this schema should also be readable.ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO saiku_read;Si sus datos están repartidos en varios esquemas, repita los bloques GRANT USAGE + GRANT SELECT para cada uno.
Paso 3 — Construya la URL JDBC
La forma:
jdbc:postgresql://<host>:<port>/<database>?sslmode=requireEjemplos concretos:
- AWS RDS:
jdbc:postgresql://mydb.abc123.us-east-1.rds.amazonaws.com:5432/sales?sslmode=require - Google Cloud SQL:
jdbc:postgresql://1.2.3.4:5432/sales?sslmode=require(use la IP pública de la consola de Cloud SQL) - Azure Postgres:
jdbc:postgresql://mydb.postgres.database.azure.com:5432/sales?sslmode=require - Autoalojado:
jdbc:postgresql://db.yourcompany.com:5432/sales?sslmode=require
Parámetros clave:
sslmode=requireestá fuertemente recomendado para cualquier data warehouse accesible por internet público. La mayoría de los servicios Postgres gestionados imponen SSL de todas formas;requirehace que el cliente rechace el fallback a texto plano.sslmode=verify-fulles más estricto — también verifica que el hostname del certificado del servidor coincide. Úselo si la raíz CA de su data warehouse está en nuestro almacén de confianza (la mayoría de los servicios gestionados usan Let’s Encrypt o una CA conocida así que esto funciona sin más).- Salte
?currentSchema=fooy ajustes similares del driver a menos que tenga una razón específica; Saiku consulta con referenciasschema.tablacompletamente cualificadas en todas partes.
Paso 4 — Conecte mediante el asistente de Saiku Cloud
-
Inicie sesión en
https://cloud.saiku.bi/. -
Vaya a Conexiones en la barra lateral izquierda.
-
En 1. Elegir tipo de data warehouse, haga clic en el tile Postgres.
-
Rellene:
- URL JDBC — la URL del Paso 3.
- Username —
saiku_read(o como haya llamado al rol en el Paso 2). - Password — la contraseña del Paso 2.
-
Haga clic en Probar conexión.
Si todo está bien conectado, verá un banner verde de resultado: ✓ Connection successful más la versión de Postgres detectada. Continúe con el Paso 5.
Si ve un banner rojo de resultado, consulte Solución de problemas más abajo para la matriz de triaje de modos de fallo.
Paso 5 — Guarde la conexión
Tras una prueba exitosa, el asistente muestra una sección 3. Guardar conexión. Rellene:
- Contraseña (vuelva a introducir para guardar) — la misma contraseña con la que probó. No almacenamos la contraseña del formulario de prueba para evitar que una credencial viaje por el estado de la página.
- Etiqueta — un nombre legible como
Production warehouseoMarketing analytics. Se muestra en la lista de conexiones + el diseñador de cubos.
Haga clic en Guardar conexión. Le redirigimos al diseñador de schemas, donde puede o proponer un cubo mediante el flujo de inferencia de IA o subir un XML de schema Mondrian.
Solución de problemas
✗ Connection failed (HOST_UNREACHABLE) o (TIMEOUT)
No pudimos alcanzar el host en el puerto que especificó. Causas más comunes:
- Firewall / lista de permitidos — el Paso 1 no se hizo o no se hizo para la IP correcta. Confirme que
87.99.153.244/32está en la lista de permitidos de su data warehouse + aplicado (algunos firewalls requieren reinicio / reaplicar). - DNS — el hostname en la URL JDBC no resuelve, o resuelve a una IP privada. Verifique desde su portátil:
nslookup <host>. Nos negamos a conectar a direcciones RFC1918 / loopback / link-local por razones de protección frente a SSRF —HOST_DENIED(noHOST_UNREACHABLE) es la superficie en ese caso. - Puerto incorrecto — Postgres por defecto usa 5432 pero los servicios gestionados a veces usan un puerto personalizado (Heroku Postgres usa 5432, pero dentro de un túnel; algunos despliegues on-prem usan 5433+).
✗ Connection failed (AUTH_FAILED)
El usuario o contraseña son incorrectos. El asistente intencionadamente no distingue entre “usuario incorrecto” y “contraseña incorrecta” — eso es defensa contra ataques de credential-stuffing.
- Vuelva a comprobar el nombre de usuario — los nombres de rol de Postgres son sensibles a mayúsculas/minúsculas (
saiku_read≠Saiku_Read). - Pruebe a conectar desde su portátil con
psql "<URL JDBC sin el prefijo jdbc:>"para confirmar que las credenciales funcionan fuera de Saiku. - Si restableció la contraseña recientemente, asegúrese de que confirmó el cambio en Postgres (
ALTER ROLE saiku_read PASSWORD '...';) y reconectó cualquier pooler que pueda estar cacheando el hash antiguo.
✗ Connection failed (DATABASE_NOT_FOUND)
El host acepta sus credenciales pero el nombre de base de datos en la URL JDBC no existe. Verifique el nombre de la base de datos — Postgres normalmente tiene tanto postgres como su base de datos de aplicación; quiere la segunda.
-- From psql, as any user with login:\l -- list databases✗ Connection failed (DIALECT_UNSUPPORTED)
La URL no empieza con jdbc:postgresql:. Si pegó una URL jdbc:postgres: (sin -ql), el resolvedor de dialectos no coincide — el driver JDBC de Postgres requiere el token postgresql. Use las formas de URL del Paso 3 literalmente.
Cualquier otra cosa
Haga una captura de pantalla del asistente con el banner rojo de resultado visible (línea Kind: ... en particular) y envíela a support@saiku.bi. El campo Kind nos dice en qué clase de fallo estamos; la pista Try this debajo da nuestra mejor suposición sobre la solución.
Enterprise: red privada {#enterprise-private-network}
Para clientes Enterprise que tienen una configuración de red privada, la regla de IP de egreso anterior se reemplaza por VPC peering o PrivateLink a su instancia Postgres. El flujo del asistente de conexión es por lo demás idéntico — pegue la URL JDBC privada, pruebe, guarde. Contacte con su equipo de cuenta para aprovisionar el peering.
Pruebe con FoodMart
¿Quiere probar Saiku Cloud con este dialecto antes de conectar sus propios datos? Descargue el dataset de muestra FoodMart empaquetado para Postgres: