Ir al contenido

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.

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
  • 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

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.77

Esta 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.

  1. Abra los conectores

    • Vaya a ConfiguraciónConectores
    • Busque la sección Conectar una fuente de datos, donde aparecen los conectores disponibles
  2. Seleccione PostgreSQL

    • Elija PostgreSQL entre los conectores de bases de datos
  3. Configure la conexión

Host: su-servidor-de-base-de-datos.com
Puerto: 5432 (puerto predeterminado de PostgreSQL)
Base de datos: nombre_de_su_base_de_datos
Usuario: su_usuario
Contraseña: su_contraseña

Configuración opcional:

  • SSL Mode (modo SSL):
    • require: usar siempre SSL (recomendado)
    • prefer: usar SSL si está disponible
    • disable: no usar SSL
  • Esquema: el valor predeterminado es public
  • Connection Timeout (tiempo de espera de conexión): el valor predeterminado es de 30 segundos
  1. Pruebe la conexión

    • Haga clic en Probar conexión y descubrir accesos para verificarla
    • Si la prueba es correcta, haga clic en Guardar
  2. Comience a analizar

    • Las tablas aparecen en su Biblioteca
    • Cree un proyecto a partir de cualquier tabla
    • Haga preguntas en lenguaje natural

Agregue una regla de entrada:

Type: PostgreSQL
Protocol: TCP
Port: 5432
Source: 18.189.33.77/32
Description: Querri Access

Agregue una regla de firewall:

Rule Name: Querri
Start IP: 18.189.33.77
End IP: 18.189.33.77

Agregue una red autorizada:

Name: Querri
Network: 18.189.33.77/32

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»

Cree un usuario de solo lectura exclusivo para Querri:

-- Crear el usuario
CREATE USER querri_readonly WITH PASSWORD 'secure_password_here';
-- Otorgar el permiso de conexión
GRANT CONNECT ON DATABASE your_database TO querri_readonly;
-- Otorgar el uso del esquema
GRANT USAGE ON SCHEMA public TO querri_readonly;
-- Otorgar SELECT sobre todas las tablas
GRANT SELECT ON ALL TABLES IN SCHEMA public TO querri_readonly;
-- Otorgar SELECT sobre las tablas que se creen en el futuro
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO querri_readonly;

Para mayor seguridad, otorgue acceso solo a tablas o vistas específicas:

-- Otorgar acceso solo a tablas específicas
GRANT SELECT ON orders, customers, products TO querri_readonly;
-- O bien, otorgar acceso solo a un esquema de analítica
GRANT 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.

Puede mantener actualizados los datos de PostgreSQL con sincronizaciones programadas. Vaya a ConfiguraciónConectores, seleccione su conector de PostgreSQL y abra la pestaña Programación.

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.

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:

ColumnaIdeal paraEjemplo
updated_atTablas que registran la fecha de modificaciónLa mejor opción: detecta inserciones y actualizaciones
created_atTablas en las que solo se agregan filasSolo detecta filas nuevas
id secuencialTablas en las que solo se agregan filasSolo 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ónTipoCronPropósito
FrecuenteIncremental0 */2 * * * (cada 2 horas)Datos recientes en tablas con columnas updated_at
DiariaCompleta0 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.

Problema: no es posible conectarse a la base de datos

Soluciones:

  1. Verifique que la dirección IP 18.189.33.77 esté en la lista de direcciones permitidas
  2. Compruebe que el host y el puerto de la base de datos sean correctos
  3. Verifique que la base de datos esté en funcionamiento y sea accesible
  4. Revise la configuración del modo SSL
  5. Verifique la conectividad de red

Problema: error de credenciales no válidas

Soluciones:

  1. Revise nuevamente el usuario y la contraseña
  2. Verifique que el usuario exista: SELECT * FROM pg_user WHERE usename = 'your_username';
  3. Compruebe que el usuario tenga permiso de conexión
  4. Verifique que el nombre de la base de datos sea correcto

Problema: permiso denegado sobre una tabla o un esquema

Soluciones:

  1. Otorgue los permisos necesarios (consulte Configuración del usuario de la base de datos)
  2. Verifique que el nombre del esquema sea correcto
  3. Revise quién es el propietario de la tabla
  4. Ejecute \dp table_name para ver los permisos de la tabla

Problema: falló la conexión SSL

Soluciones:

  1. Pruebe distintos modos SSL (prefer, require, disable)
  2. Verifique que el certificado SSL del servidor sea válido
  3. Revise la configuración SSL de PostgreSQL
  4. En RDS, asegúrese de que SSL esté habilitado

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

Use siempre SSL en bases de datos de producción:

SSL Mode: require

Otorgue solo los permisos necesarios:

-- Solo SELECT sobre tablas específicas
GRANT 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;

Supervise el acceso a la base de datos:

-- Ver las conexiones activas
SELECT * FROM pg_stat_activity
WHERE usename = 'querri_readonly';

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)