apache-spark - Cassandra 复制是否会降低其他 DC 中的分析性能,反之亦然?
问题描述
我们提出了一种利用 Cassandra-Spark 组合的解决方案,该组合通过工作负载分离架构实现。也就是说,Operations DC 主要进行繁重的写入操作,而 Analytics DC 处理 Analytics 作业。我在这里读到:
"一旦在其他集群上收到这些异步提示,它们就会经历正常的写入过程并被同化到该数据中心。这样,任何正在运行的分析作业都可以轻松简单地访问这些新数据,而无需耗时的 ETL 过程。 ”
我们担心的是,由于所有数据都近乎实时地从 Operations DC 复制到 Analytics DC,我们如何确保复制过程不会影响 Analytics DC 上发生的分析处理?
或者,分析作业的繁重处理是否会影响数据中心之间的数据复制?
我知道我可能会遗漏一些东西,但一个方向会有所帮助。还将感谢有关基准测试或理论分析的任何相关文档以解决此问题。
解决方案
这实际上取决于您将在 Analytics DC 中进行的数据处理类型。您需要调整服务器大小,使其能够处理来自事务 DC 复制的标准写入流量,以及分析作业的负载。但是您可以为 Analytical DC 设置更小的复制因子,因此对 Analytical DC 中的服务器的写入会稍微减少。
DSE 体系结构在相应指南中进行了描述。您需要查看有关数据复制和读/写路径的信息...
我建议对您的集群执行负载测试,并测量 Analytical DC 中服务器上的负载,例如,在那里的服务器上读取和写入的第 99 个百分位数。
您可以使用DSE Gatling 插件或相关项目(在 DataStax 存储库中按单词 gatling 搜索)模拟对事务 DC 的负载。使用 Gatling 可以更轻松地开发更多类似于真实世界的负载模拟器。
推荐阅读
- php - 为什么我的 Facades 在更新到 Laravel 7.3 后停止工作?
- excel - Excel - 条件格式特殊
- apache-spark - Spark中的K折目标编码
- reactjs - 没有它 React.forwardRef 已经是可能的了,那它有什么用呢?
- null - Null : AssertionConsumerService => saml2AuthnResponse.CreateSession 期间的对象引用
- scala - 为什么Scala PartialFunction isDefinedAt 方法总是返回true?
- alpine.js - 使用 Alpine.js 和 new FormData() 返回提交的 POST 数据
- c# - 我怎样才能捕捉到不存在的路线的 404?
- multithreading - 服务器发送事件是否会强制 Netty 持有相同的线程,直到流关闭?
- ruby-on-rails - 捆绑器版本错误?