为什么我的 Amazon Redshift 集群需要很长的时间才能完成经典大小调整?

上次更新时间:2020 年 8 月 20 日

我启动了经典大小调整,但我要么在 Amazon Redshift 集群中看不到进度,要么花费的时间太长。如何更好地估计完成经典大小调整所需的停机时间?

解决方法

Amazon Redshift 集群完成经典大小调整可能会需要几个小时到几天不等的时间,如果出现下列原因,集群的经典大小调整可能需要较长的时间:

  • 源集群上的读取工作负载
  • 正在传输的表的数量和大小
  • 表定义及其偏斜
  • 源集群和目标集群中使用的节点配置(节点数量和类型)

有关更多信息,请参阅调整 Amazon Redshift 中集群的大小中的集群大小调整的详细操作

减少经典大小调整所需的停机时间

要减少经典大小调整所需的时间,请考虑以下方法:

  • 使用 Amazon Redshift 控制台监控大小调整操作的状态。在集群详细信息页面上选择 Status(状态)选项卡。Status(状态)选项卡将显示平均传输速率、已用时间和剩余时间。
  • 修复偏斜的表并选择合适的分配键。有关更多信息,请参阅 Amazon Redshift engineering’s advanced table design playbook: distribution styles and distribution keys
  • 删除未使用的表。要确定未使用的表,请运行 unscanned table summary.sql 脚本。
    注意:未扫描的表摘要仅显示过去几天的最近历史记录。如需捕获更长时间段的使用数据,请使用 SystemTablePersistence 实用工具
  • 使用弹性大小调整。弹性大小调整可以添加或删除现有 Amazon Redshift 集群上的节点,自动将数据重新分配到新节点。由于弹性大小调整不会创建新的集群,因此所需的停机时间明显低于经典大小调整。有关弹性大小调整的详细信息,请参阅调整集群大小

有关优化大小调整性能的更多信息,请参阅 Top 10 performance tuning techniques for Amazon Redshift

经典大小调整问题排查

  • 如果集群在 AWS 命令行界面 (AWS CLI) 中的状态显示为 “NONE”(无),则说明目标集群的预置仍在进行中。请等待系统完成目标集群的预置。复制完成后,状态将变为“IN_PROGRESS”(正在进行)。
  • 如果您收到有关磁盘空间不足的错误消息,则说明目标集群不适合您的数据。这时您需要通过增加节点数量、选择不同的分配方式或不同的节点类型等方法来调整 Amazon Redshift 集群的大小。有关更多信息,请参阅在 Amazon Redshift 中调整集群大小
  • 要在大小调整操作完成前取消操作,请从 Amazon Redshift 控制台的集群详细信息中选择 Cancel resize(取消大小调整)。您也可以通过 AWS CLI 使用 cancel-resize 命令取消此操作。
    注意:如果大小调整操作已经处于最后阶段,您将无法取消此操作。