Flink 理解
前言
在大数据系统的发展过程中,一直存在一个核心问题:
数据越来越多,但处理速度越来越慢。
传统的数据处理方式,大多数是 离线处理。
例如:
每天晚上跑一次任务:
* 统计用户行为
* 计算广告数据
* 生成报表
* 分析业务指标
这种方式叫:
Batch Processing(批处理)
典型工具例如:
* Hadoop MapReduce
* Hive
* Spark
这些系统适合处理 海量历史数据。
但是随着互联网的发展,很多业务开始需要:
实时数据处理。
例如:
* 实时风控
* 实时推荐
* 实时监控
* 实时广告竞价
* 实时日志分析
这些场景有一个共同特点:
数据必须“边产生边处理”。
不能等到第二天。
于是就出现了一个新的计算模式:
Stream Processing(流式计算)。
为什么需要 Flink
早期实时计算系统主要依赖:
* Storm
* Spark Streaming
但这些系统都有一些问题。
例如: