使用 Amazon OpenSearch 将服务集群作为的目标Amazon Database Migration Service - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用 Amazon OpenSearch 将服务集群作为的目标Amazon Database Migration Service

您可以使用Amazon DMS将数据迁移到 Amazon OpenSearch 服务(OpenSearch Service)。 OpenSearch 服务是一种托管服务,可以让用户能够轻松地部署、操作和扩展 OpenSearch 服务集群。

In OpenSearch 服务,您使用索引和文档。网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的指数是一个文档的集合,文档是一个 JSON 对象,包含标量值、数组和其他对象。OpenSearch提供了基于 JSON 的查询语言,以便您可以查询索引中的数据并检索对应的文档。

何时Amazon DMS为目标终端节点创建索引 OpenSearch Service,它会从源终端节点为每个表创建一个索引。创建 OpenSearch 服务指数取决于多个因素。这些因素包括所创建的索引数量、这些索引中的数据总量,以及少量元数据。OpenSearch存储每个文档的存储。

配置 OpenSearch 具有适合您的迁移范围的计算和存储资源的服务集群。建议您根据要使用的复制任务考虑以下因素:

  • 对于完全数据加载,请考虑您要迁移的数据总量以及传输速度。

  • 要复制持续更改,请考虑更新频率,以及您的 end-to-end 延迟要求。

此外,在您的 OpenSearch 集群,密切关注文档计数。

多线程完全加载任务设置

为了帮助提高转移速度,Amazon DMS支持多线程完全加载到 OpenSearch 服务目标集群。Amazon DMS使用包含下列内容的任务设置支持此多线程处理:

  • MaxFullLoadSubTasks— 使用此选项指示要 parallel 加载的表的最大数目。DMS 将各个表加载到其对应 OpenSearch 使用专用的子任务的服务目标索引。默认值为 8;最大值为 49。

  • ParallelLoadThreads— 使用此选项指定下列内容的线程数:Amazon DMS用于将每个表加载到其中 OpenSearch 服务目标索引。的最大值 OpenSearch 服务目标是 32。您可以请求提高此最大值限制。

    注意

    如果您不更改 ParallelLoadThreads 的默认值 (0),Amazon DMS 一次传输一个记录。此方法给您带来了过多的负载 OpenSearch 服务集群。确保您将此选项设置为 1 或更高。

  • ParallelLoadBufferSize— 使用此选项指定在缓冲区(parallel 加载线程将数据加载到)中存储的最大记录数。 OpenSearch 服务目标。默认值是 50。最大值为 1,000。将此设置与 ParallelLoadThreads 一起使用;仅在有多个线程时ParallelLoadBufferSize 才有效。

有关 DMS 加载的更多信息 OpenSearch 使用多线程的服务群集,请参阅Amazon博客文章扩展 Amazon OpenSearch 服务Amazon Database Migration Service迁移.

多线程 CDC 加载任务设置

对于更改数据捕获 (CDC),您可以提高对于 OpenSearch 服务目标群集使用任务设置修改PutRecordsAPI 调用。为此,您可以使用 ParallelApply* 任务设置来指定并发线程的数量、每个线程的队列数以及要存储在缓冲区中的记录数。例如,假设您希望执行 CDC 加载 parallel 且要并行应用 32 个线程。您还希望对于每个线程访问 64 个队列,每个缓冲区存储 50 条记录。

注意

Support 使用ParallelApply*CDC 到亚马逊期间的任务设置 OpenSearch 服务目标终端节点可在Amazon DMS版本 3.4.0 及更高版本。

要提高 CDC 性能,请 Amazon DMS 支持以下任务设置:

  • ParallelApplyThreads— 指定以下内容的并行线程数:Amazon DMS在 CDC 加载期间使用将数据记录推送到 OpenSearch 服务目标终端节点。默认值为零 (0),最大值为 32。

  • ParallelApplyBufferSize— 指定在每个缓冲区队列中存储的最大记录数,以便将并发线程推送到 OpenSearch CDC 加载期间的服务目标终端节点。默认值为 100,最大值为 1,000。当 ParallelApplyThreads 指定多个线程时,请使用此选项。

  • ParallelApplyQueuesPerThread— 指定每个线程访问的队列数,以便从队列中取出数据记录并为 OpenSearch CDC 期间的服务端点。

