Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
跳到主要内容 跳到补充内容

PostgreSQL

本节介绍如何使用 PostgreSQL 目标连接器配置与 PostgreSQL 目标的连接。PostgreSQL 只能在复制任务中用作目标。在连接到 PostgreSQL 目标之前,您需要在数据库上配置 所需的权限。如果您通过 Data Movement gateway 连接到 PostgreSQL,还需要安装驱动程序设置中所述的驱动程序。

有关使用 PostgreSQL 连接器时的限制和注意事项的信息,请参阅限制和考虑事项

设置连接属性

要配置连接器,请执行以下操作:

  1. 连接中单击创建连接

  2. 选择 PostgreSQL 目标连接器,然后提供以下设置:

数据目标

  • 数据网关当使用Data Movement gateway时,选择将用于测试与 MySQL 目标的连接的数据网关。这应该是用于访问数据源的同一网关。

    信息注释
    • 此字段不适用于 Qlik Talend Cloud Starter 订阅,因为此订阅层不支持 Data Movement gateway
    • 您还需要在 Data Movement gateway 计算机上安装相应的驱动程序。有关详细信息,请参阅下文的驱动程序设置

  • 云提供者:根据需要选择以下项之一:

      • 内部 PostgreSQL
      • Amazon Aurora
      • Azure Database for PostgreSQL - Flexible Server
      • Data Movement gateway
    • 对于 Amazon RDS for PostgreSQL。

      • Google Cloud SQL for PostgreSQL
      • Google Cloud AlloyDB for PostgreSQL
    • 对于 Microsoft Azure Database for PostgreSQL。

  • 主机:安装 PostgreSQL 数据库的计算机的主机名或 IP 地址。

  • 端口:连接到数据库时要使用的端口。默认值为 5432。

帐户属性

用户名称密码:经授权可访问 PostgreSQL Server 数据库的用户的用户名和密码。

数据库属性

  • 数据库名称:有两种方法可以用于指定数据库:

    • 方法 1 - 从列表中选择:单击加载数据库,然后选择一个数据库。
    • 方法 2 - 手动:选择手动输入数据库名称,然后输入数据库名称。
  • SSL 模式:选择以下选项之一:
    • 禁用 - 仅使用姓氏和密码连接。
    • 允许 - 如果服务器请求,则建立加密连接。
    • 优选 - 这是默认设置。Preferred - 如果服务器支持加密连接,则建立加密连接,如果无法建立加密连接则返回到未加密连接。
    • Required - 如果服务器支持加密连接,则建立加密连接。如果无法建立加密连接,则连接尝试失败。
    • Verify CA - 类似于 Required,但也根据配置的 CA 证书验证服务器证书机构 (CA) 证书。如果找不到有效的匹配 CA 证书,则连接尝试失败。
    • Verify Full - 类似于 Verify CA,但也通过对比服务器发送到客户端的证书中的身份,检查客户端用来连接到服务器的主机名(即 Qlik Talend Data Integration)。客户端检查用于连接的主机名是否与服务器证书中的“公用名”值匹配。如果不匹配,连接将失败。
  • 可信证书:颁发 PEM 格式客户端证书文件的证书机构 (CA)。
  • 客户端证书:上传服务器请求的客户端证书。
  • 客户端证书密钥:PEM 格式的客户端私钥文件。
  • CRL:CRL 证书。此文件包含证书颁发机构吊销的证书。如果服务器证书出现在此列表中,则连接将失败。
  • SSL 压缩:选择此选项可在数据加密之前对其进行压缩。
  • 最大文件大小 (KB):在将 CSV 文件加载到 PostgreSQL 目标数据库之前,选择或键入其最大大小(以 KB 为单位)。默认值为 32000 KB。

内部属性

内部属性用于特殊用例,因此不会在对话框中公开。只有在 Qlik 支持部门的指示下,您才应该使用它们。

使用字段右侧的 新建取消 按钮可以根据需要添加或删除特性。

名称

连接的显示名称。

先决条件

所需的权限

连接器设置中指定的用户必须是 PostgreSQL 数据库中的注册用户。

此外,还必须授予以下权限:

  • 可以登录
  • 创建数据库
信息注释如果目标架构已存在于数据库中,则不需要“创建数据库”权限。

驱动程序设置

您可以使用驱动程序安装实用程序(推荐)安装 driver 或手动安装。只有在您遇到驱动程序安装实用程序发生问题的少见情况下,才应尝试手动安装。

使用驱动程序安装实用程序安装驱动程序

本部分介绍如何安装所需的 driver。这个过程包括运行一个脚本,该脚本将自动下载、安装和配置所需的 driver。您还可以根据需要运行脚本来更新和卸载 driver

  • 请确保在 Data Movement 网关服务器上安装了 Python 3.6 或更高版本。

    Python 预装在大多数 Linux 发行版上。您可以通过运行以下命令来检查系统上安装了哪个 Python 版本。

    python3 --version

