Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment Cassandra数据中心之间的单向复制_Deployment_Cassandra_Database Replication_Cassandra 3.0 - Fatal编程技术网

Deployment Cassandra数据中心之间的单向复制

Deployment Cassandra数据中心之间的单向复制,deployment,cassandra,database-replication,cassandra-3.0,Deployment,Cassandra,Database Replication,Cassandra 3.0,我们建议将Cassandra实现为大型归档解决方案的数据库后端(与读取相比,写入的数量很大)。我们正在寻找有关Cassandra复制和部署策略的信息,以适合我们的用例 卡桑德拉的选择基于以下因素: 支持“写入”操作的大吞吐量—每秒数千次同时写入 工程数据的适用性(主要是时间序列数据) 高可用性,支持连续望远镜操作 工具支持,例如分析、报告 数据估算 每年增长250 TB(系统寿命为50年) 用例 我们有两个数据中心—Operations DC和Analytics DC(用于隔离读写工作负

我们建议将Cassandra实现为大型归档解决方案的数据库后端(与读取相比,写入的数量很大)。我们正在寻找有关Cassandra复制和部署策略的信息,以适合我们的用例

卡桑德拉的选择基于以下因素:

  • 支持“写入”操作的大吞吐量—每秒数千次同时写入
  • 工程数据的适用性(主要是时间序列数据)
  • 高可用性,支持连续望远镜操作
  • 工具支持,例如分析、报告
数据估算

  • 每年增长250 TB(系统寿命为50年)
用例

我们有两个数据中心—Operations DC和Analytics DC(用于隔离读写工作负载)。在这篇文章的末尾是描述所提议的架构的图表。 由于存储限制,我们无法将在生命周期内生成的数据存储在Operations DC上。因此,我们计划按照规定的政策(比如1周后)将数据从运营DC转移到分析DC

问题

  • 数据中心之间是否可以在Cassandra中进行单向复制?来自运营DC的数据转移到分析DC。但在分析DC中处理后存储的数据不得复制到操作DC中
  • 卡桑德拉是否提供了对复制内容的控制?我们不希望两个DC同步。我们希望配置复制(实际移动)到Analytics DC的内容。卡桑德拉有可能吗?若我想指定仅应将最近一周的数据从运营数据中心复制到分析数据中心
  • 我们计划使用Cassandra内置的time to live功能删除数据(仅从operations DC中删除)。从操作DC中删除的数据不应从分析DC中删除。如何防止已删除数据的复制

  • 我读到一个Cassandra节点可以处理多达2-3 TB的数据。任何大型Cassandra实现的文档参考都会有所帮助

  • 应部署多少Cassandra节点来处理此类增长?建议的部署策略是什么

  • 性能注意事项:尽管Operations DC的存储将受到限制(3-7天的数据,约5-10 TB),但Analytics DC的数据存储是累积的,并且会随着时间的推移而继续增长。analytics DC的数据库增长是否会影响复制并降低操作DC的性能

  • 这里的目的是了解Cassandra的内置功能是否可以用于支持上述需求。我知道最明显的解决办法。不在两个DC之间进行复制。从Operations DC转储上一周的数据,并将其移动到Analytics DC


    我认为在您的情况下,“分离”DC是有意义的,例如,一个DC中的键空间不会复制到另一个DC中,只需使用必要的相应复制设置创建键空间即可

    或者,您可以将“事务性”加载复制到两个DC中,并拥有一个作业,该作业将定期将数据从“事务性”键空间复制到“分析性”键空间,然后从“事务性”键空间删除数据以释放空间

    但是,除非您使用类似DSE的高级复制(但这不是关于DC,而是关于单独的集群),否则就不可能有您所描述的东西

  • 没有

  • 是,复制是按键空间配置的

  • 这不是开箱即用的,但可以让它工作。我可以想出两个相对容易的选择。最简单的方法是批量写入两个键空间/DC,一个使用TTL,另一个不使用TTL。您还可以每月/每年创建一个密钥空间,首先将其复制到多个DC,并在适当时删除“正常”DC

  • Cassandra在一个集群中最多可以处理800-1000个实例,但是为了便于操作,通常建议切分比这个更小的实例

  • DCs可以是不对称的


  • 聘请一位在Cassandra存储10+PB方面有一定经验的顾问可能比在互联网问答网站上随机寻求帮助更好。我理解你的建议,Aaron。已经向管理层强调了这一点,他们将继续努力。现在,我们非常感谢专家们的帮助。谢谢亚历克斯。阅读有关DSE的高级复制的信息,这似乎是一个很好的选择。我想澄清我的理解:部署单独的集群——一个集群(边缘集群)负责写操作,另一个集群负责读操作(中心集线器)。-我们可以控制这个复制吗?所谓控制,我指的是在所述时间安排此复制。-如果我们从边缘群集清除数据,它是否也会从中心集线器中删除?-Edge cluster是否对Central Hub的所有数据都具有全面的分析能力?这些问题很有趣,但要回答这些问题,需要更多信息和AdvRep专家的参与。如果您与DataStax联系,组织对这些需求进行更深入的讨论,可能会更好。。。