

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

# 離線遷移程序：Apache Cassandra 到 Amazon Keyspaces
<a name="migrating-offline"></a>

當您可以負擔執行遷移的停機時間時，離線遷移是合適的。企業之間通常會有修補、大型版本或停機時間的維護時段，以進行硬體升級或主要升級。離線遷移可以使用此視窗來複製資料，並將應用程式流量從 Apache Cassandra 切換到 Amazon Keyspaces。

離線遷移可減少對應用程式的修改，因為它不需要同時與 Cassandra 和 Amazon Keyspaces 通訊。此外，在資料流程暫停的情況下，可以在不維護變動的情況下複製確切狀態。

在此範例中，我們使用 Amazon Simple Storage Service (Amazon S3) 做為離線遷移期間資料的預備區域，將停機時間降至最低。您可以使用 Spark Cassandra 連接器 和 ，將您以 Parquet 格式存放在 Amazon S3 中的資料自動匯入 Amazon Keyspaces 資料表AWS Glue。下一節將展示程序的高階概觀。您可以在 [Github](https://github.com/aws-samples/amazon-keyspaces-examples/tree/main/scala/datastax-v4/aws-glue) 上找到此程序的程式碼範例。

使用 Amazon S3 從 Apache Cassandra 到 Amazon Keyspaces 的離線遷移程序，AWS Glue需要下列AWS Glue任務。

1. 擷取和轉換 CQL 資料並將其存放在 Amazon S3 儲存貯體的 ETL 任務。

1. 將資料從儲存貯體匯入 Amazon Keyspaces 的第二個任務。

1. 匯入增量資料的第三個任務。

**如何在 Amazon Virtual Private Cloud 中從在 Amazon EC2 上執行的 Cassandra 執行離線遷移至 Amazon Keyspaces Amazon Virtual Private Cloud**

1. 首先，使用 從 Cassandra 以 Parquet 格式AWS Glue匯出資料表資料，並將其儲存至 Amazon S3 儲存貯體。您需要使用連接至執行 Cassandra 之 Amazon EC2 執行個體所在 VPC 的AWS Glue連接器來執行AWS Glue任務。然後，使用 Amazon S3 私有端點，您可以將資料儲存到 Amazon S3 儲存貯體。

   下圖說明這些步驟。  
![\[使用 從 VPC 中執行的 Amazon EC2 將 Apache Cassandra 資料遷移至 Amazon S3 儲存貯體AWS Glue。\]](http://docs.aws.amazon.com/zh_tw/keyspaces/latest/devguide/images/migration/migration-export.png)

1. 隨機播放 Amazon S3 儲存貯體中的資料，以改善資料隨機化。平均匯入的資料允許目標資料表中的更多分散式流量。

   從具有大型分割區 （超過 1000 個資料列的分割區） 的 Cassandra 匯出資料時需要此步驟，以避免將資料插入 Amazon Keyspaces 時出現熱鍵模式。熱鍵問題會在 Amazon Keyspaces `WriteThrottleEvents`中造成，並導致載入時間增加。  
![\[AWS Glue任務會從 Amazon S3 儲存貯體隨機播放資料，並將其傳回至另一個 Amazon S3 儲存貯體。\]](http://docs.aws.amazon.com/zh_tw/keyspaces/latest/devguide/images/migration/migration-shuffle.png)

1. 使用另一個AWS Glue任務將資料從 Amazon S3 儲存貯體匯入 Amazon Keyspaces。Amazon S3 儲存貯體中的隨機資料會以 Parquet 格式儲存。  
![\[AWS Glue匯入任務會從 Amazon S3 儲存貯體取得隨機資料，並將其移至 Amazon Keyspaces 資料表。\]](http://docs.aws.amazon.com/zh_tw/keyspaces/latest/devguide/images/migration/migration-import.png)

如需離線遷移程序的詳細資訊，請參閱研討會 [ Amazon Keyspaces withAWS Glue](https://catalog.workshops.aws/unlocking-amazonkeyspaces/en-US/keyspaces-with-glue)