如果Kappa-Architecture直接对流进行分析而不是将数据分成两个流,那么数据存储在哪里,就像Kafka这样的消息系统?或者它可以在数据库中重新计算?
与使用流处理引擎重新计算以进行批量分析相比,它是一个单独的批处理层吗?
答案 0 :(得分:8)
“一个非常简单的案例需要考虑的是算法应用于 实时数据和历史数据是相同的。然后就是 显然非常有利于使用相同的代码库来处理 历史和实时数据,因此实现用例 使用Kappa架构“。”现在,用于处理的算法 历史数据和实时数据并不总是相同的。在一些 在这种情况下,批处理算法可以通过它来优化 可以访问完整的历史数据集,然后优于 实现实时算法。在这里,选择 Lambda和Kappa成为支持批量执行的选择 性能优于代码库简单“。”最后,还有更多 复杂的用例,其中甚至是实时和输出 批处理算法是不同的。例如,机器学习 批量模型的生成需要这么多时间的应用程序 和实时获得最佳结果的资源是 计算和近似该模型的更新。在这种情况下, 批处理和实时图层无法合并,而Lambda 必须使用架构“。
答案 1 :(得分:0)
您可能还想阅读讨论这两个here
的原始文章引用原始博客帖子
“这两种方法之间的效率和资源之间的权衡有些难以理解。Lambda体系结构要求一直都在运行重新处理和实时处理,而我提出的方案只需要在运行第二个副本时运行您需要重新处理,但是我的建议是暂时在输出数据库中增加2倍的存储空间,并且需要一个支持大容量写入的数据库来进行重新加载,在两种情况下,重新处理的额外负载可能会平均化。如果您有很多这样的工作,它们将不会一次全部重新处理,因此在具有几十个这样的工作的共享群集上,您可能会为在任何给定时间主动进行重新处理的少数工作预算额外的百分之几的容量。 / p>
真正的优势根本不在于效率,而在于 允许人们在以下平台上开发,测试,调试和操作系统 单个处理框架的顶部。所以,在简单的情况下 重要的是,将此方法视为Lambda的替代方法 建筑。”