数据调用架构演变历程
- 单体数据结构 集中式数据存储, 大多数将架构分为计算层和存储层
微服务架构 数据分散在不同的系统中 进行数据分析或数据挖掘时
- 需要从不同的数据库中进行数据抽取, 将数据从数据库中周期性的同步到数据仓库中
- 在数据仓库中进行数据的抽取、转换、加载(ETL)
- 构建数据集市和应用
Lambda架构
- Hadoop MapReduce批处理、Apache Storm 实时数据处理 ———-> 引入的框架太多 平台复杂度高、运维成本高
- Apahce Spark 微批处理
有状态的流计算
- 每次计算新的数据时是基于中间状态的结果的基础上进行运算, 不需要将原始数据重新从外部存储中取出
- ————> Apache Flink
Flink的优势
基于Google Dataflow流式计算模型实现的高吞吐、低延迟、高性能兼具实时流式计算的框架
- Apache Spark: 高吞吐和高性能
- Apache Storm: 低延迟和高性能
- 支持事件时间(Event Time)
- 支持有状态计算。(流式计算过程中将算子的中间结果数据存储到内存或者文件系统中)
- 支持高度灵活的窗口操作。(Time、Count、Session 以及Data-dirven)
- 基于轻量级分布式快照(Snapshot)实现的容错
- 基于JVM实现独立的内存管理
- Save Points
