离线迁移到 Amazon Keyspaces - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

离线迁移到 Amazon Keyspaces

当您可以承受执行迁移所需的停机时间时,离线迁移是合适的。在企业中,通常会有用于修补的维护窗口、大型版本或硬件升级或重大升级的停机时间。离线迁移可以使用此窗口复制数据,并将应用程序流量从 Apache Cassandra 切换到 Amazon Keyspaces。离线迁移可以减少对应用程序的修改,因为它不需要同时与 Cassandra 和 Amazon Keyspaces 通信。此外,暂停数据流后,可以在不保持突变的情况下复制确切的状态。

在本示例中,您在离线迁移期间使用亚马逊简单存储服务 (Amazon S3) Service 作为数据的暂存区,以最大限度地减少停机时间。你可以使用 Spark Cassandra 连接器将你在 Amazon S3 中以 Parquet 格式存储的数据自动导入到亚马逊密钥空间表中。 Amazon Glue下一节将从高层次概述该过程。你可以在 Github 上找到这个过程的代码示例。

使用 Amazon S3 从 Apache Cassandra 到 Amazon Keyspaces 的离线迁移过程 Amazon Glue 需要以下任务。 Amazon Glue

  1. 一项 ETL 任务,用于提取和转换 CQL 数据并将其存储在 Amazon S3 存储桶中。

  2. 第二个任务将存储桶中的数据导入到 Amazon Keyspaces。

  3. 第三个任务是导入增量数据。

如何通过亚马逊虚拟私有云从在亚马逊 EC2 上运行的 Cassandra 离线迁移到亚马逊密钥空间
  1. 首先 Amazon Glue ,您可以使用从 Cassandra 以 Parquet 格式导出表格数据,然后将其保存到 Amazon S3 存储桶中。您需要使用指向运行 Cassandra 的 Amazon EC2 实例所在的 VPC 的 Amazon Glue 连接器来运行 Amazon Glue 作业。然后,使用 Amazon S3 私有终端节点,您可以将数据保存到 Amazon S3 存储桶。下图说明了这些步骤。

    该图显示了使用将 Apache Cassandra 数据从在虚拟私有云中运行的 Amazon EC2 实例迁移到 Amazon S3 存储桶所涉及的不同步骤。 Amazon Glue
  2. 对 Amazon S3 存储桶中的数据进行洗牌,以提高数据的随机性。均匀导入的数据允许在目标表中分配更多的流量。从具有大分区(超过 1000 行的分区)的 Cassandra 导出数据时需要执行此步骤,以避免在将数据插入到 Amazon Keyspaces 时出现热键模式。热键问题会导致 WriteThrottleEvents Amazon Keyspaces 中出现并导致加载时间延长。

    该图表显示了包含有序数据的 Amazon S3 存储桶,该 Amazon Glue 任务用于整理数据并将其返回到另一个包含洗牌数据的 Amazon S3 存储桶。
  3. 使用其他 Amazon Glue 任务将数据从 Amazon S3 存储桶导入到 Amazon Keyspaces。Amazon S3 存储桶中经过洗牌的数据以 Parquet 格式存储。

    显示 Amazon Glue 导入任务的示意图,该任务从 Amazon S3 存储桶中提取经过洗牌的数据并将其移动到 Amazon Keyspaces 表中。