一、事件驱动型应用
1.1 什么是事件驱动型应用
事件驱动型应用是一个有状态的应用,它从一个或多个事件流中提取事件,并通过触发计算、状态更新以及外部动作来响应事件。
1.2 和传统应用的区别
事件驱动型应用是从计算存储分离的传统应用基础上演化而来,传统的架构中需要读写远端的数据库,即计算和数据分离。
而事件驱动型应用是基于状态化流处理来完成,数据和计算在一起,只需要访问本地(内存或者磁盘)即可获取到数据。
1.3 与传统应用的优势
-
数据和计算一起,更高的吞吐和高低的延迟
-
远端持久化可以异步、增量方式,对正常处理流程影响少
-
只考虑自身数据,更容易扩容以及数据的修改
1.4 典型的事件驱动型应用实例
- 反欺诈
- 异常检测
- 基于规则的报警
- 业务流程监控
- (社交网络)web应用
二、数据分析应用
2.1 什么是数据分析应用
从原始数据中提取有价值的信息和指标。
2.2 和传统的数据分析的区别
传统的分析方式通常是利用批查询,或者将有限集的数据进行构建模型进行分析。如果新增了原始数据,则需要重新进行处理。将结果写入系统或者生成报告。
而数据分析应用将接入实时事件流中,随着事件的消费持续更新结果。
2.3 流式分析应用的优势
-
低延迟,不需要周期性的数据导入和查询过程
-
没有批量查询的数据边界限制
-
简化应用
2.4 典型的数据分析实例
- 典型网络质量监控
- 移动应用中的产品更新及使用评估分析
- 消费者技术中的实时数据及时分析
- 大规模图分析
三、数据管道应用
3.1 什么是数据管道
提取-转换-加载(ETL)是一种在存储系统之间进行数据转换和迁移的常用方法,通常是周期性的触发。而数据管道和ETL相似,都可以转换、丰富数据、数据迁移,但是数据管道是流模式持续运行的
3.2 数据管道的优势
- 低延迟
- 持续流模式,用途更广
3.3 典型的数据管道实例
- 电子商务的实时查询索引构建
- 电子商务中的持续ETL