使用 Amazon OpenSearch Ingestion 在域名和集合之间迁移数据 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon OpenSearch Ingestion 在域名和集合之间迁移数据

您可以使用 OpenSearch 摄取管道在亚马逊 OpenSearch 服务域或 OpenSearch 无服务器 VPC 集合之间迁移数据。为此,您需要设置一个管道,在该管道中将一个域或集合配置为源,将另一个域或集合配置为接收器。这可以有效地将您的数据从一个域或集合迁移到另一个域或集合。

要迁移数据,您必须拥有以下资源:

  • 源 OpenSearch 服务域或 OpenSearch 无服务器 VPC 集合。此域或集合包含您要迁移的数据。如果您使用的是域名,则该域名必须运行 OpenSearch 版本 1.0 或更高版本,或者运行 Elasticsearch 版本 7.4 或更高版本。该域还必须具有向您的管道角色授予相应权限的访问策略。

  • 您要将数据迁移到的单独域或 VPC 集合。此域或集合将充当管道接收器

  • 一个管道角色, OpenSearch Ingestion 将使用它来读取和写入你的收藏或域名。您可以在工作流配置中包含此角色的 Amazon 资源名称 (ARN)。有关更多信息,请参阅以下资源:

限制

将 OpenSearch 服务域或 OpenSearch 无服务器集合指定为接收器时,以下限制适用:

  • 一个管道不能写入多个 VPC 域。

  • 您只能将数据迁移到使用 VPC 访问权限的 OpenSearch 无服务器集合或从中迁移数据。不支持公共馆藏。

  • 您不能在单个管道配置中指定 VPC 和公共域的组合。

  • 在单个管道配置中,您最多可以有 20 个非管道接收器。

  • 在单个管道配置 Amazon Web Services 区域 中,最多可以指定三个不同的接收器。

  • 如果具有多个接收器的管道中断时间过长,或者没有配置足够的容量来接收传入的数据,则随着时间的推移,具有多个接收器的管道的处理速度可能会降低。

OpenSearch 服务即来源

您指定为源的域或集合是数据迁移来源。

在 IAM 中创建管道角色

要创建 In OpenSearch gestion 管道,必须先创建一个管道角色来授予域名或集合之间的读写权限。为此,请执行以下步骤:

  1. 在 IAM 中创建新的权限策略以附加到管道角色。确保您允许从源代码读取和写入接收器的权限。有关为 OpenSearch 服务域设置 IAM 管道权限的更多信息,请参阅授予 Amazon OpenSearch Ingestion 管道访问域名的权限授予 Amazon OpenSearch Ingestion 管道访问集合的权限

  2. 在管道角色中指定以下权限以从源代码读取:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"es:ESHttpGet", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_cat/indices", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search" ] }, { "Effect":"Allow", "Action":"es:ESHttpPost", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/point_in_time", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/scroll" ] }, { "Effect":"Allow", "Action":"es:ESHttpDelete", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/point_in_time", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll" ] } ] }

创建管道

将策略附加到管道角色后,使用AWSOpenSearchDataMigrationPipeline迁移蓝图创建管道。该蓝图包括用于在 OpenSearch 服务域或集合之间迁移数据的默认配置。有关更多信息,请参阅 使用蓝图创建管道

注意

OpenSearch Ingestion 使用您的源域版本和发行版来确定使用哪种机制进行迁移。某些版本支持该point_in_time选项。 OpenSearch Serverless 之所以使用该search_after选项,是因为它不支持point_in_timescroll

迁移过程中可能正在创建新索引,也可能在迁移过程中更新文档。因此,您可能需要对域索引数据执行一次或多次扫描,以获取新的或更新的数据。

通过在管道配置中配置 index_read_countinterval,指定要运行的扫描次数。以下示例说明如何执行多次扫描:

scheduling: interval: "PT2H" index_read_count: 3 start_time: "2023-06-02T22:01:30.00Z"

OpenSearch Ingestion 使用以下配置来确保您的数据写入同一个索引并保持相同的文档 ID:

index: "${getMetadata(\"opensearch-index\")}" document_id: "${getMetadata(\"opensearch-document_id\")}"

指定多个 OpenSearch 服务域接收器

您可以指定多个公共 OpenSearch 服务域作为数据的目的地。您可以使用此功能执行条件路由或将传入的数据复制到多个 OpenSearch 服务域。您最多可以指定 10 个不同的公共 OpenSearch 服务域作为接收器。

在以下示例中,传入的数据有条件地路由到不同的 OpenSearch 服务域:

... route: - 2xx_status: "/response >= 200 and /response < 300" - 5xx_status: "/response >= 500 and /response < 600" sink: - opensearch: hosts: [ "https://search-response-2xx.us-east-1.es.amazonaws.com" ] aws: sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" region: "us-east-1" index: "response-2xx" routes: - 2xx_status - opensearch: hosts: [ "https://search-response-5xx.us-east-1.es.amazonaws.com" ] aws: sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" region: "us-east-1" index: "response-5xx" routes: - 5xx_status

将数据迁移到 OpenSearch 无服务器 VPC 集合

您可以使用 OpenSearch Ingestion 将数据从源 OpenSearch 服务域或 OpenSearch 无服务器集合迁移到 VPC 集合接收器。您必须在管道配置中提供网络访问策略。有关将数据提取到 OpenSearch 无服务器 VPC 集合的更多信息,请参阅。教程:使用 Amazon Ingestion 将数据提取到集合中 OpenSearch

将数据迁移到 VPC 集合
  1. 创建 OpenSearch 无服务器集合。有关说明,请参阅教程:使用 Amazon Ingestion 将数据提取到集合中 OpenSearch

  2. 为集合创建网络策略,指定对集合端点和控制面板端点的 VPC 访问权限。有关说明,请参阅Amazon OpenSearch Serverless 的网络访问

  3. 如果您还没有管道角色,请创建一个。有关说明,请参阅管道角色

  4. 创建管道。有关说明,请参阅 使用蓝图创建管道