【发布时间】:2018-09-22 17:15:49
【问题描述】:
我们正在从旧版数据库迁移到 Cassandra。
在旧数据库中,每当新项目或分析开始时,我们都会克隆现有数据库并为项目/分析创建一个新数据库。
我们也想对 Cassandra 做同样的事情。 Cassandra 文章建议复制键空间作为最佳解决方案。
复制键空间的最佳方法是什么?
我们也更喜欢复制键空间是为了避免从旧键空间“卸载”和“加载”到新键空间,因为我们正在对这个过程进行 wiki-ing,我们将在附近的键空间中命中数百万条记录未来。
目前我们做的步骤如下:
- 创建密钥空间的快照
- 创建新的 KeySpace (${NEW_KEYSPACE}) 和表
- 将 SNAPSHOT/*.db 文件复制到 $CASSANDRA_HOME/data/data/${NEW_KEYSPACE} 中对应的表文件夹中
- 修复 KeySpace
- 刷新 KeySpace 和表格
让我们知道,这是正确的方法还是我们有更好的方法。
【问题讨论】:
-
我不清楚你是否想要新键空间中的数据。如果不需要数据,则可以运行 describe 命令获取键空间结构
-
我们需要复制数据。同意,如果不需要数据,它只是再次创建表。
-
那么您想在不关闭节点的情况下执行此操作吗?您的步骤对我来说看起来不错,但我会在修复之前刷新密钥空间。