Flink API分层

Flink的API基本可分为三层:

  • Flink SQL/Table
  • Flink DataStream/DataSet
  • Flink 有状态底层处理API

在这里插入图片描述

越是高级API,代码越是简洁,但灵活性会相对的减少,反之同理。

1、高级api - Flink SQL/Table

Flink 支持两种关系型的 API,Table API 和 SQL。这两个 API 都是批处理和流处理统一的 API,这意味着在无边界的实时数据流和有边界的历史记录数据流上,关系型 API 会以相同的语义执行查询,并产生相同的结果。Table API 和 SQL 借助了 Apache Calcite 来进行查询的解析,校验以及优化。它们可以与 DataStream 和 DataSet API 无缝集成,并支持用户自定义的标量函数,聚合函数以及表值函数。

2、核心api - Flink DataStream/DataSet

目前Flink进行流批一体化,DataSet逐步退出,统一使用DataStream API。
DataStream API 为许多通用的流处理操作提供了处理原语。这些操作包括窗口、逐条记录的转换操作,在处理事件时进行外部数据库查询等。DataStream API 支持 Java 和 Scala 语言,预先定义了例如map()、reduce()、aggregate() 等函数。你可以通过扩展实现预定义接口或使用 Java、Scala 的 lambda 表达式实现自定义的函数。

3、低级api - ProcessFunction
低级api是 Flink 所提供的最具表达力的接口,实现许多有状态的事件驱动应用所需要的基于单个事件的复杂业务逻辑。

实现ProcessFunction 接口来进行操作。ProcessFunction 可以处理一或两条输入数据流中的单个事件或者归入一个特定窗口内的多个事件。它提供了对于时间和状态的细粒度控制。开发者可以在其中任意地修改状态,也能够注册定时器用以在未来的某一时刻触发回调函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Flink分层API是指将FlinkAPI按照不同的抽象层级进行划分和组织,使得用户可以根据自己的需求选择合适的API进行开发。具体来说,Flink分层API包括以下五个层级: 1. DataSet API:DataSet APIFlink最初提供的API,它基于静态数据集(如CSV文件、数据库表)进行批处理。通过DataSet API,用户可以定义数据源、数据转换和数据输出等操作。 2. DataStream API:DataStream APIFlink用于处理流数据的API,它支持实时数据流的处理。通过DataStream API,用户可以定义数据源、数据转换和数据输出等操作,同时还可以进行窗口操作和状态管理等操作。 3. Table API:Table API是一种基于关系型表格的API,它支持类SQL的操作,可以将流数据和批数据都转换为表格进行处理。通过Table API,用户可以使用SQL语句进行数据查询、过滤和聚合等操作。 4. SQL API:SQL APIFlink提供的类SQL的API,它支持标准的SQL语法进行数据处理。通过SQL API,用户可以将流数据和批数据都转换为表格进行处理,同时还可以使用SQL语句进行数据查询、过滤和聚合等操作。 5. CEP API:CEP APIFlink的复杂事件处理API,它支持定义复杂的事件模式,并可以在流数据中进行匹配和处理。通过CEP API,用户可以定义事件模式、事件匹配规则和事件处理操作等操作。 总的来说,Flink分层API可以让用户根据自己的需求选择合适的API进行开发,并且可以在不同的API之间进行转换和组合,以实现更加复杂的数据处理需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛@漫步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值