Saltar al contenido principal Saltar al contenido complementario

PostgreSQL

Esta sección explica cómo configurar la conectividad a un destino PostgreSQL utilizando el conector PostgreSQL Target. PostgreSQL se puede utilizar como destino únicamente en una tarea de replicación. Antes de poder conectar a un destino PostgreSQL, debe configurar los Permisos requeridos en la base de datos. Si se conecta a PostgreSQL a través de Pasarela de datos de movimiento de datos, también deberá instalar el controlador como se describe en Configuración del controlador.

Para obtener información sobre limitaciones y consideraciones al utilizar el conector PostgreSQL , vea Limitaciones y consideraciones.

Configurar las propiedades de la conexión

Esta sección describe las propiedades de conexión disponibles. Todas las propiedades son obligatorias a menos que se indique lo contrario.

Destino de datos

  • Pasarela de datos: Seleccione la Pasarela de datos de movimiento de datos que se utilizará para probar la conexión al destino de PostgreSQL. Esta debería ser la misma puerta de enlace que se utilizó para acceder a la fuente de datos.

    Nota informativa
    • Requiere Pasarela de datos de movimiento de datos 2023.5.10 o posterior.
    • También necesita instalar el controlador adecuado en la máquina de Pasarela de datos de movimiento de datos. Para más detalles, vea Configuración del controlador a continuación.

  • Proveedor Cloud: Elija uno de los siguientes, según proceda:

      • PostgreSQL localmente
      • Amazon Aurora
      • Azure Database for PostgreSQL: servidor flexible
    • Para Amazon RDS for PostgreSQL.

      • Google Cloud SQL for PostgreSQL
      • Google Cloud AlloyDB for PostgreSQL
    • Para Microsoft Azure Database for PostgreSQL.

  • Host: El nombre del host o la dirección IP del equipo en el que esté instalada la base de datos de PostgreSQL .

  • Puerto: El puerto que se utilizará al conectarse a la base de datos. El valor predeterminado es 5432.

Propiedades de la cuenta

User Name y Password: El nombre de usuario y la contraseña de un usuario autorizado para acceder a la base de datos del PostgreSQL Server.

Propiedades de la base de datos

  • Nombre de la base de datos: hay dos métodos que puede utilizar para especificar una base de datos:

    • Método 1 - Seleccionarlo de una lista: haga clic en Cargar bases de datos y seleccione una base de datos.
    • Método 2 - Manualmente: seleccione Insertar el nombre de la base de datos manualmente e indique el nombre de la base de datos.
  • SSL Mode: seleccione una de las siguientes opciones:
    • Disable: conéctese sólo con apellido y contraseña.
    • Allow: establezca una conexión cifrada si lo solicita el servidor.
    • Prefer: esta es la opción predeterminada Establece una conexión cifrada si el servidor admite conexiones cifradas, recurriendo de nuevo a una conexión no cifrada si no logra establecer una conexión cifrada.
    • Required: establece una conexión cifrada si el servidor admite conexiones cifradas. El intento de conexión falla si no se puede establecer una conexión cifrada.
    • Verify-ca: similar a Required, pero también verifica el certificado de la Autoridad de certificación (CA) del servidor comparándolo con los certificados de CA configurados. El intento de conexión falla si no se encuentran certificados CA coincidentes válidos.
    • Verify-full: similar a Verify-ca, pero también realiza la verificación de identidad del nombre de host comprobando que el nombre de host del cliente (es decir, Data Movement gateway) lo utiliza para conectarse al servidor comparándolo con la identidad del certificado que el servidor envía al cliente. El cliente comprueba si el nombre de host que utiliza para conectarse coincide con el valor del nombre común en el certificado del servidor. La conexión falla si no hay coincidencias.
  • Trusted certificate: la autoridad de certificación (CA) que emitió el archivo de certificado de cliente en formato PEM.
  • Client certificate: carga el certificado de cliente solicitado por el servidor.
  • Client certificate key: el archivo de clave privada del cliente en formato PEM.
  • CRL: el certificado CRL. Este archivo contiene certificados revocados por las autoridades de certificación. Si el certificado del servidor aparece en esta lista, la conexión fallará.
  • SSL compression: seleccione esta opción para comprimir los datos antes de cifrarlos.
  • Tamaño máximo de archivo (KB): Seleccione o escriba el tamaño máximo (en KB) de un archivo CSV antes de cargarlo en la base de datos de destino PostgreSQL. El valor predeterminado es 32000 KB.

Propiedades internas

Las propiedades internas son para casos de uso especiales y, por lo tanto, no se exponen en el cuadro de diálogo. Solo deberá usarlas si se lo indica el Soporte de Qlik.

Haga uso de los botones Crear nuevo y Cancelar a la derecha de los campos para agregar o eliminar propiedades según sea necesario.