使用 ParallelApply* 任务设置时, partition-key-type 默认值是表的 primary-key,而不是 schema-name.table-name

从关系数据库表迁移到 OpenSearch 服务索引

Amazon DMS支持将数据迁移到 OpenSearch 服务的标量数据类型。从 Oracle 或 MySQL 等关系数据库迁移到时, OpenSearch 服务,您可能希望重构存储此数据的方式。

Amazon DMS支持以下版本 OpenSearch 服务标量数据类型:

  • 布尔值

  • 日期

  • Float

  • Int

  • 字符串

Amazon DMS 将 Date 类型的数据转换为 String 类型。您可以指定自定义映射来解释这些日期。

Amazon DMS 不支持迁移 LOB 数据类型。

使用 Amazon 的先决条件 OpenSearch 服务作为目标Amazon Database Migration Service

在开始使用之前 OpenSearch 将服务数据库作为的目标Amazon DMS,请确保您创建Amazon Identity and Access Management(IAM) 角色。这个角色应该让Amazon DMS访问 OpenSearch 目标终端节点上的服务索引。以下 IAM 策略中显示了所需的最小访问权限集合。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

您在迁移到时使用的角色 OpenSearch 服务必须具有以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ] }

在上述示例中,替换region使用Amazon区域标识符,account-id与您的Amazon账户 ID,domain-name使用您的 Amazon OpenSearch 服务域。例如,arn:aws:es:us-west-2:123456789012:domain/my-es-domain

使用时的额外连接属性 OpenSearch 服务作为目标Amazon DMS

在设置时 OpenSearch 服务目标终端节点,您可以指定额外的连接属性。额外的连接属性是使用键值对指定的并以分号分隔。

下表介绍了在使用 OpenSearch 将服务实例作为Amazon DMS源。

属性名称 有效值 默认值和描述

fullLoadErrorPercentage

一个大于 0 但不大于 100 的正整数。

10 – 对于完全加载任务,此属性确定任务失败之前允许的错误数阈值。例如,假设源终端节点有 1,500 行且此参数设置为 10。那么,如果在写入到目标终端节点时 Amazon DMS 遇到超过 150 个错误(行数的 10%),任务将失败。

errorRetryDuration

大于 0 的正整数。

300 – 如果目标终端节点出现错误,Amazon DMS 将重试的秒数。否则,任务将失败。

使用 Amazon 时的限制 OpenSearch 服务作为目标Amazon Database Migration Service

使用亚马逊时存在以下限制: OpenSearch 服务作为目标:

  • OpenService 使用动态映射(auto 猜测)来确定用于已迁移数据的数据类型。

  • OpenSearch Service 存储具有唯一 ID 的每个文档。以下是示例 ID。

    "_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

    每个文档 ID 为 64 字节长,因此请将其视为一项存储要求。例如,如果从Amazon DMS来源,结果 OpenSearch 服务索引还需要存储空间来存储额外的 6,400,000 字节。

  • 与 OpenSearch 服务,无法对主键属性进行更新。在将持续复制与更改数据捕获 (CDC) 一起使用时,该限制是非常重要的,因为这可能会导致在目标中包含不需要的数据。在 CDC 模式下,主键映射到 SHA256 值,长度为 32 个字节。它们被转换为人类可读的 64 字节字符串,并用作 OpenSearch 服务文档 ID。

  • 如果Amazon DMS遇到无法迁移的商品,它会将错误消息写入亚马逊。 CloudWatch 日志。这一行为不同于其他 Amazon DMS 目标终端节点将错误写入例外表的行为。

  • Amazon DMS不支持连接到具有使用主用户和密码的精细访问控制功能的 Amazon ES 集群。

Amazon 的目标数据类型 OpenSearch 服务

Amazon DMS 从异构数据库迁移数据时,此服务将数据类型从源数据库映射到称为 Amazon DMS 数据类型的中间数据类型。然后,此服务将中间数据类型映射到目标数据类型。下表显示了各个Amazon DMS数据类型及其映射到中的数据类型 OpenSearch 服务 。

Amazon DMS 数据类型 OpenSearch Service 数据类型

布尔值

布尔值

日期

字符串

时间

date

时间戳

date

INT4

integer

Real4

float

UINT4

integer

有关 Amazon DMS 数据类型的其他信息,请参阅的数据类型AmazonDatabase Migration Service