Apache spark Cassandra复制是否会降低其他DC的分析性能,反之亦然?

Apache spark Cassandra复制是否会降低其他DC的分析性能,反之亦然?,apache-spark,cassandra,datastax-enterprise,Apache Spark,Cassandra,Datastax Enterprise,我们提出了一个利用Cassandra Spark combo的解决方案,该解决方案是通过工作负载分离架构实现的。也就是说,Operations DC主要执行大量写操作,而Analytics DC处理分析作业。我读到: “一旦在其他群集上接收到这些异步提示,它们将经历正常的写入过程并被同化到该数据中心。这样,任何正在运行的分析作业都可以轻松、简单地访问这些新数据,而无需耗时的ETL过程。” 我们担心的是,由于所有数据几乎都是实时地从运营DC复制到分析DC,我们如何确保复制过程不会影响分析DC上发生

我们提出了一个利用Cassandra Spark combo的解决方案,该解决方案是通过工作负载分离架构实现的。也就是说,Operations DC主要执行大量写操作,而Analytics DC处理分析作业。我读到:

“一旦在其他群集上接收到这些异步提示,它们将经历正常的写入过程并被同化到该数据中心。这样,任何正在运行的分析作业都可以轻松、简单地访问这些新数据,而无需耗时的ETL过程。”

我们担心的是,由于所有数据几乎都是实时地从运营DC复制到分析DC,我们如何确保复制过程不会影响分析DC上发生的分析处理

或者,分析作业的繁重处理是否会影响DC之间的数据复制


我知道我可能遗漏了一些东西,但一个方向会有所帮助。还将感谢任何关于基准测试或理论分析的相关文档,以解决此问题。

这实际上取决于您在分析DC中的数据处理类型。您需要调整服务器的大小,使其能够处理来自事务性DC的复制的标准写入流量,以及来自分析作业的负载。但是,对于分析型DC,您可以使用更小的复制因子,因此对分析型DC中的服务器的写入会稍微少一些

中描述了DSE体系结构。您需要查看有关数据复制和读/写路径的信息

我建议您对集群执行负载测试,并在Analytical DC中测量服务器上的负载,例如,在那里的服务器上测量读取和写入的第99个百分位


您可以使用或相关项目(在DataStax存储库中按单词gatling搜索)模拟事务DC的负载。使用Gatling可以更容易地开发更真实的负载模拟器。

评论部分:1谢谢你,Alex。我看了相应的指南,但找不到答案。目前,我们正在研究归档解决方案的体系结构。盖特林和其他原型活动的使用将在稍后阶段进行。我看到工作负载分离体系结构通过部署两个DC来帮助隔离读写。但将数据从Operations DC复制到Analytics DC将在Analytics DC上引入异步写入。因此,Analytics DC将有来自Operations DC的写入以及其中的分析处理。评论部分:2我正在搜索Cassandra Spark内部体系结构如何处理复制和分析处理之间的冲突。架构中考虑了哪些选项来处理这些问题?有没有避免此类问题的架构最佳实践?我已经阅读了在线Datastax文档,但我无法找到上述问题的答案。在冲突解决中,最后一个时间戳获胜-这很简单。尽管您可以在写入数据时手动设置时间戳。或者您可以编写数据的子集,只覆盖“操作”数据中可能不存在的某些列。但无论如何,如果您正在写入在DC之间复制的同一个表/键空间,那么数据将复制到另一个表/键空间。。。我见过人们将数据复制到Analytics DC,进行分析,并将结果写入另一个没有复制到“Operations DC”的键空间中。。。但这始终取决于任务。您可以联系DataStax以获取更多信息。我想在这里补充一点,如果您担心复制会在节点上造成太多负载,那么您似乎没有考虑其他基本操作,如修复、节点故障容忍度等。您的节点需要有操作净空,您需要进行负载测试,然后再进行一些负载测试。