Apache Flink v1.8(概念-数据流编程模型)

Flink提供不同级别的抽象开发流/批处理应用。最低级抽象提供有状态流,通过Process Function嵌入DataStream API。多数应用针对Core API编程,如DataStream和DataSet API。Table API是声明性DSL表,可与DataStream/DataSet转换。最高级抽象是SQL,与Table API紧密交互。

抽象层次
Flink提供了不同级别的抽象来开发流/批处理应用程序。
在这里插入图片描述

  • 最低级抽象只提供有状态流。它通过Process Function嵌入到DataStream API中。它允许用户自由处理来自一个或多个流的事件,并使用一致的容错状态。此外,用户可以注册事件时间和处理时间回调,允许程序实现复杂的计算。
  • 在实践中,大多数应用程序不需要上述低级抽象,而是针对Core API编程, 如DataStream API(有界/无界流)和DataSet API(有界数据集)。这些流畅的API提供了用于数据处理的通用构建块,例如各种形式的用户指定的转换,连接,聚合,窗口,状态等。在这些API中处理的数据类型在相应的编程语言中表示为类。
    低级Process Function与DataStream API集成在一起,因此只能对某些操作进行低级抽象。该数据集API提供了有限数据集的其他原语,如循环/迭代。
  • Table API是为中心的声明性DSL表,其可被动态地改变的表(表示流时)。该表API遵循(扩展)关系模型:表有一个模式连接(类似于在关系数据库中的表)和API提供可比的操作,如选择,项目,连接,分组依据,聚合等表API程序以声明方式定义应该执行的逻辑操作,而不是准确指定操作代码的外观。虽然Table API可以通过各种类型的用户定义函数进行扩展,但它的表现力不如Core API,但使用更简洁(编写的代码更少)。此外,Table API程序还会通过优化程序,在执行之前应用优化规则。

可以在表和DataStream / DataSet之间无缝转换,允许程序混合Table API以及DataStream 和DataSet API。

Flink提供的最高级抽象是SQL。这种抽象在语义和表达方面类似于Table API,但是将程序表示为SQL查询表达式。在SQL抽象与表API紧密地相互作用,和SQL查询可以通过定义表来执行表API。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

走过冬季

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

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

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

打赏作者

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

抵扣说明:

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

余额充值