Amazon RDS/Aurora - Amazon Kendra

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon RDS/Aurora

您可以使用数据库数据来源为存储在数据库中的文档编制索引。提供数据库的连接信息后, Amazon Kendra 连接和索引文档。

Amazon Kendra 支持以下数据库:

  • Amazon Aurora MySQL

  • Amazon Aurora PostgreSQL

  • Amazon RDS 适用于 MySQL

  • Amazon RDS 适用于 PostgreSQL

注意

不支持无服务器 Aurora 数据库。

重要

此 Amazon RDS/Aurora 连接器计划于 2023 年底之前弃用。

Amazon Kendra 现在支持新的数据库数据源连接器。为了改善体验,我们建议您选择以下适用于您的用例的新连接器:

您可以使用Amazon Kendra 控制台DatabaseConfigurationAPI Amazon Kendra 连接到数据库数据源。

要对 Amazon Kendra 数据库数据源连接器进行故障排除,请参阅数据来源故障排除

支持的特征

Amazon Kendra 数据库数据源连接器支持以下功能:

  • 字段映射

  • 用户上下文筛选

  • Virtual Private Cloud (VPC)

先决条件

在使用 Amazon Kendra 索引数据库数据源之前,请先在数据库和 AWS 帐户中进行这些更改。

在数据库中,请确保:

  • 记下您的数据库用户名和密码基本身份验证凭证。

  • 已复制主机名、端口号、主机地址、数据库名称以及包含文档数据的数据表的名称。对于 PostgreSQL,数据表必须是公共表或公共架构。

    注意

    主机和端口告诉您在 Internet 上的 Amazon Kendra 何处可以找到数据库服务器。数据库名和表名告诉你 Amazon Kendra 在数据库服务器上哪里可以找到文档数据。

  • 已复制数据表中包含文档数据的列的名称。必须包括文档 ID、文档正文、用于检测文档是否已更改的列(例如,上次更新的列)以及映射到自定义索引字段的可选数据表列。您也可以将任何 Amazon Kendra 保留字段名称映射到表列。

  • 已复制数据库引擎类型信息,例如您使用的是 My Amazon RDS SQL 还是其他类型。

  • 在数据库以及计划用于编制同一索引的其他数据来源中,已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档 ID 对索引来说是全局性的,并且每个索引都必须是唯一的。

在你的 AWS 账户,请确保你有:

  • 已创建 Amazon Kendra 索引,如果使用 API,则记下索引 ID。

  • 为您的数据源@@ 创建了一个 IAM 角色,如果使用 API,请记下该角色的 ARN。 IAM

    注意

    如果您更改了身份验证类型和证书,则必须更新您的 IAM 角色才能访问正确的 AWS Secrets Manager 密钥 ID。

  • 将您的数据库身份验证凭证存储在 AWS Secrets Manager 密钥中,如果使用 API,请记下密钥的 ARN。

    注意

    我们建议您定期刷新或轮换您的凭证和密码。为了安全起见,请仅提供必要的访问权限级别。我们建议不要跨数据来源以及连接器版本 1.0 和 2.0(如果适用)重复使用凭证和密钥。

如果您没有现有的 IAM 角色或密钥,则可以在将数据库数据源连接到时使用控制台创建新的 IAM 角色和 Secrets Manager 密钥 Amazon Kendra。如果您使用的是 API,则必须提供现有 IAM 角色和 Secrets Manager 密钥的 ARN 以及索引 ID。

连接说明

要 Amazon Kendra 连接到数据库数据源,必须提供数据库数据源的必要详细信息, Amazon Kendra 以便访问您的数据。如果您尚未为配置数据库 Amazon Kendra,请参见先决条件

Console

