

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

# 从 KCL 3.x 迁移到单表格式
<a name="kcl-migration-from-3-3-5"></a>

如果您使用所有三个 DynamoDB 元数据表（租赁表、工作器指标表和协调器状态表）运行 KCL 3.x，则可以迁移到单表格式以将所有元数据合并到租赁表中。

**先决条件**
+ 您的应用程序运行包含所有三个元数据表的 KCL 3.x。
+ 您的应用程序是稳定的，所有工作人员都很健康。
+ 您的应用程序已完成 KCL 3.x 迁移，但尚未进行配置。`CoordinatorConfig.clientVersionConfig`请勿同时执行表迁移和从 2.x 到 3.x 的客户端版本迁移。

**要从 KCL 3.x 迁移到单表格式，请遵循两阶段部署流程**  


1. **第 1 阶段：**将项目依赖关系更新到 KCL 3.5 或更高版本。在`migrateAllEntitiesToLeaseTable`设置为`false`（默认）的情况下部署。此部署会安装支持单表格式但不会激活迁移的新代码。

1. 等待所有工作人员的部署完成。监控`TableMigration3.5`协调器状态条目，直到到`TableMigrationStatus`达`DEPLOYED`。确认没有回归并留出足够的烘焙时间。

1. **第 2 阶段：**在`migrateAllEntitiesToLeaseTable`设置为的情况下再次部署`true`。此部署开始向单表格式的迁移。

1. 监控`TableMigrationStatus`. 领导者工作人员通过 “已部署”、“待定” 和 “完成” 来推进状态。

1. 状态变为 COMPLETE 后，确认没有回归，并留出额外的烘焙时间以确保无需回滚。

1. 手动删除旧的工作器指标和协调器状态表。KCL 不会自动删除这些表，而只是停止使用它们。如果您已配置`CoordinatorConfig.coordinatorStateTableConfig`或`LeaseManagementConfig.workerUtilizationAwareAssignmentConfig.workerMetricsTableConfig`，则可以删除这些配置，因为它们已被弃用。

**重要**  
迁移到达 “完成” 状态后，请勿回滚应用程序。完成后，应用程序仅在单表模式下运行。即使代码回滚到第 1 阶段也不会切换回多个表，配置会被忽略，应用程序继续仅使用租用表。

有关迁移状态和回滚选项的详细信息，请参阅[KCL 的单表格式](kcl-single-table-format.md)。