使用 AWS DMS 将 RDBMS 数据库迁移到 Amazon Redshift 有哪些最佳实践?

1 分钟阅读
0

我有一个关系数据库管理系统 (RDBMS) 数据库,我想使用 AWS Database Migration Service (AWS DMS) 将其迁移到 Amazon Redshift。将 RDBMS 数据库迁移到 Amazon Redshift 时,可以遵循哪些最佳实践?

解决方案

使用本文中的最佳实践来帮助您使用 AWS DMS 将 RDBMS 数据库迁移到 Amazon Redshift。

  • 将数据迁移到 Amazon Redshift 端点时,会结合使用并行加载与表设置规则。有关使用并行加载以及该功能如何加快迁移速度的详细信息,请参阅对选定的表、视图和集合使用并行加载
  • AWS DMS 3.4.5 及更高版本支持在完全加载到 Amazon Redshift 目标端点期间使用 ParallelLoad 任务设置。有关更多信息,请参阅适用于 Amazon Redshift 的多线程满负载任务设置
  • 如果您要将大量数据迁移到 Amazon Redshift,请增加 maxFileSize 和 fileTransferUploadStreams 的端点属性值。这样做有助于提高满负载性能。然后,增加 CommitRate 值以提高性能。
  • 当您使用 Amazon Redshift 作为数据库的目标时,由于 AWS DMS 不支持完整 Lob 模式,因此请务必将 LobMaxSize 配置为适当的值。
  • 请确保您的 Amazon Redshift 表具有主键。如果目标表没有主键,则在 BatchApply 模式下进行插入。但是,由于更新和删除操作会逐一应用,因此会影响性能。因此,请确保 AWS DMS 将 CDC 数据批量迁移到 Amazon Redshift 目标,以避免出现任何性能问题。
  • 根据工作负载调整批量应用设置,以减少目标上的提交数量。批量应用设置包括 BatchApplyTimeoutMin、BatchApplyTimeoutMax 和 BatchApplyMemoryLimit。
  • 使用 BatchSplitSize 设置在单个批次中所应用更改的最大次数。默认值为 0,这意味着没有应用限制。
  • 使用适当的分配和排序键创建目标 Amazon Redshift 表。当 AWS DMS 为 Amazon Redshift 目标创建表时,它会创建具有默认分配键且没有排序键的表。Amazon Redshift 根据排序键,按排序顺序将数据存储在磁盘上。Amazon Redshift 查询优化器在确定最佳查询计划时使用排序顺序。因此,当您运行查询时,查询优化器会根据需要将行重新分配到计算节点,以执行任何联接和聚合。有关详细信息,请参阅选择最佳排序键使用数据分配方式
  • 如果事务性工作负载繁重,请使用与此类似的设置。这些示例设置意味着 8000-MB 的批处理缓冲区将在 1800 秒内填满,使用 32 个并行线程,并且最大文件大小为 250-MB。Amazon Redshift 端点设置:
MaxFileSize=250000;

任务设置:

BatchApplyEnabled=true;
BatchSplitSize =8000;
BatchApplyTimeoutMax =1800;
BatchApplyTimeoutMin =1800;
ParallelApplyThreads=32;
ParallelApplyBufferSize=100;
  • 确保 Amazon Redshift 中没有锁定或阻塞的会话。有关更多信息,请参阅如何在 Amazon Redshift 中检测和释放锁定?

  • 使用 Amazon Redshift Workload Management (WLM) 工具来管理您的工作负载。Amazon Redshift WLM 可用于定义多个查询队列,并在运行时将查询路由到相应的队列。有关更多信息,请参阅工作负载管理


相关信息

将 Amazon Redshift 数据库作为 AWS Database Migration Service 目标

如何使用 Amazon Redshift 作为我的 AWS DMS 任务的目标端点?

AWS 官方
AWS 官方已更新 2 年前