# PostgreSQL

本節解說如何在資料任務中設定 PostgreSQL 來源。在您開始資料任務之前，請確定已滿足[必要條件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/PostgreSQL/prereq-postgresql-source-dmgateway.htm)、設定[限制和考慮事項](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/PostgreSQL/postgresql-source-limitations.htm)，並且熟悉[必要權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/PostgreSQL-Source/security_req_postgresql.htm)。

從下列任何資料庫登陸資料時，您需要設定與 PostgreSQL 的連線：

* 內部部署：

  * PostgreSQL

    資訊備註PostgreSQL 內部部署來源也支援來自 Azure Database for PostgreSQL - 彈性伺服器的 移動。

* 雲端：

  * Amazon Aurora

  * Amazon RDS for PostgreSQL

  * Microsoft Azure Database for PostgreSQL

    資訊備註Microsoft 已不再支援 Microsoft Azure Database for PostgreSQL。因此，Data Movement gateway 2025.5.22 版已停止支援 Microsoft Azure Database for PostgreSQL 作為資料來源。

  * Google Cloud SQL for PostgreSQL：需要 資料移動閘道 2022.11.42 或更高版本

  * Google Cloud AlloyDB for PostgreSQL：需要 資料移動閘道 2023.5.10 或更高版本

## 設定連線屬性

本節說明可用的連線屬性。除非另有指明，否則所有屬性皆為必要。

若要開啟連接器，進行下列事項：

1. 在連線中，按一下建立連線。

2. 選取 PostgreSQL 來源連接器，然後提供下列設定：

### 資料來源

* 資料閘道

  如您的使用情況有需要，選取 資料移動閘道。

  資訊備註

  此欄位無法用於 Qlik Talend Cloud 啟動器 訂閱，因為不支援 資料移動閘道。若您有另一個訂閱層級且不想使用 資料移動閘道，選取無。

  如需關於 資料移動閘道 福利的資訊以及需要此項的使用案例，請參閱 [Qlik Data Gateway - Data Movement](https://help.qlik.com/zh-TW/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 位址。

* 連接埠：Data Movement gateway 存取 PostgreSQL 資料庫所經由的連接埠。預設值為 5432。

### 帳戶屬性

* 使用者名稱和密碼

  獲得授權可存取 PostgreSQL 資料庫的使用者的使用者名稱和密碼。

* SSH 通道

  資訊備註

  * 只有在資料閘道設定為無時，此選項才可用。

  * 若要使用此選項，您首先需要定義至少一個 SSH 通道連接器。如需詳細資訊，請參閱[SSH tunnel](https://help.qlik.com/zh-TW/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 按鈕以新增或移除屬性。

### 雜項

將布林值資料類型對應至布林值 (而非字串 (5))：若您希望布林值欄對應至 Qlik Cloud 中的布林值資料類型，而非預設的字串 (5)，請選取此選項。

### 名稱

來源連線的顯示名稱。