一、什么是Flink
Apache Flink是领先的分布式流处理框架:处理无界数据流(实时数据:日志、点击流、传感器数据);事件时间处理(乱序数据处理);精确一次语义(Exactly-Once,数据不丢不重);高吞吐低延迟(每秒百万级事件处理)。适用场景:实时数仓、实时风控、实时监控告警、实时推荐、IoT数据处理。
二、核心概念
Flink核心概念:DataStream(数据流);算子(Map、Filter、KeyBy、Window等转换操作);窗口(滚动窗口、滑动窗口、会话窗口,时间语义);状态(Keyed State,保存中间结果);检查点(Checkpoint,故障恢复);时间语义(事件时间/处理时间/摄入时间)。理解"流处理思维"(事件驱动、持续计算)是入门的关键。
三、架构与部署
Flink架构:JobManager(作业管理:调度、检查点协调);TaskManager(任务执行:数据计算);Client(提交作业)。部署模式:Standalone(独立集群);YARN/K8s(资源管理集成)。Flink生态:Connector(Kafka、MySQL、ES等数据源与目标);Table/SQL API(类SQL开发,降低门槛);Cep(复杂事件处理)。开发语言:Java/Scala为主,Python API支持。
四、学习路径与实战
Flink学习路径:流处理基础(理解流与批的区别)→Flink核心API(DataStream、Window、State)→Flink SQL(快速开发)→实时数仓实战(Kafka+Flink+ClickHouse/Doris链路)。实战项目:实时UV统计、实时订单监控、用户行为实时分析。学习资源:官方文档(权威)、Flink中文社区、B站教程。2026年趋势:流批一体(Flink统一流批处理)、实时数仓普及。给新手的建议:先跑通WordCount(流处理Hello World),再逐步深入窗口与状态——实践是最好的学习。