步骤 4:在亚马逊密钥空间中准备源数据和目标表 - Amazon Keyspaces (for Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

步骤 4:在亚马逊密钥空间中准备源数据和目标表

在此步骤中,您将创建一个包含示例数据和 Amazon Keyspaces 表的源文件。

  1. 创建源文件。您可以选择以下选项之一:

    • 在本教程中,您将使用名为逗号分隔的值 (CSV) 文件keyspaces_sample_table.csv作为数据迁移的源文件。提供的示例文件包含名为的表的几行数据book_awards

      1. 下载示例 CSV 文件 (keyspaces_sample_table.csv) 包含在以下存档文件中samplemigration.zip。解压缩存档并记下路径keyspaces_sample_table.csv

    • 如果您想按照自己的 CSV 文件将数据写入 Amazon Keyspaces,请确保数据是随机化的。直接从数据库读取或导出到平面文件的数据通常按分区和主键排序。将有序数据导入 Amazon Keyspaces 可能会导致将其写入较小的 Amazon Keyspaces 分区段,从而导致流量分布不均匀。这可能会导致性能下降和错误率更高。

      相比之下,随机化数据通过更均匀地在分区之间分配流量,有助于利用 Amazon Keyspaces 的内置负载平衡功能。您可以使用各种工具对数据进行随机化。举一个使用开源工具的例子舒夫,参见步骤 2:准备数据在数据迁移教程中。以下是一个示例,显示了如何将数据随机排列DataFrame

      import org.apache.spark.sql.functions.randval shuffledDF = dataframe.orderBy(rand())
  2. 在 Amazon 密钥空间中创建目标密钥空间和表。

    1. 使用以下方式连接到亚马逊密钥空间cqlsh,并将以下示例中的服务终端节点、用户名和密码替换为您自己的值。

      cqlsh cassandra.us-east-2.amazonaws.com 9142 -u "111122223333" -p "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" --ssl
    2. 用名字创建一个新的密钥空间catalog如以下示例所示。

      CREATE KEYSPACE catalog WITH REPLICATION = {'class': 'SingleRegionStrategy'};
    3. 在新密钥空间的状态为可用后,使用以下代码创建目标表book_awards。要了解有关异步资源创建以及如何检查资源是否可用的更多信息,请参阅在亚马逊密钥空间中创建密钥空间

      CREATE TABLE catalog.book_awards ( year int, award text, rank int, category text, book_title text, author text, publisher text, PRIMARY KEY ((year, award), category, rank) );