01 Sep 2019
大规模数据处理
批处理和流处理
在批处理中,关心地更多的会是数据的事件时间。
批处理架构通常会被设计在以下这些应用场景中:
- 日志分析:日志系统是在一定时间段收集的,而日志的的数据处理分析是在不同的时间内执行的,以得出有关系统的一些关键性能指标。
- 计费应用程序:计费应用程序会得出一段时间内一项服务的使用程度,并生成计费信息,例如银行在每个月末生成的信用卡还款单。
- 数据仓库:数据仓库的主要目标是根据收集好的数据事件时间,将数据信息合并为静态快照,并将它们聚合为每周、每月、每季度的报告。
流处理系统中是关系数据的事件时间还是处理时间,将视具体的应用场景而定。
例如,像网页监控系统这样的流处理系统要计算网站的 QPS,它所关心的更多是处理时间,也就是网页请求数据被监控系统接收到的时间,从而计算 QPS。
而在一些医疗护理监控系统的流处理系统中,他们则更关心数据的事件时间,这种系统不会因为接收到的数据有网络延时,而忽略数据本来产生的时间。
流处理架构通常会被设计在以下这些应用场景中:
- 实时监控:捕获和分析各种来源发布的数据,如传感器,新闻源,点击网页等。
- 实时商业智能:智能汽车,智能家居,智能病人护理等。
- 销售终端(POS)系统:像是股票价格的更新,允许用户实时完成付款的系统等。
CAP定理
- CP 系统:Google BigTable, Hbase, MongoDB, Redis, MemCacheDB,这些存储架构都是放弃了高可用性(High Availablity)而选择 CP 属性的。
- AP 系统:Amazon Dynamo 系统以及它的衍生存储系统 Apache Cassandra 和 Voldemort 都是属于 AP 系统
- CA 系统:Apache Kafka 是一个比较典型的 CA 系统。
##
Til next time,
at 09:42