

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從 KCL 3.x 遷移至單一資料表格式
<a name="kcl-migration-from-3-3-5"></a>

如果您使用所有三個 DynamoDB 中繼資料資料表 （租用資料表、工作者指標資料表和協調器狀態資料表） 執行 KCL 3.x，則可以遷移至單一資料表格式，將所有中繼資料合併到租用資料表。

**先決條件**
+ 您的應用程式會使用所有三個中繼資料表執行 KCL 3.x。
+ 您的應用程式穩定且所有工作者都正常運作。
+ 您的應用程式已完成 KCL 3`CoordinatorConfig.clientVersionConfig`.x 遷移，且未設定 。請勿同時執行資料表遷移和從 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`。領導者工作者透過 DEPLOYED、待定和完成來推進狀態。

1. 狀態達到 COMPLETE 後，請確認沒有迴歸，並允許額外的製作時間，以確保不需要轉返。

1. 手動刪除舊的工作者指標和協調器狀態資料表。KCL 不會自動刪除這些資料表，只會停止使用它們。如果您已設定 `CoordinatorConfig.coordinatorStateTableConfig`或 `LeaseManagementConfig.workerUtilizationAwareAssignmentConfig.workerMetricsTableConfig`，您可以在這些組態已棄用時將其移除。

**重要**  
在遷移達到 COMPLETE 狀態之後，請勿復原應用程式。在 COMPLETE 之後，應用程式只會以單一資料表模式運作。即使程式碼轉返至階段 1 也不會切換回多個資料表，也會忽略組態，而且應用程式只會繼續使用租用資料表。

如需遷移狀態和復原選項的詳細資訊，請參閱 [KCL 的單一資料表格式](kcl-single-table-format.md)。