关于Apache Flink的那些子项目,你了解多少?

2022-12-19 0 894

提到动态排序或者流排序,我们很自然甚至于想到 Flink。如今,Flink 已正式成为动态排序的基克维泽区,许多大型网络民营企业的动态推荐、动态 ETL、动态数仓、动态风险控制等情景,也都是如前所述 Apache Flink 加各式各样开放源码的 OLAP 发动机构筑。那么,Flink 到底是如何以 Pipeline(管线)的模式,完成动态业务情景支撑的呢?责任编辑将对 Apache Flink 几个农健展开汇整!

1、 Flink CDC 统计数据软件系统

Flink CDC 是 Apache Flink 的一个重要模块,是这款十分优秀的流处理发动机。狭义概念上,只要是能够捕捉统计数据更改的控制技术,都能正式成为是 CDC。目前通常描述的 CDC 控制技术主要面向全国统计资料库的更改,是一种用于捕捉统计资料库中统计数据更改的控制技术。CDC 的应用十分广泛,支持从 MySQL、MariaDB、RDS MySQL 等统计资料库中动态地加载增量历史统计数据和增量更改统计数据,整个过程提供更多 exactly-once 语法保证。

作为第三代统计数据软件系统构架,Flink CDC 能看作是统计数据从根源相连到统计基础构架的管线,可过滤一切复杂问题,让采用者著眼于统计数据挖掘,包括统计数据北迁、统计数据递送、数据采集等。Flink CDC 与此同时提供更多了 SQL API 和 DataStream API 三套 API,较好地满足了不同开发人员的需求。

Flink CDC 既能代替传统的 DataX 和 Canal 工具做动态统计数据并行,将统计资料库的HMPP和增量统计数据协同发展地并行到消息堆栈和统计基础构架中;也能做动态统计数据软件系统,将统计资料库统计数据动态梅塔河送货上门;与此同时还支持强大的统计数据生产能力,能通过 SQL 对统计资料库统计数据做动态关连、打宽、裂解,并将蔡荣结果载入到各式各样储存中。相对于其他统计数据软件系统构架,Flink CDC 具有全增量协同发展、开放式系统加载、mammalian加载、分布式系统构架等控制技术优势,因此在开放源码街道社区中十分畅销。

2、Flink SQL 统计数据挖掘

Flink 能快速发展,和 Flink SQL 的问世密切相关。最早,Flink 虽然有着自身控制技术的纯洁性,但许多民营企业无法采用,学习成本低。有了 Flink SQL 以后,采用者能如前所述熟识的 SQL 语法采用 Flink。

准确来说,Flink SQL 是 Flink 动态排序为精简排序数学模型、降低采用者采用动态排序准入门槛而设计的一套符合要求 SQL 语法的开发语言。 自 2015 年已经开始,阿里巴巴已经开始考察开放源码流排序发动机,最后决定如前所述 Flink 打造出第三代排序发动机,针对 Flink 存在的不足展开强化和改进,并且在 2019 年初将最后标识符开放源码,也是许多人熟识的 Blink。Blink 在原来的 Flink 基础上最重要的一个贡献是实现了 Flink SQL 。

在传统的流式排序领域,比如 Storm、Spark Streaming 都会提供更多一些 Function 或者 Datastream API,采用者通过 Java 或 Scala 写业务逻辑,这种方式虽然灵活,但有一些不足,比如具备一定准入门槛且调优较难,随着版本的不断更新,API 也出现了许多不兼容的地方。此种背景下,Flink SQL 正式成为优选,不同行业和领域的人都熟识,学习成本较低,采用者只要表达清楚需求即可,不需要了解具体做法。

3、 Flink ML 机器学习

Apache Flink 的机器学习库称为 Flink ML。由于过去五年来机器学习的采用呈指数增长,因此 Flink 街道社区决定将这种机器学习 APO 也添加到其生态系统中。在 FlinkML 中,贡献者和算法的列表正在增加。

