是否可以使用 dsbulk 备份和恢复 Cassandra 集群?

Is it possible to backup and restore Cassandra cluster using dsbulk?

我在网上搜索了很多,看到了很多备份和恢复Cassandra集群的方法,比如nodetool snapshotMedusa。但我的问题是我可以使用 dsbulk 来备份 Cassandra 集群吗?它有什么局限性?为什么没有人建议这样做?

在某些情况下可以使用它,但它不实用,因为(这是主要的,列表可能更大):

  • DSBulk 给集群节点增加了额外的负载,因为它正在通过标准 read path。与此相反,nodetool snapshot 只是创建一个指向包含数据的文件的硬链接,没有对节点的额外负载
  • 用 DSBulk 实现增量备份更难 - 你需要为 SELECT 提供条件,它只会找到自上次备份以来发生变化的数据,所以你需要有时间戳列,因为你可以' t 对 writetime 函数的值执行 WHERE 条件。另外,它无论如何都需要重新扫描整个数据。另外,不可能找到删除了哪些数据。使用 nodetool snapshot,您只需比较自上次备份以来更改了哪些文件,然后只备份它们。