二、【计算】流|批|OLAP一体 的Flink引擎(下) | 青训营笔记

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 二、【计算】流|批|OLAP一体 的Flink引擎(下) | 青训营笔记

一、Flink 架构优化


1 流/批/OLAP 业务场景概述


三种业务场景的特点


image.png

  • 三种业务场景面临的挑战

image.png


2 为什么三种场景可以用一套引擎来解决


  • 场景上对比发现:
  • 批式计算是流式计算的特例,Everything is Streams,有界数据集(批式数据)也是一种数据流、一种特殊的数据流;
  • OLAP 计算是一种特殊的批式计算,它对并发和实时性要求更高,其他情况与普通批式作业没有特别大区别。

image.png


3 Flink 如何支持 OLAP 场景


  • Flink 做 OLAP 的优势
  • 统一引擎:流处理、批处理、OLAP 统一使用 Flink 引擎;
  • 降低学习成本,仅需要学习一个引擎;
  • 提高开发效率,很多 SQL 是流批通用;
  • 提高维护效率,可以更集中维护好一个引擎;
  • 既有优势:利用 Flink 已有的很多特性,使 OLAP 使用场景更为广泛;
  • 使用流处理的内存计算、Pipeline;
  • 支持代码动态生成;
  • 也可以支持批处理数据落盘能力;
  • 相互增强:OLAP 能享有现有引擎的优势,同时也能增强引擎能力
  • 无统计信息场景的优化;
  • 开发更高效的算子;
  • 使 Flink 同时兼备流、批、OLAP 处理的能力,成为更通用的框架。
  • Flink OLAP 场景的挑战
  • 秒级和毫秒级的小作业;
  • 作业频繁启停、资源碎片;
  • Flink OLAP 计算相比流式和批式计算,最大的特点是 Flink OLAP 计算是一个面向秒级和毫秒级的小作业,作业在启动过程中会频繁申请内存、网络以及磁盘资源,导致 Flink 集群内产生大量的资源碎片;
  • Latency + 高 APS 要求;
  • OLAP 最大的特点是查询作业对 Latency 和 QPS 有要求的,需要保证作业在 Latency 的前提下提供比较高的并发调度和执行能力,这就对 Flink 引擎提出了一个新的要求。
  • Flink OLAP 架构现状
  • Client:提交 SQL Query;
  • Gateway:接收 Client 提交的 SQL Query,对 SQL 进行语法解析和查询优化,生成 Flink 作业执行计划,提交给 Session 集群;
  • Session Cluster:执行作业调度及计算,并返回结果。
  • JobManager 管理作业的执行,在接收到 Gateway 提交过来的作业逻辑执行计划后,将逻辑执行计划转换为物理执行计划,为每个物理计算任务分配资源,将每个计算任务分发给不同的 TaskManager 执行,同时管理作业以及每个计算任务执行状态;
  • TaskManager执行具体的计算任务,采用线程模型,为每个计算任务创建计算线程,根据计算任务的上下游数据依赖关系跟上游计算任务建立/复用网络连接,向上游计算任务发送数据请求,并处理上游分发给它的数据。

image.png

  • Flink 在 OLAP 架构上的问题与设想
  • 架构与功能模块:
  • JobManager 与 ResourceManager 在一个进程内启动,无法对JobManager 进行水平扩展;
  • Gateway 与 Flink Session Cluster 互相独立,无法进行统一管理;
  • 作业管理及部署模块:
  • JobManager 处理和调度作业时,负责的功能比较多,导致单作业处理时间长、并占用了过多的内存;
  • TaskManager 部署计算任务时,任务初始化部分耗时验证,消耗大量 CPU;
  • 资源管理及计算任务调度:
  • 资源申请及资源释放流程链路过长;
  • Slot 作为资源管理单元,JM 管理 slot 资源,导致 JM 无法感知到 TM 维度的资源分布,使得资源管理完全依赖于 ResourceManager;
  • 其他:
  • 作业心跳与 Failover 机制,并不合适 AP 这种秒级或毫秒级计算场景;
  • AP 目前使用 Batch 算子进行计算,这些算子初始化比较耗时;
  • 设想如下:

image.png

  • 总结

批式数据处理场景以及OLAP交互式业务场景,都可以转化成对流式数据的处理,根据这一共同点,Flink内部实现了将以上三种场景处理模块的相同部分提取出来,加以优化,就形成了流批OLAP一体的Flink引擎;但对于OLAP场景来说,由于其对数据实时性查询(流式数据处理)要求较高,且需要高并发,目前的Flink内部架构以及作业能力还无法满足(在架构与功能模块,作业管理及部署模块,资源管理及计算任务调度模块),尚有较大的提升空间。


