本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
离线迁移流程: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
一项ETL任务,用于提取和转换CQL数据并将其存储在 Amazon S3 存储桶中。
第二个任务将存储桶中的数据导入到 Amazon Keyspaces。
第三个任务是导入增量数据。
如何在亚马逊虚拟私有云中从EC2在亚马逊上运行的 Cassandra 离线迁移到亚马逊密钥空间
首先 AWS Glue ,您可以使用从 Cassandra 以 Parquet 格式导出表格数据,然后将其保存到 Amazon S3 存储桶中。您需要使用连接器运行 AWS Glue 作业,该 AWS Glue 连接器指向运行 Cassandra VPC 的 Amazon EC2 实例所在的位置。然后,使用 Amazon S3 私有终端节点,您可以将数据保存到 Amazon S3 存储桶。
下图说明了这些步骤。
对 Amazon S3 存储桶中的数据进行洗牌,以提高数据的随机性。均匀导入的数据允许在目标表中分配更多的流量。
从具有大分区(超过 1000 行的分区)的 Cassandra 导出数据时需要执行此步骤,以避免在将数据插入到 Amazon Keyspaces 时出现热键模式。热键问题会导致
WriteThrottleEvents
Amazon Keyspaces 中出现并导致加载时间延长。使用其他 AWS Glue 任务将数据从 Amazon S3 存储桶导入到 Amazon Keyspaces。Amazon S3 存储桶中经过洗牌的数据以 Parquet 格式存储。
有关离线迁移过程的更多信息,请参阅 Amazon Key