我需要将用户的测验完成状态保存到一个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}}
你能给我介绍一下数据迁移吗?
提前谢谢!
1条答案
按热度按时间smdncfj31#
可以使用外部工具执行此操作,例如:
Spark与SparkCassandra连接器-在这种情况下,你可以在同一个程序内执行所有操作(如果是一次性操作,那么你可以做的一切在Spark壳);
使用一些工具,比如datastax bulk loader(dsbulk),将数据卸载到csv或json文件中,用一些工具(sed/awk/…)转换它们,然后重新加载。