Amazon Kendra 连接到数据库

  1. 登录 AWS Management Console 并打开Amazon Kendra 控制台

  2. 在左侧导航窗格中,选择索引,然后从索引列表中选择要使用的索引。

    注意

    您可以选择在索引设置下配置或编辑您的用户访问控制设置。

  3. 入门页面上,选择添加数据来源

  4. 添加数据源页面上,选择数据库连接器,然后选择添加连接器。如果使用版本 2(如果适用),请选择带有 “V2.0” 标签的数据库连接器

  5. 指定数据来源详细信息页面上输入以下信息:

    1. 名称和描述中,在数据来源名称中输入您的数据来源的名称。可以包含连字符,但不能包含空格。

    2. (可选)说明 - 为数据来源输入说明。

    3. 使用默认语言-选择一种语言来筛选文档中的索引。除非另行指定,否则语言默认为英语。在文档元数据中指定的语言会覆盖所选语言。

    4. 标签中,用于添加新标签-包括可选标签以搜索和筛选您的资源或跟踪您的 AWS 成本。

    5. 选择下一步

  6. 定义访问权限和安全性页面上,请输入以下信息:

    1. 端点 - DNS 主机名、IPv4 地址或 IPv6 地址。

    2. 端口 - 端口号。

    3. 数据库 - 数据库名称。

    4. 表名 - 表名。

    5. 对于身份验证类型,请选择现有新建,以便存储您的数据库身份验证凭证。如果您选择创建新密钥,则会打开 AWS Secrets Manager 密钥窗口。

      1. 创建 AWS Secrets Manager 密钥窗口中输入以下信息:

        1. 密钥名称 - 密钥的名称。前缀 “AmazonKendra-database-” 会自动添加到您的密钥名称中。

        2. 对于用户名密码 - 输入您从数据库账户中复制的身份验证凭证值。

        3. 选择保存身份验证

    6. 虚拟私有云(VPC)- 您可以选择使用 VPC。如果是这样,则必须添加子网VPC 安全组

      注意

      您必须使用私有子网。如果您的 RDS 实例位于您的 VPC 的公有子网中,则可以创建一个私有子网,该子网可以出站访问公有子网中的 NAT 网关。VPC 配置中提供的子网必须位于美国西部(俄勒冈州)、美国东部(弗吉尼亚北部)和欧洲(爱尔兰)。

    7. IAM ro le —选择现有 IAM 角色或创建新 IAM 角色来访问您的存储库凭据和索引内容。

      注意

      IAM 用于索引的角色不能用于数据源。如果您不确定是否将现有角色用于编制索引或常见问题解答,为了避免出错,请选择创建新角色

    8. 选择下一步

  7. 配置同步设置页面上,请输入以下信息:

    1. 根据您的使用案例,选择 Aurora MySQLMySQLAurora PostgreSQLPostgreSQL

    2. 用双引号将 SQL 标识符括起来 - 选择使用双引号将 SQL 标识符括起来。例如,“columnName”。

    3. ACL 列变更检测列-配置 Amazon Kendra 用于变更检测的列(例如,上次更新的列)和您的访问控制列表。

    4. 在 “同步运行计划” 中,“频率”-选择与数据源同步的频率。 Amazon Kendra

    5. 选择下一步

  8. 设置字段映射页面上,请输入以下信息:

    1. Amazon Kendra 默认字段映射-从 Amazon Kendra 生成的默认数据源字段中选择要映射到索引的字段。必须为 document_iddocument_body 添加数据库列

    2. 自定义字段映射 - 要添加自定义数据来源字段以创建要映射到的索引字段名称和字段数据类型。

    3. 选择下一步

  9. 查看和创建页面上,请检查输入的信息是否正确,然后选择添加数据来源。您也可以选择在此页面上编辑信息。成功添加数据来源后,您的数据来源将显示在数据来源页面上。

API

Amazon Kendra 连接到数据库

您必须指定以下 DatabaseConfigurationAPI:

  • ColumnConfiguration— 有关索引应从数据库中从何处获取文档信息的信息。有关更多详细信息,请参阅ColumnConfiguration。必须指定 DocumentDataColumnName(文档正文或朱文本)、DocumentIdColumnNameChangeDetectingColumn(例如,上次更新的列)字段。映射到 DocumentIdColumnName 字段的列必须是整数列。以下示例显示数据库数据来源的简单列配置:

    "ColumnConfiguration": { "ChangeDetectingColumns": [ "LastUpdateDate", "LastUpdateTime" ], "DocumentDataColumnName": "TextColumn", "DocumentIdColumnName": "IdentifierColumn", "DocoumentTitleColumnName": "TitleColumn", "FieldMappings": [ { "DataSourceFieldName": "AbstractColumn", "IndexFieldName": "Abstract" } ] }
  • ConnectionConfiguration— 连接数据库所需的配置信息。有关更多详细信息,请参阅ConnectionConfiguration

  • DatabaseEngineType— 运行数据库的数据库引擎的类型。的DatabaseHost字段ConnectionConfiguration必须是数据库的 Amazon Relational Database Service (Amazon RDS) 实例终端节点。不要使用集群端点。

  • 亚马逊秘密资源名称 (ARN)-提供包含数据库账户身份验证凭证的 Secrets Manager 密钥的亚马逊资源名称 (ARN)。密钥必须使用具有以下键的 JSON 结构存储:

    { "username": "user name", "password": "password" }

    以下示例显示数据库配置,包括密钥 ARN。

    "DatabaseConfiguration": { "ConnectionConfiguration": { "DatabaseHost": "host.subdomain.domain.tld", "DatabaseName": "DocumentDatabase", "DatabasePort": 3306, "SecretArn": "arn:aws:secretmanager:region:account ID:secret/secret name", "TableName": "DocumentTable" } }
    注意

    我们建议您定期刷新或轮换您的凭证和密码。为了安全起见,请仅提供必要的访问权限级别。我们建议不要跨数据来源以及连接器版本 1.0 和 2.0(如果适用)重复使用凭证和密钥。

  • IAM ro le —指定RoleArn何时调用CreateDataSource以向 IAM 角色提供访问您的 Secrets Manager 密钥和调用数据库连接器所需的公共 API 的权限,以及 Amazon Kendra。有关更多信息,请参阅数据库数据来源的IAM 角色

您还可以添加以下可选功能:

  • 虚拟私有云(VPC)- 在数据来源配置中指定 VpcConfiguration。请参阅配置 Amazon Kendra 以使用 VPC

    注意

    您只能使用私有子网。如果您的 RDS 实例位于您的 VPC 的公有子网中,则可以创建一个私有子网,该子网可以出站访问公有子网中的 NAT 网关。VPC 配置中提供的子网必须位于美国西部(俄勒冈州)、美国东部(弗吉尼亚北部)和欧洲(爱尔兰)。

  • 字段映射 - 选择将数据库数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息,请参阅映射数据来源字段

    注意

    要搜索您的文档,必须输入文档正文字段或文档正文等效字段。 Amazon Kendra 您必须将数据源中的文档正文字段名称映射到索引字段名称_document_body。其他所有字段均为可选字段。

  • 用户上下文筛选和访问控制-如果您的文档有 ACL,则会Amazon Kendra 抓取文档的访问控制列表 (ACL)。ACL 信息用于根据用户或用户组对文档的访问权限来筛选搜索结果。有关更多信息,请参阅用户上下文筛选