流式处理、实时计算、Add-hoc、离线计算、实时查询 这几个概念在数据处理中经常提高,这里简单的梳理一下他们的区别。
流处理、实时计算属于一类的,即计算在数据变化时,都是在数据的计算实时性要求比较高的场景,能够实时的响应结果,一般在秒级,Yahoo的S4,twiter的storm都属于流处理和实时计算一类的。
Add-hoc和实时查询都计算在query时,实时查询是响应可能千变万化的结果,无法事先通过枚举得到并存储起来,需要根据用户输入的不同实时查询出不同的响应,对实时性要求比较高,比如hbase,内存数据库的查询redis、mongodb等;Add-hoc属于对实时性要求不高的场景。Add-hoc是针对各种临时的、自定义的需求采取的解决方案,比如hive,需求是不确定的,可以通过编写sql来应对各种问题;最近出现的基于hadoop的实时查询Impala,解决了实时性的要求,比hive效率。
离线计算一般是批量处理数据库的过程,比如利用hadoop的mapreduce;内存计算spark类似于mapreduce, 不过是数据是放在在内存中,效率比较高。