基于flink 的LakeHouse 2.0湖仓一体架构

简介: 基于flink 的LakeHouse 2.0湖仓一体架构

简介

Lakehouse 是一种结合了数据湖和数据仓库优势的新范式,解决了数据湖的局限性。Lakehouse 使用新的系统设计:直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。如果你现在需要重新设计数据仓库,现在有了廉价且高可靠(以对象存储的格式)的存储可用,不妨考虑使用 Lakehouse。

Lakehouse有如下关键特性:

  1. 事物支持:Lakehouse 在企业级应用中,许多数据管道通常会同时读取和写入数据。通常多方同时使用 SQL 读取或写入数据,Lakehouse 保证支持ACID事务的一致性。
  2. 模式实施和治理:Lakehouse 应该有一种支持模式实施和演变的方法,支持 DW 模式规范,例如 star /snowflake-schemas。该系统应该能够推理数据完整性,并且应该具有健壮的治理和审核机制。
  3. BI支持:Lakehouse 可以直接在源数据上使用BI工具。这样可以减少陈旧度和等待时间,提高新近度,并且降低必须在数据湖和仓库中操作两个数据副本的成本。
  4. 存储与计算分离:事实上,这意味着存储和计算使用单独的群集,因此这些系统能够扩展到更多并发用户和更大数据量。一些现代数据仓库也具有这种属性。
  5. 兼容性:Lakehouse 使用的存储格式是开放式和标准化的,例如 Parquet,并且它提供了多种 API,包括机器学习和 Python/R 库,因此各种工具和引擎都可以直接有效地访问数据。
  6. 支持从非结构化数据到结构化数据的多种数据类型:Lakehouse 可用于存储,优化,分析和访问许多新数据应用程序所需的数据类型,包括图像,视频,音频,半结构化数据和文本。
  7. 支持各种工作场景:包括数据科学,机器学习和 SQL 分析。这些可能依赖于多种工具来支持的工作场景,它们都依赖于相同的数据存储库。
  8. 端到端流式任务:实时报告是许多企业的日常需要。对流处理的支持消除了对专门服务于实时数据应用程序的单独系统的需求。

这些是 Lakehouse 的关键特征。企业级系统需要更多功能。安全和访问控制工具是基本需求。尤其是根据最近的隐私法规,包括审核,保留和沿袭在内的数据治理功能已变得至关重要,诸如数据目录和数据使用量度等数据发现工具也需要被启用。使用Lakehouse,上述企业特点只需要在单套系统中被部署、测试和管理。

架构图

60a6bcefe26f4b118e50f46e4d0afd1d.png

设计思路


传统的实时数仓架构或者混搭架构会存在以下问题:


1)无法复用目前已经非常成熟的基于离线数仓的数据血缘、数据质量管理体系。需要重新实现一套数据血缘、数据质量管理体系;

2)Lambad架构维护成本很高。很显然,这种架构下数据存在两份、代码需要维护两份、schema不统一、 数据处理逻辑不统一,整个数仓系统维护成本很高;

3)pulsar不支持update/upsert。目前pulsar仅支持append。实际场景中在DWS轻度汇聚层很多时候是需要更新的,DWD明细层到DWS轻度汇聚层一般会根据时间粒度以及维度进行一定的聚合,用于减少数据量,提升查询性能。假如原始数据是秒级数据,聚合窗口是1分钟,那就有可能产生某些延迟的数据经过时间窗口聚合之后需要更新之前数据的需求。这部分更新需求无法使用pulsar实现。

4)pulsar 进行分层统计时,对于跨租户的需求统计时,需要具备相应的token管理权限,会显得不太方便。

最新设计的架构相较于上一版本详见:<基于flink 的LakeHouse湖仓一体平台 >

有以下优点:


1:真正的湖仓一体架构,代码和数据只需要维护一份,大大建设维护成本。


2:pulsar作为ods层,消息保留策略和大小可以任意选择,如存储3年,永久...,大小也可以设置位50T,无限大...取决于集群资源。


3:维度表,码值表,字典表等DIM层数据均可以存储在pulsar,避免了与外部数据库的交互,大大提升效率。


4: Pulsar支持集成presto的方式,也支持pulsar function,也可以通过pulsar-flink-connector的DataStream和table API编写程序。


5: hudi用在dwd,dws层,亦支持集成presto和flink,并且有以下优点:

  • 效率的提升:摄取数据通常需要处理更新、删除以及强制唯一键约束。然而,由于缺乏像Hudi这样能对这些功能提供标准支持的系统,数据工程师们通常会采用大批量的作业来重新处理一整天的事件,或者每次运行都重新加载整个上游数据库,从而导致大量的计算资源浪费。由于Hudi支持记录级更新,它通过只处理有变更的记录并且只重写表中已更新/删除的部分,而不是重写整个表分区甚至整个表,为这些操作带来一个数量级的性能提升。
  • 更快的ETL/派生Pipelines:从外部系统摄入数据后,下一步需要使用Apache Spark/Apache Hive或者任何其他数据处理框架来ETL这些数据用于诸如数据仓库、机器学习或者仅仅是数据分析等一些应用场景。通常,这些处理再次依赖以代码或SQL表示的批处理作业,这些作业将批量处理所有输入数据并重新计算所有输出结果。通过使用增量查询而不是快照查询来查询一个或多个输入表,可以大大加速此类数据管道,从而再次像上面一样仅处理来自上游表的增量更改,然后upsert或者delete目标派生表。
  • 新鲜数据的获取:减少资源还能获取性能上的提升并不是常见的事。毕竟我们通常会使用更多的资源(例如内存)来提升性能(例如查询延迟)。Hudi通过从根本上摆脱数据集的传统管理方式,将批量处理增量化带来了一个附加的好处:与以前的数据湖相比,pipeline运行的时间会更短,数据交付会更快。
  • 统一存储:基于以上三个优点,在现有数据湖之上进行更快速、更轻量的处理意味着仅出于访问近实时数据的目的时不再需要专门的存储或数据集市。
  • 原库的Schema变更处理,我们对接的客户某些列的增加、删除或者修改某些列的场景。在Flink写Hudi之前会做Schema的检验,看这个Schema是不是合法,如果合法就可以正常写入,如果不合法的话,则会写入失败,而删除字段会导致Schema校验不合法,导致作业失败,这样稳定性是没有保证的。因此我们会捕捉Schema Validation的异常,如果发现是减少了字段,我们会把之前的字段做自动补全,然后做重试,保证链路是稳定的。
  • 除了采用更新时间字段作为主键外,还允许用户合理设置主键和分区映射,保证同步到Hudi里和源库是数据完全对齐的。