具体而言,开发团队重构了 Flink ML 早期的函数库,扩展 Flink ML API 并更新 Runtime 主要功能,比如:已经开始支持多输入和多输出,和添加流媒体批次统一函数库等。另外,Flink ML 添加了 5 个算法实例,包括对数几率回归、k-means、K- 近邻算法、单纯贝氏分类器以及 One-hot 编码器,除了加入新的算法外,官方也会持续展开压力测试和强化,确保算法的性能。

传统的 Estimator/Transformer 范式,并不提供更多 API 以流媒体的方式暴露数学模型资料,因此采用者就许要反复调用 fit 来更新数学模型资料,官方表示,采用者虽然能每隔数分钟更新一次数学模型资料,但是这种方法效率十分差。而新版本中提供更多了 getModelData API,供采用者将资料数学模型即时传输到网页服务器,并采用最新的数学模型资料展开线上推理,这项功能能明显强化 Flink ML 的线上学习应用能力。目前,Flink ML 已正式成为 Apache Flink 流媒体处理构架的一部分,提供更多机器学习 API 和基础设施函数库,能够精简机器学习工作管线构筑工作。

4、 Flink CEP 规则发动机

CEP 是复杂事件处理(Complex Event Process,简称 CEP)的缩写,主要用来检测无尽统计数据流中的复杂模式,拥有从不同的统计数据行中辨识查找模式的能力。模式匹配是复杂事件处理的一个强大援助。

CEP 本身并没有脱离动态排序的范畴,所以绝大部分采用者还是选择如前所述 Flink,或者已有的排序服务上去搭建相关的构架,CEP 对应的功能更多是以 library 的形式存在。对于大多数 CEP 的应用情景而言,” 复杂规则 ” 的制定者通常是运营、商家、市场等非控制技术同学,对于大多数 CEP 的业务效果而言,通常是短时间内直接触达采用者。

Flink CEP 是如前所述 Flink Runtime 构筑的动态统计数据规则发动机,擅长解决跨事件的匹配问题。如:结合了时序的上下文风险控制情景,识别了作弊的行为序列后,给「先做 xx,后做 xx,再做 xx」的采用者展开封禁;结合了否定语法的电商营销情景,给「浏览商品后 10 分钟未下单的采用者」发送优惠券。

5、 Flink Table Store 动态表储存

作为 Apache Flink 的一个农健,Flink Table Store 是 Flink 在推动流批一体演进中储存领域上的重要一环。

Flink 在 Table API 和 SQL 中提出了动态表的概念,跟 Hive 表在离线数仓中间层的作用类似,动态表是动态统计基础构架的中间层。动态表中统计数据是随时间变化的,而静态表只能包含离线处理的统计数据。我们可以将动态排序看成对动态表上更改统计数据的处理,将离线排序看成对动态表某个时间快照的处理。采用者能像查询批处理表一样查询动态表,对动态表的查询将生成一个不会停止的连续查询,并且不断更新下游的结果表,以反映输入动态表上的更改,这构成了动态数仓的基本链路。本质上,动态表上的连续查询十分类似于定义蔡荣视图的查询。

整体来说, Flink Table Store 是解决存算分离、储存统一的重要模块。Flink Table Store 是一个流批统一的储存,能提供更多一定的 OLAP 查询能力(如前所述列式储存),可做到毫秒级别的动态流式加载,能够支持 Insert Overwrite。与此同时,Flink Table Store 也是最为完善的 Flink Connector,支持 Flink SQL 的全部概念,支持任意 Flink Job 的输出,支持所有统计数据类型。更重要的是,还能够结合 Flink SQL 提供更多 DB 级别的体验,并且支持大规模更新。

2022 年,Apache Flink 已经更新到 1.16 版,有了诸多更新,包括:分布式系统一致性快照构架升级、创新流批自适应融合 Shuffle、如前所述异步与缓存控制技术的流式 SQL 维表 Join 改进、完整兼容 Hive 生态、PyFlink 功能及性能全面生产可用等。针对街道社区如前所述 DataStream API 重新建设的 Flink ML,目前已经发布了两个版本。另外,在 Streaming Data Warehouse 流式数仓方面的探索,也是值得重点关注的方向。

查看原文

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务