Flink Has Become the De-facto Standard of Streaming Compute

摘要:本文整理自 Apache Flink 中文社区发起人、阿里巴巴开源大数据平台负责人王峰(莫问),在 Flink Forward Asia 2023 主会场的分享。Flink 从 2014 年诞生之后,已经发展了将近 10 年,尤其是最近这些年得到了飞速发展。在全球范围内,Flink 已经成为了实时流计算的事实标准。但是 Flink 不会止步于此。Flink 社区在用户的推动下,不断地在技术创新和技术演进中,向着未来的更多场景发展,本次分享将为大家汇报 Flink 在 2023 年的核心技术成果和技术发展的趋势。

一、Apache Flink 全球社区持续活跃

1

Flink 在最近十年,持续保持着稳定快速的发展。全球开发贡献者已经超过了 1700 名,贡献者来自世界各地,不仅有中国,也有欧洲、美洲等地区,大家共同推动 Flink 社区发展。同时,Flink 下载量也创下新高。今年,月下载量突破了 2200 万次,更多的使用者、企业下载 Flink,应用于学习、测试和生产,进行实时数据处理。

二、Apache Flink 斩获 SIGMOD 2023 系统大奖

2

今年年中,Flink 团队也获得了SIGMOD 2023 系统大奖。SIGMOD 是整个数据处理领域中的顶级会议,也是最有权威性的会议之一。SIGMOD 每年都会评选出一项在全球工业界得到广泛使用和验证的创新性系统技术,授予其系统大奖。今年 SIGMOD 将大奖授予了Apache Flink,以表彰 Flink 在全球范围内实时流处理领域的领先地位和广泛应用。这再一次验证了 Flink 不仅在中国,也在全球范围内得到了认可,成为事实上的流计算标准。

上图获奖名单中,可以看到一条特殊的风景线,几乎 50%都是来自于华人。华人开发者突出的贡献,推动了社区的发展。

三、Apache Flink 中文社区五周年

3

中国开发者愿意加入社区、推动 Flink 的发展。可以说 Flink 是一款由华人工程师主导的全球性开源大数据项目。Apache Flink 中文社区是于 2018 年成立的本土化社区。社区创建初衷旨在推进 Flink 在中国的社区发展和技术普及。国内各大公司都参与了建设,包括腾讯、快手、字节、美团等,推动了 Flink 中文社区的快速发展。Flink Forward Asia(以下简称 FFA)也是中文社区的重要产物,从 2018 年开始,阿里云承办 Flink Forward 大会,并保持每年一次 FFA 峰会。通过丰富的社区活动和众多的内容贡献,我们积累了非常多的 Flink 学习材料,供开发者学习和使用。

四、Apache Flink Major Releases in 2023

4

Flink 作为开源大数据领域的常青树,这些年一直保持快速发展。除了踊跃的社区贡献者和持久化运营支撑之外,最核心的推动力,是它的技术本质。Flink 社区在技术核心领域不断演进,每年都能推出各种新特性、新创新,给用户带来新的业务价值,使得用户愿意使用、贡献、推动它的发展。

下面我汇报一下 Flink 在 2023 年团队所取得的核心技术进展:

Flink 社区依然保持了一年两个大版本的发布,上半年 Flink 1.17 和下半年 Flink 1.18 两个大版本。在这两个版本中,社区依然产生了很多新的贡献者。在核心的流处理领域内,Flink 开发团队精益求精,根据用户诉求和业务场景进行打磨、完善。在流批一体的计算领域,我们持续完善了 Flink 在批处理模式下的性能问题和功能完善性问题,使 Flink 能够成为一款真正在有限数据集和无限数据集都能够统一处理的优秀计算引擎。

