源 OpenSearch 服务域或 OpenSearch 无服务器 VPC 集合。此域或集合包含您要迁移的数据。如果您使用的是域名,则该域名必须运行 OpenSearch 版本 1.0 或更高版本,或者运行 Elasticsearch 版本 7.4 或更高版本。该域还必须具有向您的管道角色授予相应权限的访问策略。
您要将数据迁移到的单独域或 VPC 集合。此域或集合将充当管道
接收器
。
一个管道角色, OpenSearch Ingestion 将使用它来读取和写入你的收藏或域名。您可以在工作流配置中包含此角色的 Amazon 资源名称 (ARN)。有关更多信息,请参阅以下资源:
授予 Amazon OpenSearch Ingestion 管道访问集合的权限
将 OpenSearch 服务域或 OpenSearch 无服务器集合指定为接收器时,以下限制适用:
在单个管道配置 AWS 区域 中,最多可以指定三个不同的接收器。
如果具有多个接收器的管道中断时间过长,或者没有配置足够的容量来接收传入的数据,则随着时间的推移,具有多个接收器的管道的处理速度可能会降低。
OpenSearch 服务即来源
您指定为源的域或集合是数据迁移
的
来源。
在 IAM 中创建管道角色
要创建 In OpenSearch gestion 管道,必须先创建一个管道角色来授予域名或集合之间的读写权限。为此,请执行以下步骤:
在 IAM 中创建新的权限策略以附加到管道角色。确保您允许从源代码读取和写入接收器的权限。有关为 OpenSearch 服务域设置 IAM 管道权限的更多信息,请参阅
授予 Amazon OpenSearch Ingestion 管道访问域名的权限
和
授予 Amazon OpenSearch Ingestion 管道访问集合的权限
。
在管道角色中指定以下权限以从源代码读取:
"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_time
或
scroll
。
迁移过程中可能正在创建新索引,也可能在迁移过程中更新文档。因此,您可能需要对域索引数据执行一次或多次扫描,以获取新的或更新的数据。
通过在管道配置中配置
index_read_count
和
interval
,指定要运行的扫描次数。以下示例说明如何执行多次扫描:
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" ]
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" ]
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