回答

1

tl; dr是的,但为什么?

据马兹弥敦道,以前Twitter和拉姆达建筑笔者,这些都是主数据集的存储要求在批层:

  • “新数据的高效追加。”它必须很容易添加到主数据集。
  • “可扩展存储”。批处理层需要持有全部架构所见过的数据“永远”,根据您的具体情况可能会达到PB级。
  • “支持并行处理”。使其成为服务层的批处理视图需要将功能应用于主数据集,因此这些视图必须平行运行,以便在启示录在我们面前完成。
  • “可执行的不变性”。为了防止原始数据发生突变,实施检查至关重要,这是您做任何事情的真相源头。
  • “可调储存和处理成本”。批处理层需要您灵活地决定如何在静态和计算中存储和压缩数据。

卡夫卡满足所有这些,所以在技术上它确实可以将主数据集存储在批处理图层中。

然而,由Jay Kreps(LinkedIn之前)设计的Kappa Architecture比Lambda架构更容易使用 - 而且我认为在满足像IoT这样的现代用例方面更为有效。您需要做的就是分发,可扩展,不可变,可配置的流媒体,这正是Kafka提供的。那么为什么不这样做呢?

在Lambda架构的批处理层中使用Kafka进行数据存储的目的是未充分利用其功能 - 并且仅仅是为了将其强制进入实际上效率较低的架构。

+0

卡夫卡满足**可调储存和处理成本**要求? 它有像hdfs一样的良好压缩吗? –

相关问题