Nombre

El nombre que mostrará la conexión.

Requisitos previos

Permisos requeridos

El usuario especificado en la configuración del conector debe ser un usuario registrado en la base de datos de PostgreSQL.

Además, se deben otorgar los siguientes privilegios:

  • Puede iniciar sesión
  • Crear bases de datos
Nota informativaSi el esquema de destino ya existe en la base de datos, no se requiere el privilegio "Crear bases de datos".

Configuración del controlador

Puede instalar el driver usando la utilidad de instalación del driver (recomendado) o manualmente. La instalación manual solo debe intentarse en el improbable caso de que encuentre un problema con la utilidad de instalación del driver.

Uso de la utilidad de instalación del driver para instalar el driver/controlador

Esta sección describe cómo instalar el driver necesario. El proceso implica ejecutar un script que descargará, instalará y configurará automáticamente el driver requerido. También puede ejecutar secuencias de script para actualizar y desinstalar el driver según sea necesario.

  • Asegúrese de que Python 3.6 o posterior esté instalado en el servidor de la pasarela de Movimiento de datos.

    Python viene preinstalado en la mayoría de las distribuciones de Linux. Puede verificar qué versión de Python está instalada en su sistema ejecutando el siguiente comando:

    python3 --version

Para descargar e instalar el driver:

  1. En la máquina de la puerta de enlace de Movimiento de datos, cambie el directorio de trabajo a:

    opt/qlik/gateway/movement/drivers/bin

  2. Ejecute el siguiente comando:

    Sintaxis:

    ./install postgres

    Si no logra descargar el driver (debido a restricciones de acceso o problemas técnicos), aparecerá un mensaje indicándole dónde puede descargar el driver y dónde copiarlo en la máquina de la puerta de enlace de Movimiento de datos. Una vez hecho esto, ejecute nuevamente el comando install postgres.

    De lo contrario, se mostrará el EULA del driver.

  3. Puede realizar una de las acciones siguientes:

    • Pulse [Intro] repetidamente para desplazarse por el EULA.
    • Pulse la barra espaciadora repetidamente para desplazarse rápidamente por el EULA.
    • Pulse q para salir del texto de la licencia y ver las opciones de aceptación del EULA.
  4. Puede realizar una de las acciones siguientes:

    • Escriba "y" y pulse [Intro] para aceptar el EULA y comenzar la instalación.
    • Escriba "n" y pulse [Intro] para rechazar el EULA y salir de la instalación.
    • Escriba "v" y pulse [Intro] para ver el EULA de nuevo.

  5. Se instalará el driver.

Ejecute el comando de actualización si desea desinstalar versiones anteriores del driver antes de instalar el driver provisto.

Para descargar y actualizar el driver:

  1. En la máquina de la puerta de enlace de Movimiento de datos, cambie el directorio de trabajo a:

    opt/qlik/gateway/movement/drivers/bin

  2. Ejecute el siguiente comando:

    Sintaxis:

    ./update postgres

    Si no logra descargar el driver (debido a restricciones de acceso o problemas técnicos), aparecerá un mensaje indicándole dónde puede descargar el driver y dónde copiarlo en la máquina de la puerta de enlace de Movimiento de datos. Una vez hecho esto, ejecute nuevamente el comando update postgres.

    De lo contrario, se mostrará el EULA del driver.

  3. Puede realizar una de las acciones siguientes:

    • Pulse [Intro] repetidamente para desplazarse por el EULA.
    • Pulse la barra espaciadora repetidamente para desplazarse rápidamente por el EULA.
    • Pulse q para salir del texto de la licencia y ver las opciones de aceptación del EULA.
  4. Puede realizar una de las acciones siguientes:

    • Escriba "y" y pulse [Intro] para aceptar el EULA y comenzar la instalación.
    • Escriba "n" y pulse [Intro] para rechazar el EULA y salir de la instalación.
    • Escriba "v" y pulse [Intro] para ver el EULA desde el principio.
  5. El driver anterior se desinstalará y se instalará el nuevo driver.

Ejecute el comando de desinstalación si desea desinstalar el driver.

Para desinstalar el driver:

  1. Detenga todas las tareas configuradas para utilizar este conector.

  2. En la máquina de la pasarela de Movimiento de datos, cambie el directorio de trabajo a:

    opt/qlik/gateway/movement/drivers/bin

  3. Ejecute el siguiente comando:

    Sintaxis:

    ./uninstall postgres

    Se desinstalará el driver.

Instalar los controladores y las librerías manualmente

Solo debe intentar instalar el driver manualmente si la instalación automática del driver no se realizó correctamente.

Una vez que se haya instalado Pasarela de datos de movimiento de datos, descargue los siguientes archivos RPM. Encontrará enlaces de descarga directa a la versión compatible en binary-artifacts, en /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml. Una vez completada la descarga, copie los archivos a la máquina de Pasarela de datos de movimiento de datos.

