本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在本步骤中,您将创建一个包含示例数据和 Amazon Keyspaces 表的源文件。
-
创建源文件。您可以选择以下选项之一:
-
在本教程中,您会使用名为
keyspaces_sample_table.csv
的逗号分隔值 (CSV) 文件作为数据迁移的源文件。提供的示例文件包含名为book_awards
的表中的几行数据。-
下载以下存档文件 samplemigration.zip 中包含的示例 CSV 文件 (
keyspaces_sample_table.csv
)。解压缩存档文件并记下指向keyspaces_sample_table.csv
的路径。
-
-
如果您想使用自己的 CSV 文件将数据写入 Amazon Keyspaces,请确保数据经过随机化处理。直接从数据库读取或导出到平面文件的数据通常按分区和主键排序。将有序的数据导入 Amazon Keyspaces 可能会导致数据被写入较小的 Amazon Keyspaces 分区,从而造成流量分布不均匀。这可能会导致性能降低和错误率上升。
相比之下,将数据随机化有助于更均匀地在分区之间分配流量,从而利用 Amazon Keyspaces 内置的负载均衡功能。您可以使用多种工具将数据随机化。有关使用开源工具 Shuf
的示例,请参阅数据迁移教程中的第 2 步:准备数据,以便使用 DSBulk 上传数据。以下示例展示了如何将数据随机处理为 DataFrame
。import org.apache.spark.sql.functions.randval shuffledDF = dataframe.orderBy(rand())
-
-
在 Amazon Keyspaces 中创建目标键空间和表。
-
使用
cqlsh
连接到 Amazon Keyspaces,并将以下示例中的服务端点、用户名和密码替换成您自己的值。cqlsh
cassandra.us-east-2.amazonaws.com
9142 -u"111122223333"
-p"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
--ssl -
使用以下示例中所示的名称
catalog
创建新的键空间。CREATE KEYSPACE
catalog
WITH REPLICATION = {'class': 'SingleRegionStrategy'}; -
在新键空间变为可用状态后,使用以下代码创建目标表
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) );
-