flink学习笔记(一)——数据流编程模型

flink学习笔记(一)——数据流编程模型

flink官方文档学习笔记,本文主要是flink一些基础概念

数据流编程模型(Dataflow Programming Model)

抽象等级(Levels of Abstraction)

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

  • Statefule Stream Processing:是最低级别(底层)的抽象,只提供有状态的流。它通过ProcessFunction嵌入到DataStream API之中。它使得用户可以自由处理来源于一个或者多个流的事件
  • DataStream/DataSet API:在我们的实际工作中,大多数的应用程序是不需要上文所描述的低级别(底层)抽象,而是相对于诸如DataStream API(有界/无界流)和DataSet API(有界数据集)的Core API进行编程。这些API提供了用于数据处理的通用模块,如各种指定的transformations, joins, aggregations, windows, state等。在API中,这些处理的数据类型都是一个具体的实体类(class)。

    底层的Process Function与DataStream API集成在一起,可以仅对一些操作进行底层抽象。

  • Table API:是围绕着table的申明性DSL,可以被动态的改变(当其表示流时)。Table API遵循(扩展)关系模型:表有一个模式链接(类似与在关系数据库中的表),API也提供了一些类似的操作:select, project, join, group-by, aggregate等。Table API程序申明定义了怎么做是规范的,而不是明确指定应该是什么样子的。虽然Table API可以通过各种类型的用户定义的函数进行扩展,但它比Core API表达的更少,但使用起来更简洁(少写代码)。另外,Table API程序也会通过一个优化器,在执行之前应用优化规则。

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

  • Flink提供的最高级抽象是SQL。这种抽象在语义和表现力方面与Table API类似,但是将程序表示为SQL查询表达式。在SQL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值