此外,在场景上,我们也持续创新。Flink 希望能够处理更多的数据,让更多的数据能够流动起来。所以我们让 Flink 跟 Lakehouse 架构产生合作协同的效果。Lakehouse 架构已经成为了现在数据分析领域的新架构趋势,越来越多的用户将传统的基于 Hive 的数仓体系转移到 Lakehouse 架构上。我们希望基于 Flink 实时计算能力可以加速 Lakehouse 数据流动和数据分析效果。

在部署架构上,我们在 Flink 社区也做了非常多的工作,推动 Flink 在云上更好的运行。Cloud Native 现在不仅是大数据,也是包括 AI、数据库、各种计算系统的新底座,越来越多的项目、软件都必须要能够很好的运行在云上,去给用户更好的体验。

五、Streaming SQL 精益求精、持续完善

img

我挑选了 Flink 社区在 2023 年这两个大版本中非常有价值的技术特性,给大家做一个解读。首先,在最核心的 Streaming 计算领域,我们做了哪些重要升级?

Streaming SQL 是用户最关注的,也是用户用得最多的,给用户最直接的体感。Flink SQL 功能强大。使用 Flink SQL 可以实时分析各种流式数据。今年我们对 Flink SQL 做了非常多的改进。可以看到有数百个 issue 在围绕着 Flink SQL,有 40 多名新的贡献者在贡献 Flink SQL,比如说今年新推出了一个新特性,叫 Plan Advice,帮助用户智能检查 Streaming SQL,发现潜在的语义上的风险等,第一时间给用户进行提示,告诉用户 SQL 可能写得不够好,存在一定风险和潜在的未知情况,并且给出可行建议。避免在运行时出现不确定性因素和不稳定情况,这些都是非常实用的功能。

此外 SQL 的用户还有很多需求,希望能够 SQL 更加灵活,是像 DataStream 一样,Flink 早期都是用 Java 等语言来写,DataStream 数据有很多灵活的功能,我们也希望把它推进到 SQL 中,让 SQL 的用户也能够在简化开发的同时,享受到这些系统灵活性。比如像 Watermark 更加灵活的管理,基于算子级别的 STATE TTL 配置等。同时,我们在 SQL 的基础框架 Calcite 进行了大幅升级,让整个 SQL 的 Plan 优化能力更强,效果更好。

六、通用增量 Checkpoint 全面应用上线

6

我们在 Stream 核心架构上做了比较大的升级工作。Flink 的最大特点是面向状态的计算。它自带状态存储和状态访问能力、状态管理 Checkpoint 快照管理等,这些都是 Flink 非常核心的部分,用户在这块儿也有很强诉求。Flink 定期会做全局一致性快照,快照的频率越快越好,代价越小越好,这样可以让系统在出现容错的时候,尽量少的数据回放。比如说做到秒级的 Checkpoint 是非常好的效果。因此,我们努力将它落地,通用增量 Checkpoint 能力在 Flink1.17 和 1.18 落地,并且达到了完全生产可用的状态。国内非常多的公司开始在大规模生产使用这项新的技术。这些技术也是基于 log 的能力,进行 log 打点的方式进行推广,框架因为是必要基于 log 打点 Checkpoint 能力,工作是比较轻量的,所以它可以快速地实现 Checkpoint。同时架构将 Checkpoint 和状态数据的物化进行解耦。这样天然就打散了各个 Task 数据 IO 的时间点频率。这样整个系统就没有瞬间的波动,系统会变得更加平滑。因此,实现了整个 Checkpoint 又快又平滑的效果。

七、Flink Batch – 日益成熟,生产可用

7

在 Batch 方面,我们也做非常多的工作,Flink 作为一款流批一体引擎,我们希望它具备更加全面的计算能力,给用户带来一站式的数据计算和数据开发体验。总体来说, Batch 完善更多一点,因为 Batch 相关工作,Flink 启动得较晚一些,不像 Streaming 已经非常完善了,但是我们经过今年的努力,把用户的需求进行了落地。无论从功能上,还是从系统稳定性上,还是从用户易用性角度,我们把这些事情都已经做在了 Flink 生态的版本中,现在 Flink 已经具备了真正达到业界主流 Batch 引擎的能力。

