📌 本文是「Flink 教程」系列第 一 篇 · 系列目录
1.1 什么是Apache Flink
Apache Flink是一个分布式流处理框架,用于在无界和有界数据流上进行有状态计算。
Flink 核心特性
- 🎯 精确一次(Exactly-Once)语义:确保每条记录仅被处理一次,即使发生故障
- ⚡ 低延迟高吞吐:支持毫秒级延迟,同时保持高吞吐量
- 💾 状态一致性:通过 Checkpoint 机制保证故障恢复后状态的一致性
- ⏰ 时间语义:支持事件时间和处理时间两种时间语义
1.2 典型应用场景
Flink 主要应用于以下三类场景:
1.2.1 实时数据管道(ETL)
Flink可用于构建实时数据处理管道,从各种数据源获取数据,进行转换处理后输出到目标系统。
典型应用:
- 实时日志分析
- 实时指标监控
- 实时数据同步
- 数据仓库实时入湖
数据管道特点:
- 从 Kafka 等消息队列读取数据
- 进行过滤、转换、聚合
- 写入下游系统(HDFS、ES、DW 等)
三大场景对比:
| 场景类型 | 核心特点 | 典型场景 | 数据流向 |
|---|---|---|---|
| 实时数据管道 | 实时 ETL,数据搬运 | 日志分析、数据同步、入湖 | Source → Transform → Sink |
| 事件驱动应用 | 状态计算、实时响应 | 欺诈检测、异常告警、CEP | 事件触发计算逻辑 |
| 流式数据分析 | SQL 查询、实时报表 | 实时 BI、实时数仓 | 流 → SQL 分析 → 可视化 |
1.2.2 事件驱动应用
基于事件触发计算逻辑的应用模式,适合需要实时响应的场景。
典型应用:
- 欺诈检测 - 实时检测异常交易行为
- 异常告警 - 系统指标异常实时告警
- 实时推荐 - 基于用户行为的实时推荐
- 复杂事件处理(CEP)- 模式匹配
事件驱动特点:
- 有状态计算,维护历史上下文
- 实时响应,低延迟
- 状态持久化,故障恢复
1.2.3 流式数据分析
对实时数据流进行复杂的 SQL 查询和分析。
典型应用:
- 实时报表 - 实时业务指标展示
- 实时 BI 分析 - 实时多维度分析
- 实时数仓 - OLAP 实时查询
- 小时级小费分析练习(Hourly Tips Exercise)
参见: 02-架构与原理 | 03-部署与运维 | 04-Java开发实践
标签: #flink #大数据 #流处理 #实时计算