我可以使用apachekafka作为批处理层来保存lambda体系结构中的历史数据吗?

vatpfxk5  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(195)

Kafka作为一个存储系统,可以存储长期的数据。它可以毫无问题地复制和分发。那么,我可以从kafka中的所有历史数据创建rdd并创建批处理视图,然后将其与spark流式处理视图结合起来吗?

9ceoxa92

9ceoxa921#

热释光;是的,但是为什么?
nathan marz是twitter的前任,也是lambda体系结构的作者,他认为,在批处理层中,主数据集的存储要求如下:
“新数据的有效附加”必须易于添加到主数据集。
“可扩展存储”。批处理层需要保存体系结构“永远”看到的所有数据,根据您的情况,这些数据可能达到PB。
“支持并行处理。”进入服务层的批处理视图需要将函数应用于主数据集,因此必须并行运行,以便在启示录降临之前完成。
“可执行的不变性”这是关键,把检查到位,以防止突变的原始数据,这是来源的真理,为您所做的一切。
“可调整的存储和处理成本。”批处理层需要让您能够灵活地决定如何在静态和计算中存储和压缩数据。
kafka满足所有这些要求,因此从技术上讲,它确实可以将主数据集存储在批处理层中。
然而,由jay kreps(以前是linkedin的)设计的kappa架构比lambda架构更容易使用——我想说的是,它在满足物联网等现代用例方面更有效。实现这一点所需的只是分布式、可伸缩、不可变、可配置的流媒体,这正是Kafka所提供的。那为什么不这么做呢?
在lambda体系结构的批处理层中使用kafka进行数据存储,就是没有充分利用它的能力——唯一的目的是迫使它进入一个随着时间推移实际上效率较低的体系结构。

相关问题