FlinK简介

Flink流式处理概念简介

一,抽象层次
Flink提供不同级别的抽象来开发流/批处理应用程序。

1,stateful streaming
最底层。它通过Process Function嵌入到DataStream API中。它允许用户从一个或多个流自由处理事件,并使用一致的容错状态。此外,用户可以注册事件时间和处理时间回调,允许程序实现复杂的计算。
2,Core APIs
实际上,大多数应用程序不需要上述的低级别抽象,而是针对Core API(如DataStream API(有界/无界流))和DataSet API(有界数据集)进行编程。这些流畅的API为数据处理提供了常见的构建模块,如用户指定的各种转换形式,连接,聚合,窗口,状态等。在这些API中处理的数据类型以各自的编程语言表示为classes。底层的Process Function和DataStream API的整合,使得针对一些特定的操作可以实现更低层次的抽象。DataSet API为有界数据集提供了额外的原函数,如循环/迭代。
3,Table API
Table API是以表为中心的声明式DSL,可能是动态更改表(表示流时)。Table API遵循(扩展)关系模型:Table 具有附加schema(与关系数据库中的表相似),API提供操作,例如select,project,join,group-by,aggregate等。Table API代表的是应该做什么逻辑操作,而不是直接指定如何编写操作的源代码。虽然Table API可以通过各种类型的用户定义的函数进行扩展,但它不如Core API那么具有表达力,但使用起来更加简洁(少写很多代码)。
此外,Table API程序还可以通过在执行之前应用优化规则的优化器。
可以在表和DataStream / DataSet之间无缝转换,允许程序将Table API和DataStream和DataSet API混合使用。
4,SQL
最高层次的抽象就是SQL。无论是语法还是表达,该层次的抽象都很像Table API。SQL抽象与Table API紧密交互,SQL查询可以在Table API中定义的表上执行。

二,Programs and Dataflows
Flink程序的基本构建块是流和转换。在概念上,stream 是data records的(潜在的永无止境的)flow,并且变换是将一个或多个流作为输入的操作,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值