今天,可以看到很多公司来分享 Flink 能力如何在生产中发挥的效果。此外,我们一直对 Batch 引擎做了很多的性能优化,不仅基于核心的流引擎的这种优势,去优化 Batch 场景下的执行效率。同时,我们也将传统 Batch 上的一些优化的手段都在 Flink 里进行了实现。

8

总体来说,Flink Batch 在功能、性能方面都非常完善了。通过 Batch 模式下,在 TPC-DS 10T 的 Benchmark 的测试项目中可以看到,Flink 1.18 相比 Flink 1.16 拿到了 50%以上的性能优化结果。每年持续性能优化下,让 Flink 不仅在流计算领域达到业界的最强水平,在 Batch 领域也可以达到一流的执行能力。Flink 正逐渐成为功能最全面、综合性能最好的计算引擎。

八、高效弹性扩缩容新范式 – 进一步走向云原生

9

除了 Flink 核心引擎技术进展之外,我们在云原生分布式部署架构上也做了非常多的完善。随着越来越多的计算负载迁移到云上,大家特别在意云上运行体验。云上最大的特点是弹性特别好,云计算提供了无限的资源,用户可以根据自己业务负载,动态选择用多少资源满足业务需求。Flink 也在今年做了很多工作去适应新的运行架构。

比如,我们通过开放 API,支持用户可以在线实时进行扩缩容,Schedule 任务更改并发度,Flink 调度器可以不重启整个 Job,而只是在内部去调整它的并发度,对用户的体感是非常友好。State Backend 在过程中,进行了全程配合。状态数据可以更快的恢复、下载、复用,保证端到端的过程非常迅速和轻量。此外,我们知道自动扩缩容过程不可能完全靠人工来去操作触发,因为业务的变化,并没有特别强的规律,而且频率具有不确定性,因此,我们希望它自动完成。我们推出了基于 K8S Operator 的 AutoScale 技术去动态、实时地监控整个任务负载。任务延迟性根据这些实时指标自动的、动态地调整并发度。结合引擎能力可以实现全程无人值守的弹性扩缩,以此更好的利用云的特性,来服务业务。

九、Flink 在加速融入 Lakehouse 新架构

10

Flink 在新业务场景下,我们也做了非常多的尝试。其中,最大的一个创新,是让 Flink 和 Lakehouse 有更好的融合、集成。Lakehouse 是新一代的数据分析架构,Flink 是一款最好的实时计算引擎。基于两者的结合, Flink 能够发挥价值,让整个 Lakehouse 数据运行流动得更快。我们在今年两个大的版本中也加入了很多新的 API 对 Lakehouse 进行支持。通过这些新的 API,可以更好的去利用 Flink 管理 Lakehouse,更好的对接了 Lakehouse 中的湖存储格式,更好的去读写 Lakehouse 的数据。同时,Flink 也增加了对 JDBC Driver 的能力支持。开发者使用传统 BI 工具都可以跟 Flink 进行无缝衔接,利用 Flink 更好的分析 Lakehouse 数据。

十、大数据业务从离线向实时加速升级

11

近些年来,Flink 每年都会做出很多技术创新和技术架构的升级,去满足用户的需求。Flink 一直在遵循着一个新的趋势:大数据的业务场景正在因离线向实时加速升级而转换。在大的浪潮下,Flink 的每一项工作都能够得到验证,不断满足用户价值。我们可以看到越来越多的行业,如互联网、金融、制造业、交通等都开始这样的演进,各种各样的数据分析场景都开始从离线向实时进行升级,更进一步地发挥出数据价值。

Flink Forward Asia 2023

本届 Flink Forward Asia 更多精彩内容,可扫描图片二维码观看全部议题的视频回放及 FFA 2023 峰会资料!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫系列----Python解析Json网页并保存到本地csv

