在Cassandra中备份数据的最佳解决scheme是什么?

在Cassandra中备份数据的最佳解决scheme是什么?

有几个不同的选项可供select,这取决于你的情况,这是最好的,但这里有一个可用技术的快速概述。

在备份数据存储时,基本上有两件事是要防范的:

  • 由于底层存储卷的故障而导致数据丢失
  • 因无效数据被插入或从商店中删除而导致的数据丢失

Cassandra在其devise中内置了数据复制function。 复制因子configuration选项告诉cassandra每个logging要存储多less个副本。 复制因素的常见select是3,因为它在性能和耐用性之间取得了体面的折衷。 如果复制因子大于1,则至less可以承受某些节点的损失。 关于这个问题还有很多要说的,但是你可以在其他地方阅读。

但是,复制并不能保护您免于通过API进行错误的数据更改,因为大量的删除操作将会像复制好的插入操作一样。 为了帮助你,cassandra提供了快照function。 基本上,它很难将数据文件链接到数据目录中的快照文件夹。 这可能是一个相当便宜的方法,取决于数据更改的频率和随机性。 一个可能的方法是在cassandra机器的磁盘上保留多个快照,前提是您有足够的空间。

如果您有足够的IO容量,则可以将这些备份传输到单独的计算机上。 根据我的经验,这对磁盘和networking吞吐量都会造成很大的影响。

最后,从Cassandra 0.7开始,您可以configuration多数据中心复制。 从本质上讲,你可以有多个分布在世界各地的集群副本。 如果将它与快照结合使用,则在遇到问题时可以使用多种不同的方法来恢复数据。

请记住,你得到1点的备份和10,000点的恢复。 考虑一下你将如何testing备份,以确保在到达时能够真正恢复备份。