6:采用starRocks作为ads层,有以下优势:

  • 作为一款高性能MPP数据库,能够满足各种OLAP分析需求,支持联邦查询,标准SQL,向量化引擎,智能的物化视图
  • 支持流式导入和批量导入,并且能够保证exactly-once。
  • 支持多种数据源,集群具有自愈能力,可弹性恢复,节点的宕机、下线、异常都不会影响StarRocks集群服务的整体稳定性。

遇到的问题

此架构仍然存照一些问题:


1:flink 使用DataStream API读写hudi,相应的API官方尚未提供。使用table API的方式,相应的会起多个任务,大大消耗资源。


2:并不能保证真正意义上的纯实时,只能保证到近实时,准实时。



相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
存储 消息中间件 OLAP
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
本文整理自淘天集团高级数据开发工程师朱奥在Flink Forward Asia 2024的分享,围绕实时数仓优化展开。内容涵盖项目背景、核心策略、解决方案、项目价值及未来计划五部分。通过引入Paimon和Hologres技术,解决当前流批存储不统一、实时数据可见性差等痛点,实现流批一体存储与高效近实时数据加工。项目显著提升了数据时效性和开发运维效率,降低了使用门槛与成本,并规划未来在集团内推广湖仓一体架构,探索更多技术创新场景。
1957 3
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
|
11月前
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
消息中间件 存储 监控
Lalamove基于Flink实时湖仓演进之路
本文由货拉拉国际化技术部资深数据仓库工程师林海亮撰写,围绕Flink在实时数仓中的应用展开。文章首先介绍了Lalamove业务背景,随后分析了Flink在实时看板、数据服务API、数据监控及数据分析中的应用与挑战,如多数据中心、时区差异、上游改造频繁及高成本问题。接着阐述了实时数仓架构从无分层到引入Paimon湖仓的演进过程,解决了数据延迟、兼容性及资源消耗等问题。最后展望未来,提出基于Fluss+Paimon优化架构的方向,进一步提升性能与降低成本。
486 11
Lalamove基于Flink实时湖仓演进之路
|
存储 监控 数据挖掘
京东物流基于Flink & StarRocks的湖仓建设实践
本文整理自京东物流高级数据开发工程师梁宝彬在Flink Forward Asia 2024的分享,聚焦实时湖仓的探索与建设、应用实践、问题思考及未来展望。内容涵盖京东物流通过Flink和Paimon等技术构建实时湖仓体系的过程,解决复杂业务场景下的数据分析挑战,如多维OLAP分析、大屏监控等。同时,文章详细介绍了基于StarRocks的湖仓一体方案,优化存储成本并提升查询效率,以及存算分离的应用实践。最后,对未来数据服务的发展方向进行了展望,计划推广长周期数据存储服务和原生数据湖建设,进一步提升数据分析能力。
1291 1
京东物流基于Flink & StarRocks的湖仓建设实践
|
9月前
|
存储 JSON 数据处理
Flink基于Paimon的实时湖仓解决方案的演进
本文源自Apache CommunityOverCode Asia 2025,阿里云专家苏轩楠分享Flink与Paimon构建实时湖仓的演进实践。深度解析Variant数据类型、Lookup Join优化等关键技术,提升半结构化数据处理效率与系统可扩展性,推动实时湖仓在生产环境的高效落地。
1107 1
Flink基于Paimon的实时湖仓解决方案的演进
|
9月前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
1009 1
|
9月前
|
存储 人工智能 监控
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
本文整理自淘宝闪购(饿了么)大数据架构师王沛斌在 Flink Forward Asia 2025 上海站的分享,深度解析其基于 Apache Flink 与 Paimon 的 Lakehouse 架构演进与落地实践,涵盖实时数仓发展、技术选型、平台建设及未来展望。
1522 0
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
1163 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
Java API 调度
Flink 原理与实现:架构和拓扑概览
## 架构 要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后各个节点都启动了哪些服务,各个服务之间又是怎么交互和协调的。下方是 Flink 集群启动后架构图。 ![](http://img3.tbcdn.cn/5476e8b07b923/TB1ObBnJFXXXXXt
8457 0
|
10月前
|
存储 分布式计算 数据处理
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
阿里云实时计算Flink团队,全球领先的流计算引擎缔造者,支撑双11万亿级数据处理,推动Apache Flink技术发展。现招募Flink执行引擎、存储引擎、数据通道、平台管控及产品经理人才,地点覆盖北京、杭州、上海。技术深度参与开源核心,打造企业级实时计算解决方案,助力全球企业实现毫秒洞察。
841 0
「48小时极速反馈」阿里云实时计算Flink广招天下英雄