Cuando Pasarela de datos de movimiento de datos está instalado en Red Hat 9.x:

  • postgresql<version>-libs-<version>PGDG.rhel9.x86_64.rpm
  • postgresql<version>-<version>PGDG.rhel9.x86_64.rpm
  • postgresql<version>-odbc-<version>PGDG.rhel9.x86_64.

Cuando Pasarela de datos de movimiento de datos está instalado en Red Hat 8.x:

  • postgresql<version>-libs-<version>PGDG.rhel8.x86_64.rpm
  • postgresql<version>-<version>PGDG.rhel8.x86_64.rpm
  • postgresql<version>-odbc-<version>PGDG.rhel8.x86_64.rpm

 

En el servidor de Data Movement gateway, abra un símbolo del shell y haga lo siguiente:

  1. Detenga el servicio Data Movement gateway:

    sudo systemctl stop repagent

  2. Opcionalmente, confirme que el servicio se ha detenido:

    sudo systemctl status repagent

    El estado debería ser el siguiente:

    Active: inactive (dead) since <timestamp> ago

  3. Instale los archivos RPM.

  4. Cambie el directorio de trabajo a <Data Movement gateway-Install-Dir>/bin.

  5. Copie la ubicación del controlador en el archivo site_arep_login.sh, de la siguiente manera:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh

    Esto agregará el controlador a "LD_LIBRARY_PATH" y actualizará la ubicación del controlador en el archivo site_arep_login.sh.

  6. Opcionalmente, confirme que se copió la ubicación del controlador:

    cat site_arep_login.sh
  7. Asegúrese de que el archivo /etc/odbcinst.ini contenga una entrada para PostgreSQL, como en el siguiente ejemplo:

    [PostgreSQL]

    Description = PostgreSQL ODBC driver

    Driver = /usr/pgsql-13/lib/psqlodbc.so

    Setup = /usr/pgsql-13/lib/psqlodbcw.so

    UsageCount = 1

  8. Inicie el servicio Data Movement gateway:

    sudo systemctl start repagent

  9. Opcionalmente, confirme que el servicio se ha iniciado:

    sudo systemctl status repagent

    El estado debería ser el siguiente:

    Active: active (running) since <timestamp> ago

Limitaciones y consideraciones

Se aplican las siguientes limitaciones al utilizar PostgreSQL como destino de replicación:

  • No se admiten las operaciones ACTUALIZAR y ELIMINAR en tablas sin una clave principal/índice único que contengan registros duplicados. Cualquier cambio en estas tablas afectará a todos los registros del destino.
  • Las tablas con una columna LOB en la clave no se admiten en el modo de aplicación optimizado por lotes. Cuando se utiliza una columna VARBINARY como clave de la tabla de origen, se creará una columna BYTEA en el destino. Esto provoca un comportamiento impredecible en el modo de aplicación optimizado por lotes. Como solución alternativa, sugerimos utilizar la función SQLite HEX para convertir VARBINARY a VARCHAR.

Tipos de datos

La información del tipo de datos nativo se conserva y se muestra en la columna Tipo de datos nativo en las vistas de conjuntos de datos. Si la columna no está visible, debe abrir el selector de columnas de la vista del conjunto de datos y seleccionar la columna Tipo de datos nativo.

Tipos de datos
Tipos de datos de Qlik Cloud Tipos de datos de PostgreSQL

BOOL

BOOL

BYTES

BYTEA

DATE

DATE

TIME

TIME

DATETIME

Si la escala es => 0 y =< 6, entonces:

TIMESTAMP

Si la escala es => 7 y =< 12, entonces:

VARCHAR (37)

INT1

SMALLINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL (P, S)

REAL4

FLOAT4

REAL8

FLOAT8

STRING

Si la longitud es 1 - 21845, entonces:

VARCHAR (Longitud en Bytes = El valor STRING multiplicado por tres)

Si la longitud es 21846 - 2147483647, entonces:

VARCHAR (65535)

UINT1

SMALLINT

UINT2

INTEGER

UINT4

BIGINT

UINT8

BIGINT

WSTRING

Si la longitud es 1 - 21845, entonces:

VARCHAR (Longitud en Bytes = El valor WSTRING multiplicado por tres)

Si la longitud es 21846 - 2147483647, entonces:

VARCHAR (65535)

BLOB

BYTEA

NCLOB

TEXT

CLOB

TEXT

Tipos de datos al replicar desde un origen PostgreSQL

Al replicar desde una fuente PostgreSQL, la tabla de destino se creará con los mismos tipos de datos para todas las columnas, excepto las columnas con tipos de datos PostGIS o definidos por el usuario. En tales casos, el tipo de datos se creará como "carácter variable" en el destino.

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.