离线迁移流程:Apache Cassandra 到 Amazon Keyspaces - Amazon Keyspaces(Apache Cassandra 兼容)

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

离线迁移流程:Apache Cassandra 到 Amazon Keyspaces

当您可以承受执行迁移所需的停机时间时,离线迁移是合适的。在企业中,通常会有用于修补的维护窗口、大型版本的维护窗口或硬件升级或重大升级的停机时间。离线迁移可以使用此窗口复制数据并将应用程序流量从 Apache Cassandra 切换到 Amazon Keyspaces。

离线迁移可以减少对应用程序的修改,因为它不需要同时与 Cassandra 和 Amazon Keyspaces 通信。此外,暂停数据流后,可以在不保持突变的情况下复制确切的状态。

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

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

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

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

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

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

    下图说明了这些步骤。

    使用将 Apache Cassandra 数据从在中EC2运行的亚马逊迁移VPC到亚马逊 S3 存储桶。 AWS Glue
  2. 对 Amazon S3 存储桶中的数据进行洗牌,以提高数据的随机性。均匀导入的数据允许在目标表中分配更多的流量。

    从具有大分区(超过 1000 行的分区)的 Cassandra 导出数据时需要执行此步骤,以避免在将数据插入到 Amazon Keyspaces 时出现热键模式。热键问题会导致 WriteThrottleEvents Amazon Keyspaces 中出现并导致加载时间延长。

    AWS Glue 任务将数据从 Amazon S3 存储桶中洗牌,然后将其返回到另一个 Amazon S3 存储桶中。
  3. 使用其他 AWS Glue 任务将数据从 Amazon S3 存储桶导入到 Amazon Keyspaces。Amazon S3 存储桶中经过洗牌的数据以 Parquet 格式存储。

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

有关离线迁移过程的更多信息,请参阅 Amazon Key spaces with 研讨会 AWS Glue