PostgreSQL
Conecte Querri a su base de datos PostgreSQL para analizar sus datos con lenguaje natural. Una vez conectada, solo tiene que hacer preguntas: Querri se encarga de todo el SQL.
Descripción general
Sección titulada «Descripción general»El conector de PostgreSQL es compatible con:
- PostgreSQL 9.6 o posterior: todas las versiones modernas de PostgreSQL
- AWS RDS para PostgreSQL: PostgreSQL administrado en AWS
- Azure Database for PostgreSQL: PostgreSQL administrado en Azure
- Google Cloud SQL para PostgreSQL: PostgreSQL administrado en GCP
- Heroku Postgres: el servicio de PostgreSQL administrado de Heroku
Configuración
Sección titulada «Configuración»Requisitos previos
Sección titulada «Requisitos previos»- Un servidor de base de datos PostgreSQL
- Credenciales de la base de datos con los permisos adecuados
- Acceso de red a la base de datos
Lista de direcciones IP permitidas
Sección titulada «Lista de direcciones IP permitidas»Importante: si su base de datos está alojada en la nube o protegida por un firewall, agregue la siguiente dirección IP a la lista de direcciones permitidas:
18.189.33.77Esta es la dirección IP de salida de Querri. Agréguela a las reglas de firewall o al grupo de seguridad de su base de datos.
Crear el conector
Sección titulada «Crear el conector»-
Abra los conectores
- Vaya a Configuración → Conectores
- Busque la sección Conectar una fuente de datos, donde aparecen los conectores disponibles
-
Seleccione PostgreSQL
- Elija PostgreSQL entre los conectores de bases de datos
-
Configure la conexión
Host: su-servidor-de-base-de-datos.comPuerto: 5432 (puerto predeterminado de PostgreSQL)Base de datos: nombre_de_su_base_de_datosUsuario: su_usuarioContraseña: su_contraseñaConfiguración opcional:
- SSL Mode (modo SSL):
require: usar siempre SSL (recomendado)prefer: usar SSL si está disponibledisable: no usar SSL
- Esquema: el valor predeterminado es
public - Connection Timeout (tiempo de espera de conexión): el valor predeterminado es de 30 segundos
-
Pruebe la conexión
- Haga clic en Probar conexión y descubrir accesos para verificarla
- Si la prueba es correcta, haga clic en Guardar
-
Comience a analizar
- Las tablas aparecen en su Biblioteca
- Cree un proyecto a partir de cualquier tabla
- Haga preguntas en lenguaje natural
Configuración de red
Sección titulada «Configuración de red»Grupos de seguridad de AWS RDS
Sección titulada «Grupos de seguridad de AWS RDS»Agregue una regla de entrada:
Type: PostgreSQLProtocol: TCPPort: 5432Source: 18.189.33.77/32Description: Querri AccessFirewall de Azure Database for PostgreSQL
Sección titulada «Firewall de Azure Database for PostgreSQL»Agregue una regla de firewall:
Rule Name: QuerriStart IP: 18.189.33.77End IP: 18.189.33.77Google Cloud SQL
Sección titulada «Google Cloud SQL»Agregue una red autorizada:
Name: QuerriNetwork: 18.189.33.77/32Heroku Postgres
Sección titulada «Heroku Postgres»Heroku Postgres permite conexiones desde cualquier dirección IP de forma predeterminada. No necesita configurar nada más.
Configuración del usuario de la base de datos
Sección titulada «Configuración del usuario de la base de datos»Usuario de solo lectura (recomendado)
Sección titulada «Usuario de solo lectura (recomendado)»Cree un usuario de solo lectura exclusivo para Querri:
-- Crear el usuarioCREATE USER querri_readonly WITH PASSWORD 'secure_password_here';
-- Otorgar el permiso de conexiónGRANT CONNECT ON DATABASE your_database TO querri_readonly;
-- Otorgar el uso del esquemaGRANT USAGE ON SCHEMA public TO querri_readonly;
-- Otorgar SELECT sobre todas las tablasGRANT SELECT ON ALL TABLES IN SCHEMA public TO querri_readonly;
-- Otorgar SELECT sobre las tablas que se creen en el futuroALTER DEFAULT PRIVILEGES IN SCHEMA publicGRANT SELECT ON TABLES TO querri_readonly;Restringir el acceso a tablas específicas
Sección titulada «Restringir el acceso a tablas específicas»Para mayor seguridad, otorgue acceso solo a tablas o vistas específicas:
-- Otorgar acceso solo a tablas específicasGRANT SELECT ON orders, customers, products TO querri_readonly;
-- O bien, otorgar acceso solo a un esquema de analíticaGRANT USAGE ON SCHEMA analytics TO querri_readonly;GRANT SELECT ON ALL TABLES IN SCHEMA analytics TO querri_readonly;Consulte Buenas prácticas para bases de datos para obtener orientación detallada sobre cómo crear vistas de analítica y restringir el acceso.
Programación de sincronizaciones
Sección titulada «Programación de sincronizaciones»Puede mantener actualizados los datos de PostgreSQL con sincronizaciones programadas. Vaya a Configuración → Conectores, seleccione su conector de PostgreSQL y abra la pestaña Programación.
Sincronización completa
Sección titulada «Sincronización completa»Una sincronización completa vuelve a leer todas las tablas de su base de datos PostgreSQL. Úsela como punto de partida periódico, sobre todo si cambia el esquema o si se eliminan registros. En la aplicación, esta opción aparece como Full sync.
Sincronización incremental
Sección titulada «Sincronización incremental»La sincronización incremental obtiene solo las filas que cambiaron desde la última sincronización. A diferencia de los conectores de aplicaciones de negocio (QuickBooks, HubSpot), en PostgreSQL usted debe indicar qué columna se usa como cursor. En la aplicación, esta opción aparece como Incremental sync.
Columnas adecuadas como cursor:
| Columna | Ideal para | Ejemplo |
|---|---|---|
updated_at | Tablas que registran la fecha de modificación | La mejor opción: detecta inserciones y actualizaciones |
created_at | Tablas en las que solo se agregan filas | Solo detecta filas nuevas |
id secuencial | Tablas en las que solo se agregan filas | Solo detecta filas nuevas |
Tablas que no admiten sincronización incremental:
- Tablas sin una columna de marca de tiempo o secuencial
- Tablas de búsqueda o de referencia (cambian muy poco)
- Tablas que un proceso ETL vacía y vuelve a cargar
Para estas tablas, use la sincronización completa.
Programación recomendada
Sección titulada «Programación recomendada»| Programación | Tipo | Cron | Propósito |
|---|---|---|---|
| Frecuente | Incremental | 0 */2 * * * (cada 2 horas) | Datos recientes en tablas con columnas updated_at |
| Diaria | Completa | 0 4 * * * (todos los días a las 4 a. m.) | Detecta eliminaciones, cambios de esquema y tablas sin cursor |
En la programación completa, active Skip sources with active incremental sync (omitir las fuentes que ya tienen una sincronización incremental activa) para no volver a sincronizar las tablas que ya cubre la programación incremental.
Consulte la guía de programación de sincronizaciones para ver las instrucciones completas.
Solución de problemas
Sección titulada «Solución de problemas»Tiempo de espera de conexión agotado
Sección titulada «Tiempo de espera de conexión agotado»Problema: no es posible conectarse a la base de datos
Soluciones:
- Verifique que la dirección IP
18.189.33.77esté en la lista de direcciones permitidas - Compruebe que el host y el puerto de la base de datos sean correctos
- Verifique que la base de datos esté en funcionamiento y sea accesible
- Revise la configuración del modo SSL
- Verifique la conectividad de red
Error de autenticación
Sección titulada «Error de autenticación»Problema: error de credenciales no válidas
Soluciones:
- Revise nuevamente el usuario y la contraseña
- Verifique que el usuario exista:
SELECT * FROM pg_user WHERE usename = 'your_username'; - Compruebe que el usuario tenga permiso de conexión
- Verifique que el nombre de la base de datos sea correcto
Permiso denegado
Sección titulada «Permiso denegado»Problema: permiso denegado sobre una tabla o un esquema
Soluciones:
- Otorgue los permisos necesarios (consulte Configuración del usuario de la base de datos)
- Verifique que el nombre del esquema sea correcto
- Revise quién es el propietario de la tabla
- Ejecute
\dp table_namepara ver los permisos de la tabla
Error de conexión SSL
Sección titulada «Error de conexión SSL»Problema: falló la conexión SSL
Soluciones:
- Pruebe distintos modos SSL (prefer, require, disable)
- Verifique que el certificado SSL del servidor sea válido
- Revise la configuración SSL de PostgreSQL
- En RDS, asegúrese de que SSL esté habilitado
Buenas prácticas de seguridad
Sección titulada «Buenas prácticas de seguridad»Use credenciales de solo lectura
Sección titulada «Use credenciales de solo lectura»Cree usuarios de solo lectura exclusivos para analítica. Así:
- Evita modificaciones accidentales de los datos
- Limita el impacto de un posible incidente de seguridad
- Facilita la auditoría y el monitoreo
Habilite SSL
Sección titulada «Habilite SSL»Use siempre SSL en bases de datos de producción:
SSL Mode: requireRestrinja los permisos
Sección titulada «Restrinja los permisos»Otorgue solo los permisos necesarios:
-- Solo SELECT sobre tablas específicasGRANT SELECT ON TABLE orders, customers TO querri_readonly;
-- Solo columnas específicas (si es necesario)GRANT SELECT (customer_id, email, created_at) ON customers TO querri_readonly;Audite el acceso periódicamente
Sección titulada «Audite el acceso periódicamente»Supervise el acceso a la base de datos:
-- Ver las conexiones activasSELECT * FROM pg_stat_activityWHERE usename = 'querri_readonly';Versiones de PostgreSQL
Sección titulada «Versiones de PostgreSQL»Versiones probadas y compatibles:
- PostgreSQL 16.x ✓
- PostgreSQL 15.x ✓
- PostgreSQL 14.x ✓
- PostgreSQL 13.x ✓
- PostgreSQL 12.x ✓
- PostgreSQL 11.x ✓ (compatibilidad limitada)
- PostgreSQL 10.x ✓ (compatibilidad limitada)
- PostgreSQL 9.6.x ✓ (compatibilidad limitada)
Próximos pasos
Sección titulada «Próximos pasos»- Buenas prácticas para bases de datos: cree vistas de analítica y prepare sus datos para consultas en lenguaje natural
- Descripción general de los conectores de datos: vea todos los conectores disponibles
- Administrar conexiones: edite y supervise sus conectores