kappa-architecture和lambda-architecture之间有什么区别

Kha*_*han 3 stream-processing bigdata batch-processing apache-kafka lambda-architecture

如果Kappa-Architecture直接对流进行分析而不是将数据分成两个流,那么数据存储在哪里,就像Kafka这样的消息系统?或者它可以在数据库中重新计算?

与使用流处理引擎重新计算以进行批量分析相比,单独的批处理层是否更快?

Kha*_*han 9

"一个非常简单的例子是当应用于实时数据和历史数据的算法是相同的时候.然后使用相同的代码库来处理历史和实时数据显然是非常有益的,因此使用Kappa架构实现用例"."现在,用于处理历史数据和实时数据的算法并不总是相同的.在某些情况下,批处理算法可以优化,因为它可以访问完整的历史数据集,然后优于实现实时算法.在这里,在Lambda和Kappa之间进行选择成为支持批量执行性能而不是代码库简单性的选择."最后,还有更复杂的用例,即使实时和批处理算法的输出也不同.例如,机器学习应用程序,其中批处理模型的生成需要如此多的时间和资源,最好实时可实现的结果是该模型的计算和近似更新.在这种情况下,批量和实时层不能合并,并且必须使用Lambda架构".

引用

LAMBDA架构

  • 单独批处理和流层
  • 代码复杂度更高
  • 单独批次/流的性能更快
  • 更好地用于批处理和流中的不同算法
  • 用于批量计算而不是数据库的数据存储更便宜

卡帕架构

  • 只有一个蒸汽处理层
  • 更易于维护,更低的复杂性,批处理和流的单一算法
  • 如果从批处理数据库重新计算,过多的数据将是昂贵的
  • 如果从数据库或kafka重新计算批处理,则处理的数据太慢