二、使用案例


  • Flink现状

image.png


不断向流批一体演进


1电商流批一体实践


  • 问题状况:
    目前电商业务数据分为离线数仓和实时数仓建设,离线和实时数据源,计算引擎和业务代码没有统一,在开发相同需求的时候经常需要离线和实时对齐口径,同时,由于需要维护两套计算路径,对运维也带来压力。
  • 演进目标:

image.png


2 Flink OLAP场景实践


image.pngimage.png


目前流批一体的落地应用尚且不太成熟,但流批一体的业务应用场景将会是一个大趋势,其实现可以降低开发以及维护成本,同时可以提高作业效率,而Flink内部也在逐渐向流批一体演化,值得期待。

🌹写在最后💖: 路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹


相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
22天前
|
SQL 监控 关系型数据库
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
本文整理自用友畅捷通数据架构师王龙强在FFA2024上的分享,介绍了公司在Flink上构建实时数仓的经验。内容涵盖业务背景、数仓建设、当前挑战、最佳实践和未来展望。随着数据量增长,公司面临数据库性能瓶颈及实时数据处理需求,通过引入Flink技术逐步解决了数据同步、链路稳定性和表结构差异等问题,并计划在未来进一步优化链路稳定性、探索湖仓一体架构以及结合AI技术推进数据资源高效利用。
362 25
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
|
18天前
|
SQL 存储 大数据
Flink 基础详解:大数据处理的强大引擎
Apache Flink 是一个分布式流批一体化的开源平台,专为大规模数据处理设计。它支持实时流处理和批处理,具有高吞吐量、低延迟特性。Flink 提供统一的编程抽象,简化大数据应用开发,并在流处理方面表现卓越,广泛应用于实时监控、金融交易分析等场景。其架构包括 JobManager、TaskManager 和 Client,支持并行度、水位线、时间语义等基础属性。Flink 还提供了丰富的算子、状态管理和容错机制,如检查点和 Savepoint,确保作业的可靠性和一致性。此外,Flink 支持 SQL 查询和 CDC 功能,实现实时数据捕获与同步,广泛应用于数据仓库和实时数据分析领域。
147 32
|
23天前
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
44 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
3月前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
1652 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
2月前
|
存储 关系型数据库 BI
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。
|
3月前
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
609 5
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
3月前
|
人工智能 自然语言处理 关系型数据库
客户说|宝宝树选用AnalyticDB RAG引擎,共创智能母婴生活新范式
宝宝树与阿里云深度合作,利用大数据和AI技术,推出了一系列智能化产品,如AI解读B超单、AI起名等,覆盖备孕、孕期、产后等场景,提升了用户体验,推动了商业化进程。通过技术架构的优化,宝宝树在内容生产和搜索精度上取得了显著成效,未来将继续深化“AI+母婴”战略,为用户提供更全面、个性化的服务。
|
4月前
|
存储 数据采集 大数据
Flink实时湖仓,为汽车行业数字化加速!
本文由阿里云计算平台产品专家李鲁兵(云觉)分享,聚焦汽车行业大数据应用。内容涵盖市场趋势、典型大数据架构、产品市场地位及能力解读,以及典型客户案例。文章详细介绍了新能源汽车市场的快速增长、大数据架构分析、实时湖仓方案的优势,以及Flink和Paimon在车联网中的应用案例。
245 8
Flink实时湖仓,为汽车行业数字化加速!
|
3月前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
94 1
|
5月前
|
存储 数据采集 OLAP
饿了么基于Flink+Paimon+StarRocks的实时湖仓探索
饿了么的实时数仓经历了多个阶段的演进。初期通过实时ETL、报表应用、联动及监控构建基础架构,随后形成了涵盖数据采集、加工和服务的整体数据架构。1.0版本通过日志和Binlog采集数据,但在研发效率和数据一致性方面存在问题。2.0版本通过Dataphin构建流批一体化系统,提升了数据一致性和研发效率,但仍面临新业务适应性等问题。最终,饿了么选择Paimon和StarRocks作为实时湖仓方案,显著降低了存储成本并提高了系统稳定性。未来,将进一步优化带宽瓶颈、小文件问题及权限控制,实现更多场景的应用。
508 7
饿了么基于Flink+Paimon+StarRocks的实时湖仓探索

热门文章

最新文章