Flink 常用 API 详解

Flink 常用 API 详解

原创

wx62be9d88ce294博主文章分类:大数据 ©著作权

文章标签 flink scala big data 自定义 数据 文章分类 Hadoop 大数据

©著作权归作者所有:来自51CTO博客作者wx62be9d88ce294的原创作品,请联系作者获取转载授权,否则将追究法律责任

Flink 根据抽象程度分层,提供了三种不同的 API 和库。每一种 API 在简洁性和表达 力上有着不同的侧重,并且针对不同的应用场景。

Flink 常用 API 详解
  1. ProcessFunction 是 Flink 所提供最底层接口。ProcessFunction 可以处理一或两条 输入数据流中的单个事件或者归入一个特定窗口内的多个事件。它提供了对于时间和状 态的细粒度控制。开发者可以在其中任意地修改状态,也能够注册定时器用以在未来的 某一时刻触发回调函数。因此,你可以利用 ProcessFunction 实现许多有状态的事件 驱动应用所需要的基于单个事件的复杂业务逻辑。
  2. DataStream API 为许多通用的流处理操作提供了处理原语。这些操作包括窗口、逐条 记录的转换操作,在处理事件时进行外部数据库查询等。DataStream API 支持 Java 和 Scala 语言,预先定义了例如 map()、reduce()、aggregate() 等函数。你可以通过扩 展实现预定义接口或使用 Java、Scala 的 lambda 表达式实现自定义的函数。
  3. SQL & Table API:Flink 支持两种关系型的 API,Table API 和 SQL。这两个 API 都 是批处理和流处理统一的 API,这意味着在无边界的实时数据流和有边界的历史记录数据流上,关系型 API 会以相同的语义执行查询,并产生相同的结果。Table API 和 SQL 借助了 Apache Calcite 来进行查询的解析,校验以及优化。它们可以与 DataStream 和 DataSet API 无缝集成,并支持用户自定义的标量函数,聚合函数以及表值函数。
  4. 复杂事件处理(CEP):模式检测是事件流处理中的一个非常常见的用例。Flink 的 CEP 库提供了 API,使用户能够以例如正则表达式或状态机的方式指定事件模式。CEP 库与 Flink 的 DataStream API 集成,以便在 DataStream 上评估模式。CEP 库的应用包括 网络入侵检测,业务流程监控和欺诈检测。
  5. DataSet API:DataSet API 是 Flink 用于批处理应用程序的核心 API。DataSet API 所 提供的基础算子包括 map、reduce、(outer) join、co-group、iterate 等。所有算子 都有相应的算法和数据结构支持,对内存中的序列化数据进行操作。如果数据大小超过 预留内存,则过量数据将存储到磁盘。Flink 的 DataSet API 的数据处理算法借鉴了 传统数据库算法的实现,例如混合散列连接(hybrid hash-join)和外部归并排序 (external merge-sort)。
  6. Gelly: Gelly 是一个可扩展的图形处理和分析库。Gelly 是在 DataSet API 之上实现 的,并与 DataSet API 集成。因此,它能够受益于其可扩展且健壮的操作符。Gelly 提 供了内置算法,如 label propagation、triangle enumeration 和 page rank 算法, 也提供了一个简化自定义图算法实现的 Graph API。

  7. 收藏
  8. 评论
  9. *举报

上一篇:Flink常用API之HDFS文件Source

下一篇:Flink中Window详解之Window的聚合函数ReduceFunction

Original: https://blog.51cto.com/u_15704423/5434842
Author: wx62be9d88ce294
Title: Flink 常用 API 详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516974/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球