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

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

步骤 4:在 Amazon Keyspaces 中准备源数据和目标表

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

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

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

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

    • 如果您想使用自己的 CSV 文件将数据写入 Amazon Keyspaces,请确保数据经过随机化处理。直接从数据库读取或导出到平面文件的数据通常按分区和主键排序。将有序的数据导入 Amazon Keyspaces 可能会导致数据被写入较小的 Amazon Keyspaces 分区,从而造成流量分布不均匀。这可能会导致性能降低和错误率上升。

      相比之下,将数据随机化有助于更均匀地在分区之间分配流量,从而利用 Amazon Keyspaces 内置的负载均衡功能。您可以使用多种工具将数据随机化。有关使用开源工具 Shuf 的示例,请参阅数据迁移教程中的步骤 2:准备数据。以下示例展示了如何将数据随机处理为 DataFrame

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

    1. 使用 cqlsh 连接到 Amazon Keyspaces,并将以下示例中的服务端点、用户名和密码替换成您自己的值。

      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。要了解有关异步资源创建以及如何检查资源是否可用的更多信息,请参阅在 Amazon Keyspaces 中创建键空间

      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) );