在Cassandra中执行截断时的最佳实践是什么?

在Cassandra中执行截断时的最佳实践是什么?,cassandra,truncate,cassandra-3.0,Cassandra,Truncate,Cassandra 3.0,我想在群集的多数据中心环境中,对包含大约2500万条记录的多个表执行TRUNCATE。我只是想要一些关于在截断之前/之后采取的步骤的建议,以确保节点之间没有巨大的差异 根据,TRUNCATE删除保存数据的SSTable。这是否意味着我需要在截断之前将一致性级别设置为ALL?操作后是否需要进行nodetool维修 如有任何建议,将不胜感激 cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 在发出此命令之前,请确保所有节点都已启动 只要所有节点保持可用

我想在群集的多数据中心环境中,对包含大约2500万条记录的多个表执行
TRUNCATE
。我只是想要一些关于在截断之前/之后采取的步骤的建议,以确保节点之间没有巨大的差异

根据,TRUNCATE删除保存数据的SSTable。这是否意味着我需要在截断之前将一致性级别设置为
ALL
?操作后是否需要进行
nodetool维修

如有任何建议,将不胜感激

cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4

在发出此命令之前,请确保所有节点都已启动

只要所有节点保持可用状态,Truncate就会自然地分布在集群上

Truncate将自动运行,就像一致性设置为ALL一样,这确保命令仅在所有节点删除其数据后返回,并且在无法访问某个节点时失败


无需修复,因为操作后将不会有任何数据需要修复。

在发出此命令之前,请确保所有节点都已启动

只要所有节点保持可用状态,Truncate就会自然地分布在集群上

Truncate将自动运行,就像一致性设置为ALL一样,这确保命令仅在所有节点删除其数据后返回,并且在无法访问某个节点时失败


不需要修复,因为操作后将不会有任何数据需要修复。

在truncate时忽略一致性级别,前提是所有节点都处于运行状态(至少在当前版本中)。我指的是truncate已超过此前提条件后节点停机的场景。但是,您是正确的,无论设置了什么一致性级别,Truncate都会将一致性设置为ALL。但是,当我从spring数据程序中删除时,我收到了“由以下原因引起的错误”:com.datasax.driver.core.exceptions.truncateeexception:truncate期间出错:无法在com.datasax.driver.core.Responses$error.asException(Responses.java:120)~[cassandra-driver-core-3.1.4.jar:na]实现一致性级别我在这里做错了什么???请帮助我在truncate时忽略一致性级别,前提是所有节点都已启动(至少在当前版本中)。我指的是当truncate已经超过此前提条件后节点停止运行的场景。但是,您是正确的,truncate的行为就像它已将一致性设置为ALL一样,无论设置了什么一致性级别。我使用的是DBeaver,可以从DBeaver中删除。但在从spring数据程序中删除时,我得到的是错误“由以下原因引起:com.datasax.driver.core.exceptions.truncateeexception:truncate期间出错:无法在com.datasax.driver.core.Responses$error.asException(Responses.java:120)~[cassandra-driver-core-3.1.4.jar:na]这里我做错了什么???请帮助我如果在cassandra.yaml中启用了autosnapshot,它将硬链接数据文件,因此不会立即删除。如果在cassandra.yaml中启用了autosnapshot,它将硬链接数据文件,因此不会立即删除。