Python解析JSON 1 知识小课堂1.1 爬虫1.2 JSON1.3 Python1.4 前言技术1.4.1 range1.4.2 random1.4.3 time.sleep1.4.4 with open() as f: 2 解析过程2.1 简介2.2 打开调试工具2.3 分析网址2.3.1 网址的规律2.3.2 网址的参数 2.4 爬取第一页内容2.5 存入字典并获取2.6 循环主体数…

7-2 设计一元二次方程求解类(高教社,《Python编程基础及应用》习题9-4)——python

设计一个类Root来计算ax2bxc0的根。该类包括:a、b、c共3个属性表示方程的3个系数,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的两个根。 其中,getRoot1()返回的根对应: getRoot2()返回的根对应&#xff1a…

百度沧海文件存储CFS推出新一代Namespace架构

随着移动互联网、物联网、AI 计算等技术和市场的迅速发展,数据规模指数级膨胀,对于分布式文件系统作为大规模数据场景的存储底座提出了更高的要求。已有分布式文件系统解决方案存在着短板,只能适应有限的场景: >> 新型分布式…

格密码:傅里叶矩阵

目录 一. 铺垫性介绍 1.1 傅里叶级数 1.2 傅里叶矩阵的来源 二. 格基与傅里叶矩阵 2.1 傅里叶矩阵详细解释 2.2 格基与傅里叶矩阵 写在前面:有关傅里叶变换的解释太多了,这篇博客主要总结傅里叶矩阵在格密码中的运用。对于有一定傅里叶变换基础的同…

IntelliJ IDEA [设置] 隐藏 .idea 等 .XXX 文件夹

