文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用Apache Flink的四个理由,你知道几个?

2024-11-30 05:54

关注

译自 4 Reasons Why Developers Should Use Apache Flink 。

流处理允许你持续消费数据流,用额外的业务逻辑处理数据,并将其转化为新的流,以便其他人可以在自己的应用中重复使用。其应用范围广泛,包括实时控制面板、机器学习模型、物化视图,以及事件驱动的应用和微服务。

图片

流处理用额外的业务逻辑增强数据流,将其转化为新的可重复使用的数据流,以供下游应用和流水线使用。

处理逻辑的复杂度因具体应用场景而异,范围从简单的过滤和聚合,到更复杂的多路时间关联和任意事件驱动逻辑。因此,与其他选项(如定期批处理、ELT、经典两层架构)相比,流处理的优势因情况而异。

尽管如此,推动采用流处理的关键因素通常属于以下一个或多个类别:

Flink是最活跃的Apache项目之一,提供了流处理和批处理的统一框架。像Uber、Netflix、LinkedIn这样的数字化先锋公司使用Flink,传统企业如高盛和Comcast也在使用。

Flink也拥有大型且活跃的贡献者社区,其中包括Apple和阿里巴巴等公司的支持,这有助于保证持续创新。因此,Flink的采用速度与Kafka早期阶段相当。

图片

Flink的增长速度与Kafka生命周期相同阶段基本相当。

下面是公司选择Flink而非其他流处理技术的四大常见原因:

第一: 它是一个强大的执行引擎

Flink拥有强大的运行时,具有卓越的资源优化、高吞吐量与低延迟以及可靠的状态处理。具体来说,运行时可以:

Flink可根据用例配置各种工作负载,包括流处理、批处理或两者的混合。

第二: 兼容多种API和语言

Flink提供了四种不同的API,可满足不同用户和应用需求。Flink还支持多种编程语言,包括Python、Java和SQL。

图片

Flink提供了多层次的API,抽象级别不同,既可处理常见用例,也可处理不太常见的用例。

适用于Java和Python的DataStream API通过链接FlatMap、Filter、Process等转换函数创建数据流图。在这些用户定义函数中,你可以访问状态流处理器的基本组件,如状态、时间和事件。这让你可以细粒度控制记录在系统中的流动以及读写和更新应用状态。如果你熟悉Kafka Streams DSL和Kafka Processor API,使用体验会很熟悉。

Table API是Flink更现代的声明式API。它允许你用连接、过滤、聚合、投影等关系操作以及各种用户定义函数编写程序。与DataStream API类似,Table API支持Java和Python。使用此API开发的程序会进行类似Flink SQL查询的优化,与SQL共享若干特性,如类型系统、内置函数和验证层。该API与Spark Structured Streaming、Spark DataFrame API和Snowpark DataFrame API有相似处,不过那些API更侧重微批和批处理而非流处理。

基于与Table API相同的底层架构,Flink SQL是遵循ANSI标准的SQL引擎,可处理实时和历史数据。Flink SQL使用Apache Calcite进行查询规划和优化。它支持任意嵌套子查询,广泛的语言支持包括各种流连接和模式匹配,拥有广泛的生态系统,包括JDBC驱动程序、目录和交互式SQL Shell。

最后是“Stateful Functions”,它简化了状态化分布式事件驱动应用的创建。这是Flink项目下的一个独立子项目,与Flink的其他API很不相同。Stateful Functions可以理解为一个基于Flink运行时的状态化、容错的分布式Actor系统。

广泛的API选择使Flink成为流处理的理想选择,随着需求和用例的演变,你可以随时间混合使用不同的API。

第三: 流处理和批处理融合

Apache Flink统一了流处理和批处理,因为其主要API(SQL、Table API和DataStream API)同时支持有界数据集和无界数据流。具体来说,你可以根据正在处理的数据性质,以批处理或流处理模式运行相同程序。你甚至可以让系统为你选择处理模式。

图片

Flink可以在同一平台上统一流处理和批处理。

流批处理的统一为开发者带来实实在在的好处:

第四: 它已做好生产就绪准备

Flink是一个成熟平台,在最苛刻的生产场景中经受住了检验。表现这一点的特性包括:

Flink和Kafka: 强大组合

Flink和Kafka经常一起使用,事实上Kafka是Flink最热门的连接器。两者高度兼容,在许多方面Kafka推动了Flink的广泛采用。

需注意,Flink本身不存储任何数据,它对其他地方存储的数据进行操作。可以把Flink视为Kafka的计算层,为实时应用和流水线提供支持,而Kafka是流数据的基础存储层。

图片

在数据流堆栈中,Flink处理计算需求,Kafka提供存储层。

随时间推移,Flink在支持Kafka应用方面越来越娴熟。它可以将Kafka用作数据源和数据汇,利用Kafka丰富的生态系统和工具。Flink还原生支持热门的数据格式,包括Avro、JSON和Protobuf。

对Flink来说,Kafka也是一个同样好的匹配。与ActiveMQ、RabbitMQ或PubSub等其他消息系统相比,Kafka为Flink提供持久且无限的数据存储。此外,Kafka允许多个消费者同时读取流并按需倒带。第一个属性补充了Flink的分布式处理范式,第二个对Flink的容错机制至关重要。

渴望更多了解Flink?

想深入了解的话,可以在Confluent Developer网站的Flink 101课程或这个Apache Flink培训中动手实践。

来源:云云众生s内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