gpt4 book ai didi

python - 在 Cassandra 中创建现有 key 空间的副本(使用新名称)

转载 作者:太空宇宙 更新时间:2023-11-04 09:47:32 25 4
gpt4 key购买 nike

我在 Cassandra 数据库中有一个键空间。它包含许多表,这些表包含数据。出于 TDD 目的,我需要创建 key 空间的精确副本。我猜这是在 python 中执行的单行代码。有什么想法吗?

最佳答案

如果我理解正确,你想在同一个集群中“复制”一个键空间?没有内置 CQLSH 命令来实现这一点,但它实际上很简单。假设您的源键空间是 keyspace_source,而您的目标键空间是 keyspace_dest

一个。提取 key 空间的架构:

cqlsh -e "DESCRIBE KEYSPACE keyspace_source" > keyspace_source.txt

编辑 keyspace_source.txt 将 keyspace 的名称更改为 keyspace_dest

应用架构:

cqlsh -f 'keyspace_source.txt'

在每个节点上,(同时)创建一个快照

nodetool snapshot -t copy keyspace_source

此时,任何写入 keyspace_source 的表都不会成为 keyspace_dest 的一部分。快照目录将被命名为副本,在这个例子中

在每个节点上,将表的所有快照文件移动到新的键空间(对键空间中的每个表重复):

mv /var/lib/cassandra/data/data/keyspace_source/table_source1-*/snapshot/copy/* /var/lib/cassandra/data/data/keyspace_dest/table_dest1-*/

最后,指示 cassandra 刷新 SSTables(对键空间中的每个表重复):

nodetool refresh keyspace_dest table_dest1

可选地,您可能想要修复 key 空间 keyspace_dest。那只是因为不可能在所有节点上同时运行快照。

关于python - 在 Cassandra 中创建现有 key 空间的副本(使用新名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49166676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com