下载并安装 driver

  1. Data Movement 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  2. 然后运行以下命令:

    语法:

    ./install postgres

    如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 Data Movement 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 install postgres 命令。

    否则,将显示 driver 的 EULA。

  3. 执行以下操作之一:

    • 重复按 [Enter] 可在 EULA 中缓慢滚动。
    • 重复按空格键可快速滚动 EULA。
    • 按 q 退出许可证文本并显示 EULA 接受选项。
  4. 执行以下操作之一:

    • 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
    • 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
    • 键入“v”并按 [Enter] 以再次查看 EULA。

  5. 将会安装 driver

如果要在安装提供的 driver 之前卸载以前版本的 driver,请运行 update 命令。

下载并更新 driver

  1. Data Movement 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  2. 然后运行以下命令:

    语法:

    ./update postgres

    如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 Data Movement 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 update postgres 命令。

    否则,将显示 driver 的 EULA。

  3. 执行以下操作之一:

    • 重复按 [Enter] 可在 EULA 中缓慢滚动。
    • 重复按空格键可快速滚动 EULA。
    • 按 q 退出许可证文本并显示 EULA 接受选项。
  4. 执行以下操作之一:

    • 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
    • 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
    • 键入“v”并按 [Enter] 可从头开始查看 EULA。
  5. 将卸载旧的 driver,并安装新的 driver

如果要卸载 driver,请运行 uninstall 命令。

卸载 driver

  1. 停止所有配置为使用此连接器的任务。

  2. Data Movement 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  3. 然后运行以下命令:

    语法:

    ./uninstall postgres

    将卸载 driver

手动安装驱动程序和库

只有在自动驱动程序安装未成功完成的情况下,才应尝试手动安装 driver

安装 Data Movement gateway 后,下载以下 RPM 文件。您可以在 /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml 中找到 binary-artifacts 下文件的直接下载链接。下载完成后,将文件复制到 Data Movement gateway 机器上。

在 Red Hat 9.x 上安装 Data Movement gateway 时:

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

在 Red Hat 8.x 上安装 Data Movement gateway 时:

  • 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

 

数据移动网关 服务器上,打开 shell 提示符并执行以下操作:

  1. 停止 数据移动网关 服务:

    sudo systemctl stop repagent

  2. 可选择确认服务已停止:

    sudo systemctl status repagent

    状态应如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 安装 RPM 文件。

  4. 将工作目录更改为 <数据移动网关_Install_Dir>/bin.

  5. 如下将驱动程序位置复制到 site_arep_login.sh 文件:

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

    这将把驱动程序添加到 "LD_LIBRARY_PATH" 并更新 site_arep_login.sh 文件中的驱动程序位置。

  6. 可选择确认已将驱动程序位置复制:

    cat site_arep_login.sh
  7. 确保 /etc/odbcinst.ini 文件包含 PostgreSQL 的条目,如以下示例所示:

    [PostgreSQL]

    Description = PostgreSQL ODBC driver

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

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

    UsageCount = 1

  8. 启动 数据移动网关 服务:

    sudo systemctl start repagent

  9. 可选择确认服务已启动:

    sudo systemctl status repagent

    状态应如下所示:

    Active: active (running) since <timestamp> ago

限制和考虑事项

当使用 PostgreSQL 作为复制目标时,以下限制适用:

  • 不支持对没有包含重复记录的主键/唯一索引的表执行 UPDATE 和 DELETE 操作。对这些表的任何更改都将影响目标中的所有记录。
  • 在批处理优化应用模式下,不支持键中包含 LOB 列的表。当 VARBINARY 列用作源表键时,将在目标中创建 BYTEA 列。这会导致“批量优化应用”模式中出现不可预测的行为。作为一种变通方法,我们建议使用 SQLite HEX 函数将 VARBINARY 转换为 VARCHAR。

数据类型

本机数据类型信息将被保留,并显示在数据集视图的本机数据类型列中。如果列不可见,则需要打开数据集视图的列选择器,然后选择本机数据类型列。

警告注释当源表中的 移动 及列映射到 PostgreSQL 目标上的 BYTEA 时,请确保在任务设置中启用了复制 LOB 列选项(默认设置)。
数据类型
Qlik Cloud 数据类型 PostgreSQL 数据类型

BOOL

BOOL

BYTES

BYTEA

DATE

DATE

TIME

TIME

DATETIME

如果刻度 => 0 且 =< 6,那么:

TIMESTAMP

如果刻度 => 7 且 =< 12,那么:

VARCHAR (37)

INT1

SMALLINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL (p,s)

REAL4

FLOAT4

REAL8

FLOAT8

STRING

如果长度为 1 - 21845,则为:

VARCHAR(以字节为单位的长度 = STRING 值乘以三)

如果长度为 21846 - 2147483647,则为:

varchar(65535)

UINT1

SMALLINT

UINT2

INTEGER

UINT4

BIGINT

UINT8

BIGINT

WSTRING

如果长度为 1 - 21845,则为:

VARCHAR(以字节为单位的长度 = WSTRING 值乘以三)

如果长度为 21846 - 2147483647,则为:

varchar(65535)

BLOB

BYTEA

NCLOB

TEXT

CLOB

TEXT

PostgreSQL 源复制时的数据类型

PostgreSQL 源复制时,除了具有用户定义或 PostGIS 数据类型的列外,将为所有列创建具有相同数据类型的目标表。在这种情况下,数据类型将在目标中创建为“变化字符”。

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!