如何将Cassandra数据库中现有的列数据迁移到新的列?

问题描述 投票:0回答:1

我需要将用户的测验完成状态保存到Cassandra的表中,以前的表被设计成只能保存一个测验状态,所以如果用户参加了另一个测验,我就不能保存(用户id是主键)。我试图通过添加新的列来实现这个目标,但不知道如何将当前数据迁移到新的列中。

id  | quiz_completed | quiz_skipped
-----+----------------+-------------
 123 |           True |        False 

在新列中

id  | quiz_completed | quiz_skipped | quiz_status
-----+----------------+--------------+-----------------------------------------------------------
 123 |           True |        False | {"XXXX": {"quiz_completed": true, "quiz_skipped": false}, "YYYY": {"quiz_completed": true, "quiz_skipped": false}}

能否请您指导我进行数据迁移?

先谢谢了!

cassandra nosql cassandra-3.0 cassandra-2.1
1个回答
0
投票

你可以使用外部工具来执行,例如。

  1. 例如:Spark与 Spark Cassandra连接器 - 在这种情况下,你可以在同一个程序中执行所有的操作(如果是一次性操作,那么你可以在spark shell中完成所有操作)。
  2. 使用一些工具,比如。DataStax Bulk Loader (DSBulk) 将数据卸载到文件中,如CSV或JSON文件,用一些工具(sedawk...)转换它们,然后再加载回来。
© www.soinside.com 2019 - 2024. All rights reserved.