Flink数据流编程模型【抽象级别、数据流、视图、检查点】

本文深入探讨Flink的流处理编程模型,包括抽象级别如Process Function、DataStream API和Table API,数据流的概念,以及并行处理、视图、时间、有状态操作和容错检查点等关键特性。Flink通过流重播和检查点实现一致性,支持事件时间、接收时间和处理时间,并允许在不同API之间无缝转换。
摘要由CSDN通过智能技术生成

一.抽象级别

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

  • 最低级别的抽象仅提供状态流。它通过Process Function嵌入到DataStream API中。它允许用户自由地处理一个或多个流中的事件,并使用一致的容错状态。此外,用户可以将注册事件时间和处理时间回调,从而允许程序实现复杂的计算。
  • 实际上,大多数应用程序不需要上述低级抽象,而是针对核心API进行编程,例如DataStream API和DataSet API。这些流畅的API为数据处理提供了通用的构建块,例如各种形式的用户指定的转换、链接、聚合、窗口、状态等。这些API中处理的数据类型以相应编程语言中的类表示。
  • Table API是声明性的DSL表,其可被动态地修改。该表API遵循【扩展】关系模型:表有一个模式连接【类似于在关系数据库中的表】和API提供可用的操作,如选择,连接 ,分组,聚合等。表API程序以声明的方式定义应该进行哪些逻辑运算,而不确切地定义运算的代码风格。尽管Table API可以通过各种类型的用户定义函数进行扩展,但它的表达能力不如Core API,但使用起来更加简洁。此外,Table API程序经过了优化程序,该优化程序在执行之前应用优化规则。
    Table API可以在表和DataStream/DataSet之间无缝转换,从而允许程序在Table API以及DataStream和DataSet API中混合使用。
  • Flink提供的最高级别的抽象是SQL。这种抽象在语义和表达方式上均类似于Table API,但
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值