优步在Hadoop上做增量处理的案例

完整性和延迟之间的权衡

在计算时,随着我们在流式处理、增量处理和批处理之间变换,我们面临着相同的根本权衡。一些应用需要所有的数据,并产生更为完整和准确的结果,而一些则只需要低延迟的数据来产生相对可接受的结果即可。让我们来看几个例子。

 

 

图五:展示了不同的Hadoop应用对延迟和数据完整性的容忍度。由Vinoth Chandar提供

图五描绘了一些应用案例,根据它们对延迟和(不)完整性的容忍度来定位。商务仪表盘可以展示不同的粒度的各项指标。它们通常较为灵活,可展示最近时间内不完整但是有较低延迟的数据,并随着时间变得完整(这也使得它们成为Lambda架构的代表)。对于数据科学或机器学习的案例而言,从输入的数据中抽取特征的过程通常延迟较低,而模型用更完整的数据进行自我训练的延迟较高。其他的例子中,欺诈检测要求低延迟地处理可获取的最新数据。而实验性平台需要相当的数据量,并以一个相对较低的延迟来保证实验结果比较新。