传统的数据处理架构
类似于流式处理,来一个事件,立即做出响应,适用于关系型数据库,数据量较小的情况
用Web程序来举例,用户点击了网页上的按钮后,会向服务器发起请求,后台立即做出响应,从数据库中查询对应的信息,进行计算,得到的结果,可能再存回数据库中,最后给用户做一个页面响应
比如用户登录,用户填写用户名和密码之后,点击注册,后台做出响应,去数据库中查询,验证该用户是否存在,如果不存在就把用户信息经过一些加密处理,再保存到数据库当中,最后给用户反馈,注册成功
类似于批处理,攒上一批数据,一起处理
因为数据量太大,数据来源多种多样,可能来自于mysql,sqlserver,orcale等多个关系型数据库,和一些非结构化的数据,比如前端埋点数据,可能为JSON或其他格式,一个单纯的关系型数据库根本无法处理
所以如果对实时性要求不高,就采用批处理的方式,存放到数据仓库中进行汇总之后,再进行分析
如果要做到低延迟实时分析,就要使用流式处理的方式
有状态的流式处理
像一个管道,数据从一边流入,进行处理后,从另一边流出,但后边如果像继续使用,也可以拿出来消费
在前面的事物处理流程中,需要数据时,