我正在研究 lambda 架构并了解如何使用它来构建容错大数据系统。
我想知道当一切都可以存储在实时 View 中并从中生成结果时,批处理层有何用处?是不是因为实时存储不能用来存储所有数据,那么它就不是实时的,因为检索数据所花费的时间取决于数据存储所占用的空间。
最佳答案
Why batch layer
为了节省时间和金钱!
它基本上有两个功能,
- 管理主数据集(假设是不可变的)
- 为临时查询预先计算批处理 View
Everything can be stored in realtime view and generate the results out of it - NOT TRUE
以上当然是可能的,但不可行,因为数据可能是 100 到 1000 PB,生成结果可能需要时间......很多时间!
这里的关键是实现对大型数据集的低延迟查询。批处理层用于创建批处理 View (低延迟查询),实时层用于最近/更新的数据,这些数据通常很小。现在,任何临时查询都可以通过合并来自批处理 View 和实时 View 的结果来回答,而不是计算所有主数据集。
另外,想想一个查询(同一个查询?)在庞大的数据集上一次又一次地运行……浪费时间和金钱!
关于hadoop - Lambda 架构 - 为什么使用批处理层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373454/