文章目录 1. 问题描述2. 解决办法3. 最后效果4. 特殊处理(正常不需要此步骤)总结 我们使用 IntelliJ IDEA 导入项目的时候,经常会看到一些 .XXX 的文件夹(例如:.idea,.mvn,.gradle 等&#xff0…

支付宝、学习强国小程序input、textarea数据双向绑定

前言 和 vue 的绑定有些区别,需要注意。直接 value"{{inputValue}}" 是无法双向绑定的。 正确思路 文档说的比较详细,不过没有组合使用的案例,需要自行理解。这里正确的方法是先用 value 绑定数据,再使用 onInput 事件…

鸿蒙的基本项目_tabbar,首页,购物车,我的

以上效果,由四个ets文件实现,分别是容器页面。首页,购物车,我的。 页面里的数据,我是用json-server进行模拟的数据。 一、容器页面 使用组件Tabs和Tabcontent结合。 import Home from "./Home"; import …

短剧付费变现小程序源码系统:开通会员+在线充值+风口项目,变现利器+完整的代码包 附带部署安装教程

在当今数字化时代,短剧付费变现小程序源码系统已经成为了一个热门的风口项目。它以开通会员、在线充值、完整的代码包等特色功能,成为了一种有效的变现利器,受到了广泛的关注和应用。本文将详细介绍这个源码系统的背景和特色功能,…

实现阿里云oss云存储,简单几步

一、前言 虽然平常学习用的不多&#xff0c;但是用的时候再去找官方文档&#xff0c;也很繁琐&#xff0c;不如直接整理以下&#xff0c;方便粘贴复制&#xff0c;本文介绍两种图片上传方式①普通上传②服务端签名直传 1.普通上传 加载maven依赖 <dependency><grou…

centos 安装oracle 11.2.04 并配置数据库自启动操作记录,一次完成

环境&#xff1a; centos版本7.3&#xff0c;安装的有图形化界面 Oracle11.2.04&#xff0c;之所以选择这个版本是因为网上有人说11其他版本的在安装的过程中会出现这样或那样的问题&#xff0c;下载地址放到文章下面 步骤&#xff0c;按顺序&#xff1a; 1、创建安装Oracle…

万用表测接地电阻方法

万用表测接地电阻方法 用万用表在不同土质的土壤对接地电阻进行了实验&#xff0c;并将万用表所测数据和专用接地电阻测试仪所测数据进行了比较&#xff0c;两者十分接近。具体测量方法如下&#xff1a; 找两根8mm、1m长的圆钢&#xff0c;将其一端磨尖作为辅助测试棒&#x…

Mysql之视图

Mysql之视图 常见的数据库对象视图概述为什么使用视图视图的理解创建视图创建单表视图别名的运用 创建多表联合视图利用视图对数据进行格式化contact 函数以视图为基&#xff0c;再创建新的视图 查看视图更新视图的数据一般情况不可更新的视图 修改和删除视图修改视图删除视图注…

【C#】Visual Studio 2022 远程调试配置教程

在某些特殊的情况下&#xff0c;开发机和调试机可能不是同一台设备&#xff0c;此时就需要远程调试了。 开发机配置 首先需要确保两台机器在同一局域网下。 创建共享文件夹 随便找个地方新建一个文件夹&#xff0c;用来放编译结果。例如我这里是 D:\DebuggingWorkspace\。 …

什么是阿里云负载均衡SLB?

目录 硬件或软件负载均衡的区别是什么&#xff1f; 什么是阿里云负载均衡SLB&#xff1f; 阿里云传统型负载均衡CLB 硬件或软件负载均衡的区别是什么&#xff1f; 通过专用硬件实现负载均衡&#xff0c;那么整体成本会较高&#xff0c;而且设备容易出现单点故障&#xff0c;…

【MySQL】InnoDB和MyISAM区别

文章目录 一、索引不同1 InnoDB聚簇索引&#xff0c;MyISAM非聚簇索引1 InnoDB聚簇索引2 MyISAM非聚簇索引 2 InnoDB必须要有主键&#xff0c;MyISAM允许没有主键3 InnoDB支持外键4 InnoDB不支持全文索引5 索引保存位置不同 二、对事物的支持三、存储结构不同四、存储空间不同五…

Elasticsearch中复制一个索引数据到新的索引中

问题 我有时候&#xff0c;需要调试一个已经存在的ES索引&#xff0c;需要从已有的索引复制数据到新的索引中去。 解决 这里我借助一个GUI工具&#xff0c;来解决这个问题&#xff0c;底层它是使用Reindex的API实现索引数据复制的。 步骤 选中已存在的redix菜单&#xff0…

00-Git 应用

Git 应用 一、Git概述 1.1 什么是Git git 是一个代码协同管理工具&#xff0c;也称之为代码版本控制工具&#xff0c;代码版本控制或管理的工具用的最多的&#xff1a; svn、 git。 SVN 是采用的 同步机制&#xff0c;即本地的代码版本和服务器的版本保持一致&#xff08;提…

KEPServerEX 6 之【外篇-1】PTC-ThingWorx服务端软件安装 Tomcat10本地安装

本文目标: 安装 Java 和 Apache Tomcat ,为ThingWorx安装做基础。 ----------------------------------------------------------------------- 安装重点 --------------------------------------------------------------------- 1. 安装 Java 11 / JDK 11 添加系…

SSRF中Redis的利用

目录 1. SSRF 1.1 什么是SSRF 1.2 漏洞成因 1.3 可能会存在SSRF的地方 1.4 SSRF分类 1.5 验证方法 1.6 利用方式 1.7 可以利用的协议 1.8 SSRF过滤绕过 2. SSRF攻击Redis 2.1 环境搭建 2.2 漏洞复现(通过ssrf利用redis写入webshell) 2.2.1 想要写入webshell的两个…

【unity学习笔记】4.场景切换

创建空物体→创建脚本挂载在空物体上→打开脚本 1.创建所需要的场景 assets中点击创建场景 2.文件→生成设置 3.将需要的场景拖入 4.场景跳转 创建空对象&#xff0c;将脚本放在空对象上。 注意两个类&#xff1a;场景类、场景管理类 void Start(){//场景跳转SceneManager.Lo…