

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

# 离线迁移过程：Apache Cassandra 到 Amazon Keyspaces
<a name="migrating-offline"></a>

离线迁移适用于能够容忍停机一段时间来执行迁移的情况。在企业中，通常会有补丁维护时段、大型版本维护时段或需要停机一段时间来执行硬件升级或重大升级等。离线迁移可以利用此时段复制数据，并将应用程序流量从 Apache Cassandra 切换到 Amazon Keyspaces。

离线迁移可以减少对应用程序的修改，因为它不需要与 Cassandra 和 Amazon Keyspaces 进行通信。此外，暂停数据流后，无需保持变更即可复制确切的状态。

在本示例中，我们使用 Amazon Simple Storage Service（Amazon S3）作为离线迁移期间数据的暂存区域，以最大限度地减少停机时间。您可以使用 Spark Cassandra 连接器和 AWS Glue 将在 Amazon S3 中以 Parquet 格式存储的数据自动导入到 Amazon Keyspaces 表中。以下小节将简要概述此过程。您可以在 [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. 第三个作业是导入增量数据。

**如何在亚马逊虚拟私有云中从 EC2 在亚马逊上运行的 Cassandra 离线迁移到亚马逊密钥空间**

1. 首先AWS Glue，您可以使用从 Cassandra 以 Parquet 格式导出表格数据，然后将其保存到 Amazon S3 存储桶中。您需要使用指向运行 Cassandra 的 Amazon EC2 实例所在的 VPC 的AWS Glue连接器来运行AWS Glue作业。然后，使用 Amazon S3 私有端点，您可以将数据保存到 Amazon S3 存储桶。

   下图说明了这些步骤。  
![\[使用将 Apache Cassandra 数据从在 VPC 中 EC2 运行的亚马逊迁移到亚马逊 S3 存储桶。AWS Glue\]](http://docs.aws.amazon.com/zh_cn/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_cn/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_cn/keyspaces/latest/devguide/images/migration/migration-import.png)

有关离线迁移过程的更多信息，请参阅 [Amazon Key](https://catalog.workshops.aws/unlocking-amazonkeyspaces/en-US/keyspaces-with-glue) spaces with 研讨会 AWS Glue