简单介绍一下flink
Apache Flink 是一个框架和分布式处理引擎。可以帮我们处理有界流和无界流。
基本组件
流
- 有界和无界数据流,对应批处理和流处理
- 实时和历史记录数据流
状态
- 多种状态基础类型
- 插件化的state backend ,负责管理应用程序状态
- 精确的一次语义
- 超大数据量状态
- 可弹性伸缩应用
时间
- 事件实践模式
- watermark支持
- 迟到数据处理
- 处理事件模式
分层api
- ProcessFunction
ProcessFunction 是 Flink 所提供的最具表达力的接口。ProcessFunction 可以处理一或两条输入数据流中的单个事件或者归入一个特定窗口内的多个事件。
- DataStream API
DataStream API 为许多通用的流处理操作提供了处理原语。
- SQL & Table API
Flink 支持两种关系型的 API,Table API 和 SQL。这两个 API 都是批处理和流处理统一的 API,这意味着在无边界的实时数据流和有边界的历史记录数据流上,关系型 API 会以相同的语义执行查询,并产生相同的结果。Table API 和 SQL 借助了 Apache Calcite 来进行查询的解析,校验以及优化。它们可以与 DataStream 和 DataSet API 无缝集成,并支持用户自定义的标量函数,聚合函数以及表值函数。
Flink 的关系型 API 旨在简化数据分析、数据流水线和 ETL 应用的定义。
-
库
- 复杂事件处理cep
- dataset api 用于批处理核心api
- gelly 可拓展的图形处理分析库
稳定运行
- 检查点的一致性
- 高效的检查点
- 端到端的精确一次
- 集成多种集群管理服务
- 内置高可用服务
方便地升级、迁移、暂停、恢复应用服务
- 便于升级应用服务版本
- 方便集群服务移植
- 方便Flink版本升级
- 增加应用并行服务的扩展性
- 便于A/B测试及假设分析场景对比结果
- 暂停和恢复服务
- 归档服务
上述特点都是通过savepoint实现
监控和控制应用服务
- Web UI方式
- 日志集成服务
- 指标服务
- 标准的WEB REST API接口服务
\