

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# PostgreSQL
<a name="data-source-postgresql"></a>

**注意**  
PostgreSQL 連接器對現有客戶將持續完全支援至 2026 年 5 月 31 日。雖然此連接器不再提供給新使用者，但現有使用者仍可不間斷使用。我們持續優化連接器產品組合，以提供更具可擴展性及自訂化的解決方案。對於未來的整合，我們建議您探索 Amazon Kendra Custom Connector Framework【1】，其設計旨在支援更廣泛的企業使用案例和增強的靈活性。

PostgreSQL 是一套開放原始碼的關聯式資料庫管理系統。如果您是 PostgreSQL使用者，您可以使用 Amazon Kendra為PostgreSQL資料來源編製索引。Amazon KendraPostgreSQL 資料來源連接器支援 PostgreSQL 9.6。

您可以使用 [Amazon Kendra主控台](https://console.aws.amazon.com/kendra/)和 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) API Amazon Kendra連線到PostgreSQL資料來源。

如需疑難排解Amazon KendraPostgreSQL資料來源連接器，請參閱 [對資料來源進行故障診斷](troubleshooting-data-sources.md)。

**Topics**
+ [支援的功能](#supported-features-postgresql)
+ [先決條件](#prerequisites-postgresql)
+ [連線指示](#data-source-procedure-postgresql)
+ [備註](#postgresql-notes)

## 支援的功能
<a name="supported-features-postgresql"></a>
+ 欄位對應
+ 使用者內容篩選
+ 包含/排除篩選條件
+ 完整和增量內容同步
+ 虛擬私有雲端 (VPC)

## 先決條件
<a name="prerequisites-postgresql"></a>

在您可以使用 Amazon Kendra為PostgreSQL資料來源編製索引之前，請在您的 PostgreSQL和 AWS帳戶中進行這些變更。

**在 PostgreSQL 中，請確認已完成以下項目：**
+ 記下您的資料庫使用者名稱和密碼。
**重要**  
最佳實務是Amazon Kendra提供唯讀資料庫登入資料。
+ 已複製您的資料庫主機 URL、連接埠和執行個體。
+ 已檢查每個文件在您計劃用於相同索引的其他資料來源中PostgreSQL和之間都是唯一的。您要用於索引的每個資料來源不得包含跨資料來源的相同文件。文件 IDs是索引的全域 ID，且每個索引必須是唯一的。

**在您的 中AWS 帳戶，請確定您有：**
+ [建立Amazon Kendra索引](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html)，如果使用 API， 會記下索引 ID。
+ 為您的資料來源[建立 IAM角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds)，如果使用 API， 會記下IAM角色的 ARN。
**注意**  
如果您變更身分驗證類型和登入資料，則必須更新您的IAM角色以存取正確的AWS Secrets Manager秘密 ID。
+ 將您的PostgreSQL身分驗證憑證存放在AWS Secrets Manager秘密中，如果使用 API， 會記下秘密的 ARN。
**注意**  
建議定期更新或輪換憑證與機密。僅授予作業所需的最低存取層級，以確保自身安全。**我們不**建議您在資料來源以及連接器 1.0 和 2.0 版 （如適用） 之間重複使用登入資料和秘密。

如果您沒有現有的IAM角色或秘密，則可以使用 主控台在連接PostgreSQL資料來源時建立新的IAM角色和Secrets Manager秘密Amazon Kendra。如果您使用的是 API，則必須提供現有IAM角色和Secrets Manager秘密的 ARN，以及索引 ID。

## 連線指示
<a name="data-source-procedure-postgresql"></a>

若要Amazon Kendra連線到PostgreSQL資料來源，您必須提供PostgreSQL登入資料的詳細資訊， Amazon Kendra才能存取您的資料。如果您尚未設定 PostgreSQL ，Amazon Kendra請參閱 [先決條件](#prerequisites-postgresql)。

------
#### [ Console ]

**Amazon Kendra連線至 PostgreSQL** 

1. 登入 AWS 管理主控台並開啟 [Amazon Kendra主控台](https://console.aws.amazon.com/kendra/)。

1. 從左側導覽窗格中，選擇**索引**，然後從索引清單中選擇您要使用的索引。
**注意**  
您可以選擇在索引設定下設定或編輯**使用者存取控制**設定。 ****

1. 在**入門**頁面上，選擇**新增資料來源**。

1. 在**新增資料來源**頁面上，選擇**PostgreSQL連接器**，然後選擇**新增連接器**。如果使用第 2 版 （如適用），請選擇具有「V2.0」標籤的**PostgreSQL連接器**。

1. 在**指定資料來源詳細資訊**頁面上，輸入下列資訊：

   1. 在**名稱和描述**中，針對**資料來源名稱** - 輸入資料來源的名稱。您可以包含連字號，但不能包含空格。

   1. （選用） **描述** — 輸入資料來源的選用描述。

   1. 在**預設語言** - 選擇語言來篩選索引的文件。除非您另有指定，否則語言預設為英文。文件中繼資料中指定的語言會覆寫選取的語言。

   1. 在**標籤**中，針對**新增標籤** - 包含選用標籤，以搜尋和篩選您的資源或追蹤您的AWS成本。

   1. 選擇**下一步**。

1. 在**定義存取和安全性**頁面上，輸入下列資訊：

   1. 在**來源**中，輸入以下資訊：

   1.  **主機** — 輸入資料庫主機名稱。

   1.  **連接埠** — 輸入資料庫連接埠。

   1.  **執行個體** — 輸入資料庫執行個體。

   1. **啟用 SSL 憑證位置** - 選擇輸入 SSL 憑證檔案的Amazon S3路徑。

   1. 在**身分驗證**中 - 輸入下列資訊：

      1. **AWS Secrets Managersecret** - 選擇現有的秘密或建立新的Secrets Manager秘密，以存放您的PostgreSQL身分驗證登入資料。如果您選擇建立新的秘密，則會AWS Secrets Manager開啟秘密視窗。

        1. 在**建立AWSSecrets Manager秘密視窗中**輸入以下資訊：

           1. **機密名稱** - 輸入您的機密名稱。字首「AmazonKendra-PostgreSQL-」會自動新增至您的秘密名稱。

           1. 針對**資料庫使用者名稱和密碼** ****- 輸入您從資料庫複製的身分驗證憑證值。

        1. 選擇**儲存**。

   1. **Virtual Private Cloud (VPC)** — 您可以選擇使用 VPC。若是如此，您必須新增**子網路**和 **VPC 安全群組**。

   1. **IAMrole** - 選擇現有IAM角色或建立新的IAM角色，以存取您的儲存庫登入資料和索引內容。
**注意**  
IAM用於索引的 角色無法用於資料來源。如果您不確定現有角色是否用於索引或常見問答集，請選擇**建立新角色**以避免錯誤。

   1. 選擇**下一步**。

1. 在**設定同步設定**頁面上，輸入下列資訊：

   1. 在**同步範圍**中，從下列選項擇一使用：
      + **SQL 查詢**：輸入 SQL 查詢陳述式，例如 SELECT 和 JOIN 操作。SQL 查詢必須小於 32KB。Amazon Kendra 會網路爬取符合查詢的所有資料庫內容。
      + **主索引鍵欄**：提供資料庫資料表的主索引鍵。這用於識別資料庫中的資料表。
      + **標題欄**：提供資料庫資料表內文件標題欄的名稱。
      + **內文欄** - 提供資料庫資料表內文件內文欄的名稱。

   1. **在其他組態中 – *選用***，從下列選項中選擇同步特定內容，而不是同步所有檔案：
      + **變更偵測資料欄** - 輸入Amazon Kendra用於偵測內容變更的資料欄名稱。當任一資料欄發生變更時， Amazon Kendra會重新索引內容。
      + **使用者 IDs資料欄** - 輸入資料欄的名稱，其中包含允許存取內容的使用者 IDs。
      + **群組欄**：輸入包含允許存取內容之群組的欄名稱。
      + **來源 URL 欄**：輸入包含要編製索引之來源 URL 的欄名稱。
      + **時間戳記資料欄** - 輸入包含時間戳記的資料欄名稱。 Amazon Kendra會使用時間戳記資訊來偵測內容的變更，並僅同步變更的內容。
      + **時區欄**：輸入包含所要網路爬取內容之時區的欄名稱。
      + **時間戳記格式**：輸入包含要用來偵測內容變更並重新同步內容之時間戳記格式的欄名稱。

   1. **同步模式** - 選擇您希望在資料來源內容變更時更新索引的方式。當您Amazon Kendra第一次使用 同步資料來源時，預設會爬取所有內容並編製索引。如果初始同步失敗，即使您未選擇完全同步做為同步模式選項，仍必須執行資料的完整同步。
      + 完全同步：新編製所有內容的索引，每次資料來源與索引同步時取代現有的內容。
      + 新的、修改過的同步：每次資料來源與索引同步時，僅索引新的和修改的內容。Amazon Kendra 可以使用資料來源的機制來追蹤內容變更，以及自上次同步以來變更的索引內容。
      + 新的、已修改、已刪除的同步：每次資料來源與您的索引同步時，僅索引新的、已修改和已刪除的內容。 Amazon Kendra可以使用資料來源的機制來追蹤自上次同步以來變更的內容和索引內容。

   1. 在**同步執行排程**中，針對**頻率** - 與您的資料來源Amazon Kendra同步的頻率。

   1. 選擇**下一步**。

1. 在**設定欄位映射**頁面上，輸入下列資訊：

   1. 從產生的預設資料來源欄位中選取您想要映射到Amazon Kendra索引**的文件 IDs**、**文件標題**和**來源 URLs**。

   1.  **新增欄位** - 新增自訂資料來源欄位，以建立要映射的索引欄位名稱和欄位資料類型。

   1. 選擇**下一步**。

1. 在**檢閱和建立**頁面上，檢查您輸入的資訊是否正確，然後選取**新增資料來源**。您也可以選擇從此頁面編輯您的資訊。成功新增資料來源後，您的**資料來源**將顯示在資料來源頁面上。

------
#### [ API ]

**Amazon Kendra連線至 PostgreSQL**

您必須使用 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) API 指定下列項目：
+ **資料來源** - 當您使用 [https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) JSON 結構描述`JDBC`時，指定資料來源類型。另請在呼叫 [https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API `TEMPLATE`時將資料來源指定為 。
+ **資料庫類型** - 您必須將資料庫類型指定為 `postgresql`。
+ **SQL 查詢** - 指定 SQL 查詢陳述式，例如 SELECT 和 JOIN 操作。SQL 查詢必須小於 32KB。Amazon Kendra 會網路爬取符合查詢的所有資料庫內容。
+ **同步模式** - 指定 Amazon Kendra如何在資料來源內容變更時更新索引。當您第一次使用Amazon Kendra 同步資料來源時，預設會爬取所有內容並編製索引。如果初始同步失敗，即使您未選擇完全同步做為同步模式選項，仍必須執行資料的完整同步。您可以選擇：
  + `FORCED_FULL_CRAWL` 以新編製所有內容的索引，每次資料來源與索引同步時都會取代現有的內容。
  + `FULL_CRAWL` 每次資料來源與索引同步時， 只會編製新內容、修改內容和已刪除內容的索引。Amazon Kendra 可以使用資料來源的機制來追蹤自上次同步以來變更的內容變更和索引內容。
  + `CHANGE_LOG` 每次資料來源與索引同步時， 只會編製新內容和修改內容的索引。Amazon Kendra 可以使用資料來源的機制來追蹤自上次同步以來變更的內容變更和索引內容。
+ **機密 Amazon Resource Name (ARN)** — 提供Secrets Manager機密的 Amazon Resource Name (ARN)，其中包含您在PostgreSQL帳戶中建立的身分驗證憑證。秘密會以下列金鑰存放在 JSON 結構中：

  ```
  {
      "user name": "database user name",
      "password": "password"
  }
  ```
**注意**  
建議定期更新或輪換憑證與機密。僅授予作業所需的最低存取層級，以確保自身安全。**我們不**建議您在資料來源和連接器版本 1.0 和 2.0 （如適用） 之間重複使用登入資料和秘密。
+ **IAMrole**—指定`RoleArn`您何時呼叫 `CreateDataSource` 以提供IAM角色存取Secrets Manager秘密的許可，以及呼叫PostgreSQL連接器 和 所需的公有 APIsAmazon Kendra。如需詳細資訊，請參閱[IAMPostgreSQL資料來源的角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds)。

您也可以新增下列選用功能：
+  **Virtual Private Cloud (VPC)** — 指定`VpcConfiguration`何時呼叫 `CreateDataSource`。如需詳細資訊，請參閱[設定 Amazon Kendra 以使用 Amazon VPC](vpc-configuration.md)。
+  **包含和排除篩選條件** - 您可以使用使用者 IDs、群組、來源 URLs、時間戳記和時區來指定是否包含特定內容。
+  **使用者內容篩選和存取控制** —Amazon Kendra 如果您有文件的 ACL， 會為您的文件編目存取控制清單 (ACL)。ACL 資訊用於根據使用者或其群組對文件的存取來篩選搜尋結果。如需詳細資訊，請參閱[使用者內容篩選](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#datasource-context-filter)。
+  **欄位映射** - 選擇將PostgreSQL資料來源欄位映射至Amazon Kendra索引欄位。如需詳細資訊，請參閱[映射資料來源欄位](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。
**注意**  
需要文件內文欄位或文件內文對等項目， Amazon Kendra才能搜尋您的文件。您必須將資料來源中的文件內文欄位名稱映射至索引欄位名稱 `_document_body`。所有其他欄位是選用的。

如需要設定的其他重要 JSON 金鑰清單，請參閱 [PostgreSQL 範本結構描述](ds-schemas.md#ds-postgresql-schema)。

------

## 備註
<a name="postgresql-notes"></a>
+ Amazon Kendra檢查更新的內容時，不會在 中追蹤已刪除的資料庫資料列。
+ 資料庫中每列的欄位名稱和值大小不得超過 400KB。
+ 如果您的資料庫資料來源中有大量資料，且不想Amazon Kendra在第一次同步後為所有資料庫內容編製索引，您可以選擇只同步新的、修改過的或刪除的文件。
+ 最佳實務是Amazon Kendra提供唯讀資料庫登入資料。
+ 最佳實務是避免新增具有敏感資料或個人身分識別資訊 (PII) 的資料表。