流处理与批处理理解

9-18 1,748 views

流处理与批处理的不同,主要是数据获取的方式不同。

流处理的数据,就像流水一样,一直在系统中流动处理。

批处理的数据,则是暂存于数据库中的离线数据,后期定时定量的一批一批的处理。

 

1、系统的输入包括两类数据:实时的流式数据和静态的离线数据。

流式数据:前端设备实时发送的识别数据、GPS数据等,是通过消息中间件实现的事件触发,推送至系统的。

离线数据:应用需要用到的基础数据(提前梳理好的)等关系数据库中的离线数据,是通过数据库读取接口获取而批量处理的系统。
2、系统的输出也包括流式数据和离线数据。

流式数据是写入消息中间件的指定数据队列缓存,可以被异步推送至其他业务系统。

离线数据是计算结果,直接通过接口写入业务系统的关系型数据库。
3、业务的计算结果输出方式是通过两个条件决定的。

一、结果产生的频率:若计算结果产生的频率可能会较高,则结果以流式数据的形式写入消息中间件。(比如要实时监控该客户所拥有的标签,也就是说要以极高的速度被返回,这类结果以流式数据形式被写入消息中间件。) 这是因为数据库的吞吐量很可能无法适应告诉数据的存取需求。

二、结果需要写入的数据库表规模:若需要插入结果的数据表已经很庞大,则结果以流式数据的形式写入消息中间件,待应用层程序实现相关队列数据的定期或定量的批量数据库转储。(比如宽表异常庞大,每次查询数据库就会有很高的延迟,那么就将结果信息暂时存入中间件层,晚些时候再定时或定量的进行批量数据库转储) 。这是因为大数据表的读取和写入操作对毫秒级别的相应时间仍是无能为力。 若以上两个条件均无要求,结果可以直接写入数据库的相应表中。

欢迎留言