# PostgreSQL

本节介绍如何在数据任务中设置 PostgreSQL 源。在开始数据任务之前，请确保已完成 [先决条件](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/PostgreSQL/prereq-postgresql-source-dmgateway.htm)，设置 [限制和考虑事项](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/PostgreSQL/postgresql-source-limitations.htm)，并熟悉 [所需的权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/PostgreSQL-Source/security_req_postgresql.htm)。

从以下任何数据库登陆数据时，需要配置与 PostgreSQL 的连接：

* 内部：

  * PostgreSQL

    信息注释PostgreSQL 本地源还支持 Azure Database for PostgreSQL - Flexible Server 中的 移动。

* 基于云：

  * Amazon Aurora

  * Amazon RDS for PostgreSQL

  * Microsoft Azure Database for PostgreSQL

    信息注释Microsoft Azure Database for PostgreSQL 不再受 Microsoft 支持。因此，对 Microsoft Azure Database for PostgreSQL 作为数据源的支持已从 Data Movement gateway 版本 2025.5.22 停止。

  * Google Cloud SQL for PostgreSQL：需要 数据移动网关 2022.11.42 或更高版本

  * Google Cloud AlloyDB for PostgreSQL：需要 数据移动网关 2023.5.10 或更高版本

## 设置连接属性

本节介绍可用的连接属性。除非另有说明，否则所有属性都是必需的。

要打开连接器，请执行以下操作：

1. 在连接中单击创建连接。

2. 选择 PostgreSQL 源连接器，然后提供以下设置：

### 数据源

* 数据网关

  如果您的用例需要，请选择一个 数据移动网关。

  信息注释

  此字段不适用于 Qlik Talend Cloud Starter 订阅，因为它不支持 数据移动网关。如果您有另一个订阅层并且不想使用 数据移动网关，请选择无。

  有关 数据移动网关 的优势和需要它的用例的信息，请参阅[Qlik Data Gateway - Data Movement](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)。

* 云提供商：如果您的 PostgreSQL 数据库位于云中，请选择提供商：

  * 无（如果您的 PostgreSQL 数据库是本地数据库，则选择）

  * Amazon Aurora

  * Amazon RDS

  * Microsoft Azure

  * Google Cloud - 需要 数据移动网关 2022.11.42 或更高版本。

* 服务器：安装 PostgreSQL 数据库的计算机的主机名或 IP 地址。

* 端口：数据移动网关用来访问 PostgreSQL 数据库的端口。默认值为 5432。

### 帐户属性

* 用户名和密码

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

* SSH 隧道

  信息注释

  * 只有当数据网关集设置为无时，该选项才可用。

  * 要使用该选项，首先需要至少定义一个 SSH 隧道连接器。有关更多信息，请参阅[SSH tunnel](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/SSH-tunnel.htm)。

  如果要通过 SSH 隧道连接到数据源，请选择此项，然后从 SSH 连接下拉列表中选择 SSH 隧道连接器。

### 数据库属性

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

* 方法 1 - 从列表中选择：单击加载数据库，然后选择一个数据库。
* 方法 2 - 手动：选择手动输入数据库名称，然后输入数据库名称。

### SSL 选项

您可以配置 以使用 SSL 连接到数据源。

* SSL 模式：选择以下选项之一：
  * None - 仅使用姓氏和密码连接。
  * Preferred - 如果服务器支持加密连接，则建立加密连接，如果无法建立加密连接则返回到未加密连接。
  * Required - 如果服务器支持加密连接，则建立加密连接。如果无法建立加密连接，则连接尝试失败。
  * Verify CA - 类似于 Required，但也根据配置的 CA 证书验证服务器证书机构 (CA) 证书。如果找不到有效的匹配 CA 证书，则连接尝试失败。
  * Verify Full - 类似于 Verify CA，但也通过对比服务器发送到客户端的证书中的身份，检查客户端用来连接到服务器的主机名（即 ）。客户端检查用于连接的主机名是否与服务器证书中的“公用名”值匹配。如果不匹配，连接将失败。
* 可信证书：颁发 PEM 格式客户端证书文件的证书机构 (CA)。
* 客户端证书：服务器请求的客户端证书。
* 客户端证书密钥：PEM 格式的客户端私钥文件。
* CRL：CRL 证书。此文件包含证书颁发机构吊销的证书。如果服务器证书出现在此列表中，则连接将失败。
* SSL 压缩：选择此选项可在数据加密之前对其进行压缩。

### CDC 属性

WAL 心跳 - 正在运行但未捕获更改（由于源表不活动）的 CDC 任务将继续占据分配给该任务的插槽中的 LSN 位置，从而防止 WAL 的截断。由于 WAL 是所有 PostgreSQL 进程使用的服务器范围的资源，如果在较长期间内没有捕获任何更改，它可能会变得非常大。

要防止这种情况发生，请启用 WAL 心跳选项。启用此选项时，PostgreSQL 源 连接器 通过定期向心跳表提交伪交易（称为“心跳”）来模拟任务活动，从而提高任务席位的 LSN 位置。

* 心跳工件的架构：将在其中创建 WAL 心跳表 (`attrep_wal_heartbeat`) 的模式。默认值为 "public"。
* 心跳频率（分钟）：将交易提交到心跳表的频率。

### DDL 属性

信息注释复制到云存储目标时不支持这些选项。

* 捕获 DDL 事件：选择此选项后，将执行以下操作：
  * 为了便于捕获 DDL 事件，数据移动网关 在任务启动时在 PostgreSQL 数据库中创建触发器和其他操作工件。稍后可以删除这些工件，如下面从源数据库中删除工件中所述。
  * 捕获流式 DDL 事件。
* 以模式创建 DDL 工件：将在其中创建可选 DDL 数据库工件的模式。默认值为 "Public"。

#### 从源数据库中删除项目

为了捕获 DDL，数据移动网关 在任务启动时在 PostgreSQL 数据库中创建各种工件。如果您决定在将来的某个时刻删除任务，则可以删除这些工件。

要删除工件，请执行以下语句（按它们出现的顺序），其中 `public` 是在其中创建工件的默认模式：

* drop event trigger attrep\_intercept\_ddl

  信息注释`event` `trigger` 不属于特定的模式。

* drop function public.attrep\_intercept\_ddl()

* drop table public.attrep\_ddl\_audit

* drop schema public

* drop table schema.attrep\_wal\_heartbeat

  其中 schema 是连接器设置中指定的心跳工件的模式。

警告注释

删除模式时应格外小心（如果有的话）。永远不要丢弃操作模式，尤其不要丢弃`public`。

### 内部属性

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

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

### 其他

将 BOOLEAN 数据类型映射到 BOOLEAN（而不是 STRING (5)）：如果您希望将 BOOLEAN 列映射到 Qlik Cloud 中的 BOOLEAN 数据类型，而不是默认的 STRING (5)，请选择此选项。

### 名称

安全连接的显示名称。